From 7115f60b91b5717d90f643fd692010905c7004db Mon Sep 17 00:00:00 2001 From: Bryan Galdrikian Date: Thu, 31 May 2018 11:36:08 -0700 Subject: Blast 1.1.3. See docs/release_notes.txt. --- .../NvParameterized/include/AbstractSerializer.h | 346 +- .../NvParameterized/include/ApbDefinitions.h | 434 +- .../NvParameterized/include/BinSerializer.h | 264 +- .../NvParameterized/include/BinaryHelper.h | 580 +- .../NvParameterized/include/NvDefaultTraits.h | 1006 +- .../include/NvParamConversionTemplate.h | 294 +- .../NvParameterized/include/NvParameters.h | 1300 +- .../NvParameterized/include/NvParametersTypes.h | 116 +- .../include/NvRegistrationsForTraitsBase.h | 58 +- .../NvParameterized/include/NvSerializerInternal.h | 126 +- .../NvParameterized/include/NvTraitsInternal.h | 168 +- .../NvParameterized/include/PlatformABI.h | 270 +- .../NvParameterized/include/PlatformABI.inl | 534 +- .../NvParameterized/include/PlatformInputStream.h | 230 +- .../include/PlatformInputStream.inl | 234 +- .../NvParameterized/include/PlatformOutputStream.h | 424 +- .../include/PlatformOutputStream.inl | 276 +- .../NvParameterized/include/PlatformStream.h | 302 +- .../NvParameterized/include/SerializerCommon.h | 344 +- .../NvParameterized/include/XmlDeserializer.h | 614 +- .../NvParameterized/include/XmlSerializer.h | 228 +- .../NvParameterized/src/BinSerializer.cpp | 3656 ++-- .../NvParameterized/src/BinaryHelper.cpp | 244 +- .../NvParameterized/src/NvParameterized.cpp | 11920 +++++++------- .../NvParameterized/src/NvParameterizedTraits.cpp | 726 +- .../NvParameterized/src/NvSerializer.cpp | 772 +- .../apexmodules/NvParameterized/src/NvTraits.cpp | 892 +- .../apexmodules/NvParameterized/src/NvTraits.h | 82 +- .../NvParameterized/src/PlatformABI.cpp | 858 +- .../NvParameterized/src/PlatformInputStream.cpp | 672 +- .../NvParameterized/src/PlatformOutputStream.cpp | 1120 +- .../NvParameterized/src/SerializerCommon.cpp | 468 +- .../NvParameterized/src/XmlDeserializer.cpp | 1518 +- .../NvParameterized/src/XmlSerializer.cpp | 2540 +-- .../modules/common/include/ApexCommonStructs.h | 500 +- .../common/include/autogen/ConvexHullParameters.h | 552 +- .../common/include/autogen/DebugColorParams.h | 530 +- .../common/include/autogen/DebugRenderParams.h | 496 +- .../include/autogen/ModuleCommonRegistration.h | 240 +- .../common/src/autogen/ConvexHullParameters.cpp | 1536 +- .../common/src/autogen/DebugColorParams.cpp | 2368 +-- .../common/src/autogen/DebugRenderParams.cpp | 1264 +- .../ConversionConvexHullParameters_0p0_0p1.h | 166 +- .../include/autogen/ConvexHullParameters_0p0.h | 550 +- .../include/autogen/ConvexHullParameters_0p1.h | 552 +- .../include/autogen/DebugColorParams_0p0.h | 530 +- .../include/autogen/DebugRenderParams_0p1.h | 496 +- .../autogen/ModuleCommonLegacyRegistration.h | 260 +- .../src/autogen/ConvexHullParameters_0p0.cpp | 1406 +- .../src/autogen/ConvexHullParameters_0p1.cpp | 1536 +- .../src/autogen/DebugColorParams_0p0.cpp | 2368 +-- .../src/autogen/DebugRenderParams_0p1.cpp | 1264 +- .../destructible/include/autogen/CachedOverlaps.h | 490 +- .../include/autogen/DestructibleActorChunks.h | 506 +- .../include/autogen/DestructibleActorParam.h | 1212 +- .../include/autogen/DestructibleActorState.h | 890 +- .../autogen/DestructibleAssetCollisionDataSet.h | 500 +- .../include/autogen/DestructibleAssetParameters.h | 1350 +- .../autogen/DestructibleDebugRenderParams.h | 476 +- .../include/autogen/DestructibleModuleParameters.h | 474 +- .../include/autogen/DestructiblePreviewParam.h | 488 +- .../include/autogen/MeshCookedCollisionStream.h | 476 +- .../autogen/MeshCookedCollisionStreamsAtScale.h | 476 +- .../autogen/ModuleDestructibleRegistration.h | 300 +- .../include/autogen/SurfaceTraceParameters.h | 496 +- .../include/autogen/SurfaceTraceSetParameters.h | 478 +- .../destructible/src/autogen/CachedOverlaps.cpp | 858 +- .../src/autogen/DestructibleActorChunks.cpp | 1284 +- .../src/autogen/DestructibleActorParam.cpp | 16488 +++++++++---------- .../src/autogen/DestructibleActorState.cpp | 4274 ++--- .../autogen/DestructibleAssetCollisionDataSet.cpp | 1050 +- .../src/autogen/DestructibleAssetParameters.cpp | 9658 +++++------ .../src/autogen/DestructibleDebugRenderParams.cpp | 1016 +- .../src/autogen/DestructibleModuleParameters.cpp | 1010 +- .../src/autogen/DestructiblePreviewParam.cpp | 1144 +- .../src/autogen/MeshCookedCollisionStream.cpp | 696 +- .../autogen/MeshCookedCollisionStreamsAtScale.cpp | 752 +- .../src/autogen/SurfaceTraceParameters.cpp | 876 +- .../src/autogen/SurfaceTraceSetParameters.cpp | 804 +- .../include/ConversionCachedOverlaps_0p0_0p1.h | 196 +- .../ConversionDestructibleActorParam_0p0_0p1.h | 160 +- .../ConversionDestructibleActorParam_0p10_0p11.h | 160 +- .../ConversionDestructibleActorParam_0p11_0p12.h | 190 +- .../ConversionDestructibleActorParam_0p12_0p13.h | 160 +- .../ConversionDestructibleActorParam_0p13_0p14.h | 160 +- .../ConversionDestructibleActorParam_0p14_0p15.h | 160 +- .../ConversionDestructibleActorParam_0p15_0p16.h | 160 +- .../ConversionDestructibleActorParam_0p16_0p17.h | 166 +- .../ConversionDestructibleActorParam_0p17_0p18.h | 160 +- .../ConversionDestructibleActorParam_0p18_0p19.h | 140 +- .../ConversionDestructibleActorParam_0p19_0p20.h | 160 +- .../ConversionDestructibleActorParam_0p1_0p2.h | 160 +- .../ConversionDestructibleActorParam_0p20_0p21.h | 160 +- .../ConversionDestructibleActorParam_0p21_0p22.h | 160 +- .../ConversionDestructibleActorParam_0p22_0p23.h | 160 +- .../ConversionDestructibleActorParam_0p23_0p24.h | 160 +- .../ConversionDestructibleActorParam_0p24_0p25.h | 160 +- .../ConversionDestructibleActorParam_0p25_0p26.h | 160 +- .../ConversionDestructibleActorParam_0p26_0p27.h | 160 +- .../ConversionDestructibleActorParam_0p27_0p28.h | 160 +- .../ConversionDestructibleActorParam_0p28_0p29.h | 160 +- .../ConversionDestructibleActorParam_0p29_0p30.h | 158 +- .../ConversionDestructibleActorParam_0p2_0p3.h | 160 +- .../ConversionDestructibleActorParam_0p30_0p31.h | 170 +- .../ConversionDestructibleActorParam_0p31_0p32.h | 160 +- .../ConversionDestructibleActorParam_0p3_0p4.h | 160 +- .../ConversionDestructibleActorParam_0p4_0p5.h | 160 +- .../ConversionDestructibleActorParam_0p5_0p6.h | 160 +- .../ConversionDestructibleActorParam_0p6_0p7.h | 160 +- .../ConversionDestructibleActorParam_0p7_0p8.h | 160 +- .../ConversionDestructibleActorParam_0p8_0p9.h | 160 +- .../ConversionDestructibleActorParam_0p9_0p10.h | 160 +- .../ConversionDestructibleActorState_0p0_0p1.h | 160 +- .../ConversionDestructibleActorState_0p1_0p2.h | 160 +- .../ConversionDestructibleActorState_0p2_0p3.h | 160 +- .../ConversionDestructibleActorState_0p3_0p4.h | 160 +- ...ConversionDestructibleAssetParameters_0p0_0p1.h | 160 +- ...nversionDestructibleAssetParameters_0p10_0p11.h | 160 +- ...nversionDestructibleAssetParameters_0p11_0p12.h | 160 +- ...nversionDestructibleAssetParameters_0p12_0p13.h | 160 +- ...nversionDestructibleAssetParameters_0p13_0p14.h | 162 +- ...nversionDestructibleAssetParameters_0p14_0p15.h | 160 +- ...nversionDestructibleAssetParameters_0p15_0p16.h | 166 +- ...nversionDestructibleAssetParameters_0p16_0p17.h | 160 +- ...nversionDestructibleAssetParameters_0p17_0p18.h | 160 +- ...nversionDestructibleAssetParameters_0p18_0p19.h | 160 +- ...nversionDestructibleAssetParameters_0p19_0p20.h | 160 +- ...ConversionDestructibleAssetParameters_0p1_0p2.h | 160 +- ...nversionDestructibleAssetParameters_0p20_0p21.h | 160 +- ...nversionDestructibleAssetParameters_0p21_0p22.h | 160 +- ...nversionDestructibleAssetParameters_0p22_0p23.h | 170 +- ...nversionDestructibleAssetParameters_0p23_0p24.h | 160 +- ...nversionDestructibleAssetParameters_0p24_0p25.h | 168 +- ...nversionDestructibleAssetParameters_0p25_0p26.h | 160 +- ...ConversionDestructibleAssetParameters_0p2_0p3.h | 148 +- ...ConversionDestructibleAssetParameters_0p3_0p4.h | 152 +- ...ConversionDestructibleAssetParameters_0p4_0p5.h | 160 +- ...ConversionDestructibleAssetParameters_0p5_0p6.h | 160 +- ...ConversionDestructibleAssetParameters_0p6_0p7.h | 160 +- ...ConversionDestructibleAssetParameters_0p7_0p8.h | 160 +- ...ConversionDestructibleAssetParameters_0p8_0p9.h | 160 +- ...onversionDestructibleAssetParameters_0p9_0p10.h | 160 +- ...onversionDestructibleModuleParameters_0p0_0p1.h | 160 +- ...onversionDestructibleModuleParameters_0p1_0p2.h | 160 +- ...onversionDestructibleModuleParameters_0p2_0p3.h | 160 +- .../ConversionSurfaceTraceSetParameters_0p0_0p1.h | 160 +- .../ConversionSurfaceTraceSetParameters_0p1_0p2.h | 160 +- .../include/autogen/CachedOverlaps_0p0.h | 490 +- .../include/autogen/CachedOverlaps_0p1.h | 490 +- .../include/autogen/DestructibleActorChunks_0p0.h | 506 +- .../include/autogen/DestructibleActorParam_0p0.h | 856 +- .../include/autogen/DestructibleActorParam_0p1.h | 858 +- .../include/autogen/DestructibleActorParam_0p10.h | 1048 +- .../include/autogen/DestructibleActorParam_0p11.h | 1050 +- .../include/autogen/DestructibleActorParam_0p12.h | 1052 +- .../include/autogen/DestructibleActorParam_0p13.h | 1068 +- .../include/autogen/DestructibleActorParam_0p14.h | 1070 +- .../include/autogen/DestructibleActorParam_0p15.h | 1106 +- .../include/autogen/DestructibleActorParam_0p16.h | 1112 +- .../include/autogen/DestructibleActorParam_0p17.h | 1126 +- .../include/autogen/DestructibleActorParam_0p18.h | 1128 +- .../include/autogen/DestructibleActorParam_0p19.h | 1124 +- .../include/autogen/DestructibleActorParam_0p2.h | 860 +- .../include/autogen/DestructibleActorParam_0p20.h | 1126 +- .../include/autogen/DestructibleActorParam_0p21.h | 1188 +- .../include/autogen/DestructibleActorParam_0p22.h | 1190 +- .../include/autogen/DestructibleActorParam_0p23.h | 1192 +- .../include/autogen/DestructibleActorParam_0p24.h | 1194 +- .../include/autogen/DestructibleActorParam_0p25.h | 1214 +- .../include/autogen/DestructibleActorParam_0p26.h | 1216 +- .../include/autogen/DestructibleActorParam_0p27.h | 1222 +- .../include/autogen/DestructibleActorParam_0p28.h | 1226 +- .../include/autogen/DestructibleActorParam_0p29.h | 1228 +- .../include/autogen/DestructibleActorParam_0p3.h | 856 +- .../include/autogen/DestructibleActorParam_0p30.h | 1228 +- .../include/autogen/DestructibleActorParam_0p31.h | 1210 +- .../include/autogen/DestructibleActorParam_0p32.h | 1212 +- .../include/autogen/DestructibleActorParam_0p4.h | 1040 +- .../include/autogen/DestructibleActorParam_0p5.h | 1038 +- .../include/autogen/DestructibleActorParam_0p6.h | 1038 +- .../include/autogen/DestructibleActorParam_0p7.h | 1042 +- .../include/autogen/DestructibleActorParam_0p8.h | 1046 +- .../include/autogen/DestructibleActorParam_0p9.h | 1046 +- .../include/autogen/DestructibleActorState_0p0.h | 808 +- .../include/autogen/DestructibleActorState_0p1.h | 810 +- .../include/autogen/DestructibleActorState_0p2.h | 908 +- .../include/autogen/DestructibleActorState_0p3.h | 888 +- .../include/autogen/DestructibleActorState_0p4.h | 890 +- .../DestructibleAssetCollisionDataSet_0p0.h | 500 +- .../autogen/DestructibleAssetParameters_0p0.h | 930 +- .../autogen/DestructibleAssetParameters_0p1.h | 948 +- .../autogen/DestructibleAssetParameters_0p10.h | 1000 +- .../autogen/DestructibleAssetParameters_0p11.h | 1002 +- .../autogen/DestructibleAssetParameters_0p12.h | 998 +- .../autogen/DestructibleAssetParameters_0p13.h | 1000 +- .../autogen/DestructibleAssetParameters_0p14.h | 1038 +- .../autogen/DestructibleAssetParameters_0p15.h | 1044 +- .../autogen/DestructibleAssetParameters_0p16.h | 1058 +- .../autogen/DestructibleAssetParameters_0p17.h | 1060 +- .../autogen/DestructibleAssetParameters_0p18.h | 1062 +- .../autogen/DestructibleAssetParameters_0p19.h | 1116 +- .../autogen/DestructibleAssetParameters_0p2.h | 952 +- .../autogen/DestructibleAssetParameters_0p20.h | 1178 +- .../autogen/DestructibleAssetParameters_0p21.h | 1180 +- .../autogen/DestructibleAssetParameters_0p22.h | 1200 +- .../autogen/DestructibleAssetParameters_0p23.h | 1202 +- .../autogen/DestructibleAssetParameters_0p24.h | 1206 +- .../autogen/DestructibleAssetParameters_0p25.h | 1160 +- .../autogen/DestructibleAssetParameters_0p26.h | 1350 +- .../autogen/DestructibleAssetParameters_0p3.h | 948 +- .../autogen/DestructibleAssetParameters_0p4.h | 950 +- .../autogen/DestructibleAssetParameters_0p5.h | 948 +- .../autogen/DestructibleAssetParameters_0p6.h | 1162 +- .../autogen/DestructibleAssetParameters_0p7.h | 1158 +- .../autogen/DestructibleAssetParameters_0p8.h | 1158 +- .../autogen/DestructibleAssetParameters_0p9.h | 998 +- .../autogen/DestructibleDebugRenderParams_0p0.h | 476 +- .../autogen/DestructibleModuleParameters_0p0.h | 498 +- .../autogen/DestructibleModuleParameters_0p1.h | 502 +- .../autogen/DestructibleModuleParameters_0p2.h | 510 +- .../autogen/DestructibleModuleParameters_0p3.h | 474 +- .../include/autogen/DestructiblePreviewParam_0p0.h | 488 +- .../autogen/MeshCookedCollisionStream_0p0.h | 476 +- .../MeshCookedCollisionStreamsAtScale_0p0.h | 476 +- .../autogen/ModuleDestructibleLegacyRegistration.h | 3228 ++-- .../include/autogen/SurfaceTraceParameters_0p0.h | 496 +- .../autogen/SurfaceTraceSetParameters_0p0.h | 476 +- .../autogen/SurfaceTraceSetParameters_0p1.h | 478 +- .../autogen/SurfaceTraceSetParameters_0p2.h | 478 +- .../src/autogen/CachedOverlaps_0p0.cpp | 858 +- .../src/autogen/CachedOverlaps_0p1.cpp | 858 +- .../src/autogen/DestructibleActorChunks_0p0.cpp | 1284 +- .../src/autogen/DestructibleActorParam_0p0.cpp | 8150 ++++----- .../src/autogen/DestructibleActorParam_0p1.cpp | 8204 ++++----- .../src/autogen/DestructibleActorParam_0p10.cpp | 11756 ++++++------- .../src/autogen/DestructibleActorParam_0p11.cpp | 11808 ++++++------- .../src/autogen/DestructibleActorParam_0p12.cpp | 11862 ++++++------- .../src/autogen/DestructibleActorParam_0p13.cpp | 12094 +++++++------- .../src/autogen/DestructibleActorParam_0p14.cpp | 12146 +++++++------- .../src/autogen/DestructibleActorParam_0p15.cpp | 13486 +++++++-------- .../src/autogen/DestructibleActorParam_0p16.cpp | 13794 ++++++++-------- .../src/autogen/DestructibleActorParam_0p17.cpp | 14458 ++++++++-------- .../src/autogen/DestructibleActorParam_0p18.cpp | 14510 ++++++++-------- .../src/autogen/DestructibleActorParam_0p19.cpp | 14408 ++++++++-------- .../src/autogen/DestructibleActorParam_0p2.cpp | 8204 ++++----- .../src/autogen/DestructibleActorParam_0p20.cpp | 14510 ++++++++-------- .../src/autogen/DestructibleActorParam_0p21.cpp | 15536 ++++++++--------- .../src/autogen/DestructibleActorParam_0p22.cpp | 15590 +++++++++--------- .../src/autogen/DestructibleActorParam_0p23.cpp | 15642 +++++++++--------- .../src/autogen/DestructibleActorParam_0p24.cpp | 15694 +++++++++--------- .../src/autogen/DestructibleActorParam_0p25.cpp | 16020 +++++++++--------- .../src/autogen/DestructibleActorParam_0p26.cpp | 16122 +++++++++--------- .../src/autogen/DestructibleActorParam_0p27.cpp | 16278 +++++++++--------- .../src/autogen/DestructibleActorParam_0p28.cpp | 16394 +++++++++--------- .../src/autogen/DestructibleActorParam_0p29.cpp | 16446 +++++++++--------- .../src/autogen/DestructibleActorParam_0p3.cpp | 8098 ++++----- .../src/autogen/DestructibleActorParam_0p30.cpp | 16446 +++++++++--------- .../src/autogen/DestructibleActorParam_0p31.cpp | 16434 +++++++++--------- .../src/autogen/DestructibleActorParam_0p32.cpp | 16488 +++++++++---------- .../src/autogen/DestructibleActorParam_0p4.cpp | 11550 ++++++------- .../src/autogen/DestructibleActorParam_0p5.cpp | 11496 ++++++------- .../src/autogen/DestructibleActorParam_0p6.cpp | 11496 ++++++------- .../src/autogen/DestructibleActorParam_0p7.cpp | 11600 ++++++------- .../src/autogen/DestructibleActorParam_0p8.cpp | 11704 ++++++------- .../src/autogen/DestructibleActorParam_0p9.cpp | 11704 ++++++------- .../src/autogen/DestructibleActorState_0p0.cpp | 2968 ++-- .../src/autogen/DestructibleActorState_0p1.cpp | 3020 ++-- .../src/autogen/DestructibleActorState_0p2.cpp | 4536 ++--- .../src/autogen/DestructibleActorState_0p3.cpp | 4222 ++--- .../src/autogen/DestructibleActorState_0p4.cpp | 4274 ++--- .../DestructibleAssetCollisionDataSet_0p0.cpp | 1050 +- .../autogen/DestructibleAssetParameters_0p0.cpp | 4970 +++--- .../autogen/DestructibleAssetParameters_0p1.cpp | 5124 +++--- .../autogen/DestructibleAssetParameters_0p10.cpp | 5638 +++---- .../autogen/DestructibleAssetParameters_0p11.cpp | 5692 +++---- .../autogen/DestructibleAssetParameters_0p12.cpp | 5452 +++--- .../autogen/DestructibleAssetParameters_0p13.cpp | 5504 +++---- .../autogen/DestructibleAssetParameters_0p14.cpp | 6308 +++---- .../autogen/DestructibleAssetParameters_0p15.cpp | 6614 ++++---- .../autogen/DestructibleAssetParameters_0p16.cpp | 7280 ++++---- .../autogen/DestructibleAssetParameters_0p17.cpp | 7332 ++++----- .../autogen/DestructibleAssetParameters_0p18.cpp | 7434 ++++----- .../autogen/DestructibleAssetParameters_0p19.cpp | 8096 ++++----- .../autogen/DestructibleAssetParameters_0p2.cpp | 5176 +++--- .../autogen/DestructibleAssetParameters_0p20.cpp | 9122 +++++----- .../autogen/DestructibleAssetParameters_0p21.cpp | 9174 +++++------ .../autogen/DestructibleAssetParameters_0p22.cpp | 9502 +++++------ .../autogen/DestructibleAssetParameters_0p23.cpp | 9604 +++++------ .../autogen/DestructibleAssetParameters_0p24.cpp | 9720 +++++------ .../autogen/DestructibleAssetParameters_0p25.cpp | 9606 +++++------ .../autogen/DestructibleAssetParameters_0p26.cpp | 9658 +++++------ .../autogen/DestructibleAssetParameters_0p3.cpp | 5072 +++--- .../autogen/DestructibleAssetParameters_0p4.cpp | 5202 +++--- .../autogen/DestructibleAssetParameters_0p5.cpp | 5150 +++--- .../autogen/DestructibleAssetParameters_0p6.cpp | 5682 +++---- .../autogen/DestructibleAssetParameters_0p7.cpp | 5446 +++--- .../autogen/DestructibleAssetParameters_0p8.cpp | 5444 +++--- .../autogen/DestructibleAssetParameters_0p9.cpp | 5574 +++---- .../autogen/DestructibleDebugRenderParams_0p0.cpp | 1016 +- .../autogen/DestructibleModuleParameters_0p0.cpp | 1420 +- .../autogen/DestructibleModuleParameters_0p1.cpp | 1524 +- .../autogen/DestructibleModuleParameters_0p2.cpp | 1724 +- .../autogen/DestructibleModuleParameters_0p3.cpp | 1010 +- .../src/autogen/DestructiblePreviewParam_0p0.cpp | 1144 +- .../src/autogen/MeshCookedCollisionStream_0p0.cpp | 696 +- .../MeshCookedCollisionStreamsAtScale_0p0.cpp | 752 +- .../src/autogen/SurfaceTraceParameters_0p0.cpp | 876 +- .../src/autogen/SurfaceTraceSetParameters_0p0.cpp | 752 +- .../src/autogen/SurfaceTraceSetParameters_0p1.cpp | 804 +- .../src/autogen/SurfaceTraceSetParameters_0p2.cpp | 804 +- .../framework/include/autogen/BufferF32x1.h | 476 +- .../framework/include/autogen/BufferF32x2.h | 488 +- .../framework/include/autogen/BufferF32x3.h | 490 +- .../framework/include/autogen/BufferF32x4.h | 492 +- .../framework/include/autogen/BufferU16x1.h | 476 +- .../framework/include/autogen/BufferU16x2.h | 488 +- .../framework/include/autogen/BufferU16x3.h | 490 +- .../framework/include/autogen/BufferU16x4.h | 492 +- .../framework/include/autogen/BufferU32x1.h | 476 +- .../framework/include/autogen/BufferU32x2.h | 488 +- .../framework/include/autogen/BufferU32x3.h | 490 +- .../framework/include/autogen/BufferU32x4.h | 492 +- .../modules/framework/include/autogen/BufferU8x1.h | 476 +- .../modules/framework/include/autogen/BufferU8x2.h | 488 +- .../modules/framework/include/autogen/BufferU8x3.h | 490 +- .../modules/framework/include/autogen/BufferU8x4.h | 492 +- .../include/autogen/ModuleFrameworkRegistration.h | 348 +- .../include/autogen/RenderMeshAssetParameters.h | 520 +- .../framework/include/autogen/SubmeshParameters.h | 484 +- .../include/autogen/SurfaceBufferParameters.h | 466 +- .../include/autogen/VertexBufferParameters.h | 480 +- .../include/autogen/VertexFormatParameters.h | 500 +- .../modules/framework/src/autogen/BufferF32x1.cpp | 692 +- .../modules/framework/src/autogen/BufferF32x2.cpp | 802 +- .../modules/framework/src/autogen/BufferF32x3.cpp | 692 +- .../modules/framework/src/autogen/BufferF32x4.cpp | 906 +- .../modules/framework/src/autogen/BufferU16x1.cpp | 692 +- .../modules/framework/src/autogen/BufferU16x2.cpp | 802 +- .../modules/framework/src/autogen/BufferU16x3.cpp | 850 +- .../modules/framework/src/autogen/BufferU16x4.cpp | 898 +- .../modules/framework/src/autogen/BufferU32x1.cpp | 692 +- .../modules/framework/src/autogen/BufferU32x2.cpp | 802 +- .../modules/framework/src/autogen/BufferU32x3.cpp | 850 +- .../modules/framework/src/autogen/BufferU32x4.cpp | 898 +- .../modules/framework/src/autogen/BufferU8x1.cpp | 692 +- .../modules/framework/src/autogen/BufferU8x2.cpp | 802 +- .../modules/framework/src/autogen/BufferU8x3.cpp | 850 +- .../modules/framework/src/autogen/BufferU8x4.cpp | 898 +- .../src/autogen/RenderMeshAssetParameters.cpp | 1242 +- .../framework/src/autogen/SubmeshParameters.cpp | 1190 +- .../src/autogen/SurfaceBufferParameters.cpp | 808 +- .../src/autogen/VertexBufferParameters.cpp | 892 +- .../src/autogen/VertexFormatParameters.cpp | 1138 +- .../include/ConversionBufferF32x4_0p0_0p1.h | 160 +- .../include/ConversionSubmeshParameters_0p0_0p1.h | 160 +- .../ConversionVertexBufferParameters_0p0_0p1.h | 380 +- .../include/autogen/BufferF32x1_0p0.h | 476 +- .../include/autogen/BufferF32x2_0p0.h | 488 +- .../include/autogen/BufferF32x3_0p0.h | 490 +- .../include/autogen/BufferF32x4_0p0.h | 492 +- .../include/autogen/BufferF32x4_0p1.h | 492 +- .../include/autogen/BufferU16x1_0p0.h | 476 +- .../include/autogen/BufferU16x2_0p0.h | 488 +- .../include/autogen/BufferU16x3_0p0.h | 490 +- .../include/autogen/BufferU16x4_0p0.h | 492 +- .../include/autogen/BufferU32x1_0p0.h | 476 +- .../include/autogen/BufferU32x2_0p0.h | 488 +- .../include/autogen/BufferU32x3_0p0.h | 490 +- .../include/autogen/BufferU32x4_0p0.h | 492 +- .../include/autogen/BufferU8x1_0p0.h | 476 +- .../include/autogen/BufferU8x2_0p0.h | 488 +- .../include/autogen/BufferU8x3_0p0.h | 490 +- .../include/autogen/BufferU8x4_0p0.h | 492 +- .../autogen/ModuleFrameworkLegacyRegistration.h | 384 +- .../autogen/RenderMeshAssetParameters_0p0.h | 520 +- .../include/autogen/SubmeshParameters_0p0.h | 482 +- .../include/autogen/SubmeshParameters_0p1.h | 484 +- .../include/autogen/SurfaceBufferParameters_0p1.h | 466 +- .../include/autogen/VertexBufferParameters_0p0.h | 480 +- .../include/autogen/VertexBufferParameters_0p1.h | 480 +- .../include/autogen/VertexFormatParameters_0p0.h | 500 +- .../src/autogen/BufferF32x1_0p0.cpp | 692 +- .../src/autogen/BufferF32x2_0p0.cpp | 802 +- .../src/autogen/BufferF32x3_0p0.cpp | 692 +- .../src/autogen/BufferF32x4_0p0.cpp | 818 +- .../src/autogen/BufferF32x4_0p1.cpp | 906 +- .../src/autogen/BufferU16x1_0p0.cpp | 692 +- .../src/autogen/BufferU16x2_0p0.cpp | 802 +- .../src/autogen/BufferU16x3_0p0.cpp | 850 +- .../src/autogen/BufferU16x4_0p0.cpp | 898 +- .../src/autogen/BufferU32x1_0p0.cpp | 692 +- .../src/autogen/BufferU32x2_0p0.cpp | 802 +- .../src/autogen/BufferU32x3_0p0.cpp | 850 +- .../src/autogen/BufferU32x4_0p0.cpp | 898 +- .../src/autogen/BufferU8x1_0p0.cpp | 692 +- .../src/autogen/BufferU8x2_0p0.cpp | 802 +- .../src/autogen/BufferU8x3_0p0.cpp | 850 +- .../src/autogen/BufferU8x4_0p0.cpp | 898 +- .../src/autogen/RenderMeshAssetParameters_0p0.cpp | 1242 +- .../src/autogen/SubmeshParameters_0p0.cpp | 1036 +- .../src/autogen/SubmeshParameters_0p1.cpp | 1190 +- .../src/autogen/SurfaceBufferParameters_0p1.cpp | 808 +- .../src/autogen/VertexBufferParameters_0p0.cpp | 884 +- .../src/autogen/VertexBufferParameters_0p1.cpp | 892 +- .../src/autogen/VertexFormatParameters_0p0.cpp | 1138 +- .../nvparutils/nvparameterized/NvParamUtils.h | 670 +- .../nvparutils/nvparameterized/NvParamUtils.inl | 2734 +-- .../nvparutils/nvparameterized/NvParameterized.h | 3624 ++-- .../nvparutils/nvparameterized/NvParameterized.inl | 2458 +-- .../nvparameterized/NvParameterizedMacroses.h | 272 +- .../nvparameterized/NvParameterizedTraits.h | 746 +- .../nvparameterized/NvParameterized_types.h | 214 +- .../nvparutils/nvparameterized/NvSerializer.h | 926 +- .../nvparutils/nvparameterized/NvSerializer.inl | 354 +- .../import/include/NvBlastExtApexImportTool.h | 418 +- .../import/source/NvBlastExtApexImportTool.cpp | 1888 +-- 416 files changed, 463564 insertions(+), 463564 deletions(-) mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/AbstractSerializer.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/ApbDefinitions.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/BinSerializer.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/BinaryHelper.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/NvDefaultTraits.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/NvParamConversionTemplate.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/NvParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/NvParametersTypes.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/NvRegistrationsForTraitsBase.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/NvSerializerInternal.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/NvTraitsInternal.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.inl mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.inl mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.inl mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/PlatformStream.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/SerializerCommon.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/XmlDeserializer.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/include/XmlSerializer.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/BinSerializer.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/BinaryHelper.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterized.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterizedTraits.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/NvSerializer.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/PlatformABI.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/PlatformInputStream.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/PlatformOutputStream.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/SerializerCommon.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/XmlDeserializer.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/NvParameterized/src/XmlSerializer.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/include/ApexCommonStructs.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/include/autogen/ConvexHullParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugColorParams.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugRenderParams.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/include/autogen/ModuleCommonRegistration.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/src/autogen/ConvexHullParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugColorParams.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugRenderParams.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/include/ConversionConvexHullParameters_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugColorParams_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugRenderParams_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ModuleCommonLegacyRegistration.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugColorParams_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugRenderParams_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorChunks.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorParam.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorState.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetCollisionDataSet.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleDebugRenderParams.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleModuleParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructiblePreviewParam.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStream.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStreamsAtScale.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/ModuleDestructibleRegistration.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceSetParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/CachedOverlaps.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorChunks.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorParam.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorState.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetCollisionDataSet.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleDebugRenderParams.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleModuleParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructiblePreviewParam.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStream.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStreamsAtScale.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceSetParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionCachedOverlaps_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p10_0p11.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p11_0p12.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p12_0p13.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p13_0p14.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p14_0p15.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p15_0p16.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p16_0p17.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p17_0p18.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p18_0p19.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p19_0p20.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p1_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p20_0p21.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p21_0p22.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p22_0p23.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p23_0p24.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p24_0p25.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p25_0p26.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p26_0p27.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p27_0p28.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p28_0p29.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p29_0p30.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p2_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p30_0p31.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p31_0p32.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p3_0p4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p4_0p5.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p5_0p6.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p6_0p7.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p7_0p8.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p8_0p9.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p9_0p10.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p1_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p2_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p3_0p4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p10_0p11.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p11_0p12.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p12_0p13.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p13_0p14.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p14_0p15.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p15_0p16.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p16_0p17.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p17_0p18.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p18_0p19.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p19_0p20.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p1_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p20_0p21.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p21_0p22.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p22_0p23.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p23_0p24.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p24_0p25.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p25_0p26.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p2_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p3_0p4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p4_0p5.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p5_0p6.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p6_0p7.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p7_0p8.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p8_0p9.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p9_0p10.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p1_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p2_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p1_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorChunks_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p10.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p11.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p12.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p13.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p14.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p15.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p16.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p17.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p18.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p19.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p20.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p21.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p22.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p23.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p24.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p25.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p26.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p27.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p28.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p29.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p30.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p31.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p32.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p5.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p6.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p7.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p8.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p9.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetCollisionDataSet_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p10.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p11.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p12.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p13.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p14.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p15.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p16.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p17.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p18.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p19.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p20.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p21.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p22.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p23.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p24.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p25.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p26.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p5.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p6.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p7.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p8.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p9.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleDebugRenderParams_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructiblePreviewParam_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStream_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStreamsAtScale_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/ModuleDestructibleLegacyRegistration.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorChunks_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p10.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p11.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p12.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p13.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p14.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p15.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p16.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p17.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p18.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p19.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p20.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p21.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p22.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p23.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p24.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p25.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p26.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p27.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p28.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p29.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p30.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p31.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p32.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p4.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p5.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p6.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p7.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p8.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p9.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p4.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetCollisionDataSet_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p10.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p11.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p12.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p13.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p14.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p15.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p16.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p17.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p18.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p19.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p20.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p21.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p22.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p23.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p24.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p25.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p26.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p4.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p5.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p6.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p7.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p8.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p9.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleDebugRenderParams_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructiblePreviewParam_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStream_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStreamsAtScale_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x2.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x3.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x4.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/ModuleFrameworkRegistration.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/RenderMeshAssetParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/SubmeshParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/SurfaceBufferParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexBufferParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexFormatParameters.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x4.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x4.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x4.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x2.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x3.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x4.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/RenderMeshAssetParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/SubmeshParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/SurfaceBufferParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexBufferParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexFormatParameters.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionBufferF32x4_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionSubmeshParameters_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionVertexBufferParameters_0p0_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x1_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x2_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x3_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x1_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x2_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x3_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x4_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x1_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x2_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x3_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x4_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x1_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x2_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x3_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x4_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/ModuleFrameworkLegacyRegistration.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/RenderMeshAssetParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SurfaceBufferParameters_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p1.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexFormatParameters_0p0.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x1_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x2_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x3_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x1_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x2_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x3_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x4_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x1_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x2_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x3_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x4_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x1_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x2_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x3_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x4_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/RenderMeshAssetParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SurfaceBufferParameters_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p1.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexFormatParameters_0p0.cpp mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.inl mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.inl mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedMacroses.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedTraits.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized_types.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.h mode change 100644 => 100755 sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.inl mode change 100644 => 100755 sdk/extensions/import/include/NvBlastExtApexImportTool.h mode change 100644 => 100755 sdk/extensions/import/source/NvBlastExtApexImportTool.cpp (limited to 'sdk/extensions/import') diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/AbstractSerializer.h b/sdk/extensions/import/apexmodules/NvParameterized/include/AbstractSerializer.h old mode 100644 new mode 100755 index 1b7b43b..2c01924 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/AbstractSerializer.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/AbstractSerializer.h @@ -1,173 +1,173 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_ABSTRACT_SERIALIZER_H -#define PX_ABSTRACT_SERIALIZER_H - -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "nvparameterized/NvSerializer.h" - -#include "NvSerializerInternal.h" -#include "NvTraitsInternal.h" - -#include "SerializerCommon.h" - -namespace NvParameterized -{ - -// Base for other serializers which takes care of common stuff - -class AbstractSerializer : public Serializer -{ -public: - AbstractSerializer(Traits *traits): - mDoUpdate(true), - mPlatform(GetCurrentPlatform()), - mTraits(traits) {} - - virtual ~AbstractSerializer() {} - - Traits *getTraits() const { return mTraits; } - - //This is used in static Serializer::deserializer - void setTraits(Traits *traits) { mTraits = traits; } - - void setAutoUpdate(bool doUpdate) - { - mDoUpdate = doUpdate; - } - - Serializer::ErrorType peekInplaceAlignment(physx::PxFileBuf& /*stream*/, uint32_t& /*align*/) - { - return Serializer::ERROR_NOT_IMPLEMENTED; - } - - Serializer::ErrorType setTargetPlatform(const SerializePlatform &platform) - { - mPlatform = platform; - return Serializer::ERROR_NONE; //Only pdb cares about platforms - } - - Serializer::ErrorType serialize(physx::PxFileBuf &stream,const NvParameterized::Interface **objs, uint32_t nobjs, bool doMetadata) - { -#ifdef WITHOUT_APEX_SERIALIZATION - PX_UNUSED(stream); - PX_UNUSED(objs); - PX_UNUSED(nobjs); - PX_UNUSED(doMetadata); - - return Serializer::ERROR_NOT_IMPLEMENTED; -#else - - NV_BOOL_ERR_CHECK_WARN_RETURN( - stream.isOpen(), - Serializer::ERROR_STREAM_ERROR, - "Stream not opened" ); - - for(uint32_t i = 0; i < nobjs; ++i) - { - NV_BOOL_ERR_CHECK_WARN_RETURN( - objs[i]->callPreSerializeCallback() == 0, - Serializer::ERROR_PRESERIALIZE_FAILED, - "Preserialize callback failed" ); - } - - return internalSerialize(stream, objs, nobjs, doMetadata); -#endif - } - - using Serializer::deserialize; - virtual Serializer::ErrorType deserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &res, bool &isUpdated) - { - NV_BOOL_ERR_CHECK_WARN_RETURN( - stream.isOpen(), - Serializer::ERROR_STREAM_ERROR, - "Stream not opened" ); - - isUpdated = false; - bool doesNeedUpdate = true; - NV_ERR_CHECK_RETURN( internalDeserialize(stream, res, doesNeedUpdate) ); - return doesNeedUpdate && mDoUpdate ? upgrade(res, isUpdated) : Serializer::ERROR_NONE; - } - - using Serializer::deserializeInplace; - Serializer::ErrorType deserializeInplace(void *data, uint32_t dataLen, Serializer::DeserializedData &res, bool &isUpdated) - { - isUpdated = false; - bool doesNeedUpdate = true; - NV_ERR_CHECK_RETURN( internalDeserializeInplace(data, dataLen, res, doesNeedUpdate) ); - return doesNeedUpdate && mDoUpdate ? upgrade(res, isUpdated) : Serializer::ERROR_NONE; - } - -protected: - - bool mDoUpdate; - SerializePlatform mPlatform; - Traits *mTraits; - -#ifndef WITHOUT_APEX_SERIALIZATION - virtual Serializer::ErrorType internalSerialize( - physx::PxFileBuf &stream, - const NvParameterized::Interface **objs, - uint32_t n, - bool doMetadata) = 0; -#endif - - // doesNeedUpdate allows serializer to avoid costly depth-first scanning of included refs - virtual Serializer::ErrorType internalDeserialize( - physx::PxFileBuf &stream, - Serializer::DeserializedData &res, - bool &doesNeedUpdate) = 0; - - // See note for internalDeserialize - virtual Serializer::ErrorType internalDeserializeInplace( - void * /*data*/, - uint32_t /*dataLen*/, - Serializer::DeserializedData & /*res*/, - bool & /*doesNeedUpdate*/) - { - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_NOT_IMPLEMENTED; - } - -private: - Serializer::ErrorType upgrade(Serializer::DeserializedData &res, bool &isUpdated) - { - //Upgrade legacy objects - NV_BOOL_ERR_CHECK_WARN_RETURN( - UpgradeLegacyObjects(res, isUpdated, mTraits), - Serializer::ERROR_CONVERSION_FAILED, - "Upgrading legacy objects failed" ); - - return Serializer::ERROR_NONE; - } -}; - -} // namespace NvParameterized - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_ABSTRACT_SERIALIZER_H +#define PX_ABSTRACT_SERIALIZER_H + +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "nvparameterized/NvSerializer.h" + +#include "NvSerializerInternal.h" +#include "NvTraitsInternal.h" + +#include "SerializerCommon.h" + +namespace NvParameterized +{ + +// Base for other serializers which takes care of common stuff + +class AbstractSerializer : public Serializer +{ +public: + AbstractSerializer(Traits *traits): + mDoUpdate(true), + mPlatform(GetCurrentPlatform()), + mTraits(traits) {} + + virtual ~AbstractSerializer() {} + + Traits *getTraits() const { return mTraits; } + + //This is used in static Serializer::deserializer + void setTraits(Traits *traits) { mTraits = traits; } + + void setAutoUpdate(bool doUpdate) + { + mDoUpdate = doUpdate; + } + + Serializer::ErrorType peekInplaceAlignment(physx::PxFileBuf& /*stream*/, uint32_t& /*align*/) + { + return Serializer::ERROR_NOT_IMPLEMENTED; + } + + Serializer::ErrorType setTargetPlatform(const SerializePlatform &platform) + { + mPlatform = platform; + return Serializer::ERROR_NONE; //Only pdb cares about platforms + } + + Serializer::ErrorType serialize(physx::PxFileBuf &stream,const NvParameterized::Interface **objs, uint32_t nobjs, bool doMetadata) + { +#ifdef WITHOUT_APEX_SERIALIZATION + PX_UNUSED(stream); + PX_UNUSED(objs); + PX_UNUSED(nobjs); + PX_UNUSED(doMetadata); + + return Serializer::ERROR_NOT_IMPLEMENTED; +#else + + NV_BOOL_ERR_CHECK_WARN_RETURN( + stream.isOpen(), + Serializer::ERROR_STREAM_ERROR, + "Stream not opened" ); + + for(uint32_t i = 0; i < nobjs; ++i) + { + NV_BOOL_ERR_CHECK_WARN_RETURN( + objs[i]->callPreSerializeCallback() == 0, + Serializer::ERROR_PRESERIALIZE_FAILED, + "Preserialize callback failed" ); + } + + return internalSerialize(stream, objs, nobjs, doMetadata); +#endif + } + + using Serializer::deserialize; + virtual Serializer::ErrorType deserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &res, bool &isUpdated) + { + NV_BOOL_ERR_CHECK_WARN_RETURN( + stream.isOpen(), + Serializer::ERROR_STREAM_ERROR, + "Stream not opened" ); + + isUpdated = false; + bool doesNeedUpdate = true; + NV_ERR_CHECK_RETURN( internalDeserialize(stream, res, doesNeedUpdate) ); + return doesNeedUpdate && mDoUpdate ? upgrade(res, isUpdated) : Serializer::ERROR_NONE; + } + + using Serializer::deserializeInplace; + Serializer::ErrorType deserializeInplace(void *data, uint32_t dataLen, Serializer::DeserializedData &res, bool &isUpdated) + { + isUpdated = false; + bool doesNeedUpdate = true; + NV_ERR_CHECK_RETURN( internalDeserializeInplace(data, dataLen, res, doesNeedUpdate) ); + return doesNeedUpdate && mDoUpdate ? upgrade(res, isUpdated) : Serializer::ERROR_NONE; + } + +protected: + + bool mDoUpdate; + SerializePlatform mPlatform; + Traits *mTraits; + +#ifndef WITHOUT_APEX_SERIALIZATION + virtual Serializer::ErrorType internalSerialize( + physx::PxFileBuf &stream, + const NvParameterized::Interface **objs, + uint32_t n, + bool doMetadata) = 0; +#endif + + // doesNeedUpdate allows serializer to avoid costly depth-first scanning of included refs + virtual Serializer::ErrorType internalDeserialize( + physx::PxFileBuf &stream, + Serializer::DeserializedData &res, + bool &doesNeedUpdate) = 0; + + // See note for internalDeserialize + virtual Serializer::ErrorType internalDeserializeInplace( + void * /*data*/, + uint32_t /*dataLen*/, + Serializer::DeserializedData & /*res*/, + bool & /*doesNeedUpdate*/) + { + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_NOT_IMPLEMENTED; + } + +private: + Serializer::ErrorType upgrade(Serializer::DeserializedData &res, bool &isUpdated) + { + //Upgrade legacy objects + NV_BOOL_ERR_CHECK_WARN_RETURN( + UpgradeLegacyObjects(res, isUpdated, mTraits), + Serializer::ERROR_CONVERSION_FAILED, + "Upgrading legacy objects failed" ); + + return Serializer::ERROR_NONE; + } +}; + +} // namespace NvParameterized + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/ApbDefinitions.h b/sdk/extensions/import/apexmodules/NvParameterized/include/ApbDefinitions.h old mode 100644 new mode 100755 index 467ea02..592ed09 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/ApbDefinitions.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/ApbDefinitions.h @@ -1,217 +1,217 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef APB_DEFINITIONS_H_ -#define APB_DEFINITIONS_H_ - -// This file contains definitions of various parts of APB file format - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "SerializerCommon.h" -#include "BinaryHelper.h" - -namespace NvParameterized -{ - -#define APB_MAGIC 0x5A5B5C5D - -namespace BinVersions -{ - static const uint32_t Initial = 0x00010000, - AllRefsCounted = 0x00010001, - WithAlignment = 0x00010002, - WithExtendedHeader = 0x00010003; -} - -// Type of relocation in binary file -enum RelocType -{ - //Raw bytes - RELOC_ABS_RAW = 0, - - //NvParameterized (will be initialized on deserialization) - RELOC_ABS_REF, - - RELOC_LAST -}; - -// Relocation record in binary file -struct BinaryReloc -{ - uint32_t type; - uint32_t off; -}; - -// Format of data in binary file; only BINARY_TYPE_PLAIN is used for now -enum BinaryType -{ - BINARY_TYPE_PLAIN = 0, - BINARY_TYPE_XML_GZ, - BINARY_TYPE_LAST -}; - -// Some dummy version control systems insert '\r' before '\n'. -// This short string in header is used to catch this. -// We also use 0xff byte to guarantee that we have non-printable chars -// (s.t. VCS can detect that file is binary). -#define VCS_SAFETY_FLAGS "ab\n\xff" - -// File header -#pragma pack(push,1) // For cross-platform compatibility! - -// Convert to platform-independent format -static void CanonizeArrayOfU32s(char *data, uint32_t len) -{ - PX_ASSERT(len % 4U == 0); - - if( IsBigEndian() ) - return; - - for(uint32_t i = 0; i < len; i += 4U) - SwapBytes(data + i, 4U, TYPE_U32); -} - -// Main binary header -struct BinaryHeader -{ - uint32_t magic; - uint32_t type; - uint32_t version; - int32_t numObjects; - - uint32_t fileLength; - uint32_t dictOffset; - uint32_t dataOffset; - uint32_t relocOffset; - - uint32_t metadataOffset; - uint32_t archType; - uint32_t compilerType; - uint32_t compilerVer; - - uint32_t osType; - uint32_t osVer; - uint32_t numMetadata; - uint32_t alignment; - - static bool CheckAlignment() - { - bool isPushPackOk = 4 != offsetof(BinaryHeader, type); - if( isPushPackOk ) - { - DEBUG_ASSERT( 0 && "PX_PUSH_PACK failed!" ); - return false; - } -#ifdef _MSC_VER -#pragma warning(push) -#pragma warning(disable:4127) -#endif - if( sizeof(BinaryHeader) % 16 != 0 ) - { - return false; - } -#ifdef _MSC_VER -#pragma warning(pop) -#endif - - return true; - } - - Serializer::ErrorType getPlatform(SerializePlatform &platform) const - { - if( archType >= SerializePlatform::ARCH_LAST - || compilerType >= SerializePlatform::COMP_LAST - || osType >= SerializePlatform::OS_LAST ) - { - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_PLATFORM; - } - - platform = SerializePlatform( - static_cast(archType), - static_cast(compilerType), - compilerVer, - static_cast(osType), - osVer - ); - - return Serializer::ERROR_NONE; - } - - void canonize() - { - CanonizeArrayOfU32s((char*)this, sizeof(BinaryHeader)); - } - - void decanonize() { canonize(); } -}; - -// Extended header (only in new versions) -struct BinaryHeaderExt -{ - uint32_t vcsSafetyFlags; - uint32_t res[3 + 8]; // Pad to multiple of 16 byte - - void canonize() - { - // vcsSafetyFlags should be stored as-is - } - - void decanonize() - { - // vcsSafetyFlags should be stored as-is - } -}; - -#pragma pack(pop) - -// NvParameterized object header -struct ObjHeader -{ - uint32_t dataOffset; - const char *className; - const char *name; - bool isIncluded; - uint32_t version; - uint32_t checksumSize; - const uint32_t *checksum; -}; - -// Element of root references table -struct ObjectTableEntry -{ - Interface *obj; - const char *className; - const char *name; - const char *filename; -}; - -} // namespace NvParameterized - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef APB_DEFINITIONS_H_ +#define APB_DEFINITIONS_H_ + +// This file contains definitions of various parts of APB file format + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "SerializerCommon.h" +#include "BinaryHelper.h" + +namespace NvParameterized +{ + +#define APB_MAGIC 0x5A5B5C5D + +namespace BinVersions +{ + static const uint32_t Initial = 0x00010000, + AllRefsCounted = 0x00010001, + WithAlignment = 0x00010002, + WithExtendedHeader = 0x00010003; +} + +// Type of relocation in binary file +enum RelocType +{ + //Raw bytes + RELOC_ABS_RAW = 0, + + //NvParameterized (will be initialized on deserialization) + RELOC_ABS_REF, + + RELOC_LAST +}; + +// Relocation record in binary file +struct BinaryReloc +{ + uint32_t type; + uint32_t off; +}; + +// Format of data in binary file; only BINARY_TYPE_PLAIN is used for now +enum BinaryType +{ + BINARY_TYPE_PLAIN = 0, + BINARY_TYPE_XML_GZ, + BINARY_TYPE_LAST +}; + +// Some dummy version control systems insert '\r' before '\n'. +// This short string in header is used to catch this. +// We also use 0xff byte to guarantee that we have non-printable chars +// (s.t. VCS can detect that file is binary). +#define VCS_SAFETY_FLAGS "ab\n\xff" + +// File header +#pragma pack(push,1) // For cross-platform compatibility! + +// Convert to platform-independent format +static void CanonizeArrayOfU32s(char *data, uint32_t len) +{ + PX_ASSERT(len % 4U == 0); + + if( IsBigEndian() ) + return; + + for(uint32_t i = 0; i < len; i += 4U) + SwapBytes(data + i, 4U, TYPE_U32); +} + +// Main binary header +struct BinaryHeader +{ + uint32_t magic; + uint32_t type; + uint32_t version; + int32_t numObjects; + + uint32_t fileLength; + uint32_t dictOffset; + uint32_t dataOffset; + uint32_t relocOffset; + + uint32_t metadataOffset; + uint32_t archType; + uint32_t compilerType; + uint32_t compilerVer; + + uint32_t osType; + uint32_t osVer; + uint32_t numMetadata; + uint32_t alignment; + + static bool CheckAlignment() + { + bool isPushPackOk = 4 != offsetof(BinaryHeader, type); + if( isPushPackOk ) + { + DEBUG_ASSERT( 0 && "PX_PUSH_PACK failed!" ); + return false; + } +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable:4127) +#endif + if( sizeof(BinaryHeader) % 16 != 0 ) + { + return false; + } +#ifdef _MSC_VER +#pragma warning(pop) +#endif + + return true; + } + + Serializer::ErrorType getPlatform(SerializePlatform &platform) const + { + if( archType >= SerializePlatform::ARCH_LAST + || compilerType >= SerializePlatform::COMP_LAST + || osType >= SerializePlatform::OS_LAST ) + { + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_PLATFORM; + } + + platform = SerializePlatform( + static_cast(archType), + static_cast(compilerType), + compilerVer, + static_cast(osType), + osVer + ); + + return Serializer::ERROR_NONE; + } + + void canonize() + { + CanonizeArrayOfU32s((char*)this, sizeof(BinaryHeader)); + } + + void decanonize() { canonize(); } +}; + +// Extended header (only in new versions) +struct BinaryHeaderExt +{ + uint32_t vcsSafetyFlags; + uint32_t res[3 + 8]; // Pad to multiple of 16 byte + + void canonize() + { + // vcsSafetyFlags should be stored as-is + } + + void decanonize() + { + // vcsSafetyFlags should be stored as-is + } +}; + +#pragma pack(pop) + +// NvParameterized object header +struct ObjHeader +{ + uint32_t dataOffset; + const char *className; + const char *name; + bool isIncluded; + uint32_t version; + uint32_t checksumSize; + const uint32_t *checksum; +}; + +// Element of root references table +struct ObjectTableEntry +{ + Interface *obj; + const char *className; + const char *name; + const char *filename; +}; + +} // namespace NvParameterized + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/BinSerializer.h b/sdk/extensions/import/apexmodules/NvParameterized/include/BinSerializer.h old mode 100644 new mode 100755 index 9730694..de3134a --- a/sdk/extensions/import/apexmodules/NvParameterized/include/BinSerializer.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/BinSerializer.h @@ -1,132 +1,132 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_BIN_SERIALIZER_H -#define PX_BIN_SERIALIZER_H - -// APB serializer - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvSerializer.h" - -#include "AbstractSerializer.h" - -#include "ApbDefinitions.h" - -namespace NvParameterized -{ - -class DefinitionImpl; -class PlatformInputStream; -class PlatformOutputStream; -struct PlatformABI; - -class BinSerializer : public AbstractSerializer -{ - // Methods for updating legacy formats - Serializer::ErrorType updateInitial2AllCounted(BinaryHeader &hdr, char *start); - Serializer::ErrorType updateAllCounted2WithAlignment(BinaryHeader &hdr, char *start); - - Serializer::ErrorType readMetadataInfo(const BinaryHeader &hdr, PlatformInputStream &s, DefinitionImpl *def); - - // Read array of arbitrary type (slow version) - Serializer::ErrorType readArraySlow(Handle &handle, PlatformInputStream &s); - - // Read NvParameterized object data - Serializer::ErrorType readObject(NvParameterized::Interface *&obj, PlatformInputStream &data); - - // Read binary data of NvParameterized object addressed by handle - Serializer::ErrorType readBinaryData(Handle &handle, PlatformInputStream &data); - -#ifndef WITHOUT_APEX_SERIALIZATION - Serializer::ErrorType storeMetadataInfo(const Definition *def, PlatformOutputStream &s); - - // Store array of arbitrary type (slow version) - Serializer::ErrorType storeArraySlow(Handle &handle, PlatformOutputStream &s); - - // Print binary data for part of NvParameterized object addressed by handle - Serializer::ErrorType storeBinaryData(const NvParameterized::Interface &obj, Handle &handle, PlatformOutputStream &res, bool isRootObject = true); -#endif - - BinSerializer(BinSerializer &); // Don't - void operator=(BinSerializer &); // Don't - - Serializer::ErrorType verifyFileHeader( - const BinaryHeader &hdr, - const BinaryHeaderExt *ext, - uint32_t dataLen ) const; - - Serializer::ErrorType getPlatformInfo( - BinaryHeader &hdr, - BinaryHeaderExt *ext, - PlatformABI &abi ) const; - - Serializer::ErrorType verifyObjectHeader(const ObjHeader &hdr, const Interface *obj, Traits *traits) const; - -protected: - - Serializer::ErrorType internalDeserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &res, bool &doesNeedUpdate); - Serializer::ErrorType internalDeserializeInplace(void *mdata, uint32_t dataLen, Serializer::DeserializedData &res, bool &doesNeedUpdate); - -#ifndef WITHOUT_APEX_SERIALIZATION - Serializer::ErrorType internalSerialize(physx::PxFileBuf &stream,const NvParameterized::Interface **objs, uint32_t nobjs, bool doMetadata); -#endif - -public: - BinSerializer(Traits *traits): AbstractSerializer(traits) {} - - void release() - { - Traits *t = mTraits; - this->~BinSerializer(); - serializerMemFree(this, t); - } - - static const uint32_t Magic = APB_MAGIC; - static const uint32_t Version = BinVersions::WithExtendedHeader; - - Serializer::ErrorType peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects); - - Serializer::ErrorType peekNumObjectsInplace(const void *data, uint32_t dataLen, uint32_t &numObjects); - - Serializer::ErrorType peekClassNames(physx::PxFileBuf &stream, char **classNames, uint32_t &numClassNames); - - Serializer::ErrorType peekInplaceAlignment(physx::PxFileBuf& stream, uint32_t& align); - - Serializer::ErrorType deserializeMetadata(physx::PxFileBuf &stream, DeserializedMetadata &desData); -}; - -bool isBinaryFormat(physx::PxFileBuf &stream); - -Serializer::ErrorType peekBinaryPlatform(physx::PxFileBuf &stream, SerializePlatform &platform); - -} // namespace NvParameterized - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_BIN_SERIALIZER_H +#define PX_BIN_SERIALIZER_H + +// APB serializer + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvSerializer.h" + +#include "AbstractSerializer.h" + +#include "ApbDefinitions.h" + +namespace NvParameterized +{ + +class DefinitionImpl; +class PlatformInputStream; +class PlatformOutputStream; +struct PlatformABI; + +class BinSerializer : public AbstractSerializer +{ + // Methods for updating legacy formats + Serializer::ErrorType updateInitial2AllCounted(BinaryHeader &hdr, char *start); + Serializer::ErrorType updateAllCounted2WithAlignment(BinaryHeader &hdr, char *start); + + Serializer::ErrorType readMetadataInfo(const BinaryHeader &hdr, PlatformInputStream &s, DefinitionImpl *def); + + // Read array of arbitrary type (slow version) + Serializer::ErrorType readArraySlow(Handle &handle, PlatformInputStream &s); + + // Read NvParameterized object data + Serializer::ErrorType readObject(NvParameterized::Interface *&obj, PlatformInputStream &data); + + // Read binary data of NvParameterized object addressed by handle + Serializer::ErrorType readBinaryData(Handle &handle, PlatformInputStream &data); + +#ifndef WITHOUT_APEX_SERIALIZATION + Serializer::ErrorType storeMetadataInfo(const Definition *def, PlatformOutputStream &s); + + // Store array of arbitrary type (slow version) + Serializer::ErrorType storeArraySlow(Handle &handle, PlatformOutputStream &s); + + // Print binary data for part of NvParameterized object addressed by handle + Serializer::ErrorType storeBinaryData(const NvParameterized::Interface &obj, Handle &handle, PlatformOutputStream &res, bool isRootObject = true); +#endif + + BinSerializer(BinSerializer &); // Don't + void operator=(BinSerializer &); // Don't + + Serializer::ErrorType verifyFileHeader( + const BinaryHeader &hdr, + const BinaryHeaderExt *ext, + uint32_t dataLen ) const; + + Serializer::ErrorType getPlatformInfo( + BinaryHeader &hdr, + BinaryHeaderExt *ext, + PlatformABI &abi ) const; + + Serializer::ErrorType verifyObjectHeader(const ObjHeader &hdr, const Interface *obj, Traits *traits) const; + +protected: + + Serializer::ErrorType internalDeserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &res, bool &doesNeedUpdate); + Serializer::ErrorType internalDeserializeInplace(void *mdata, uint32_t dataLen, Serializer::DeserializedData &res, bool &doesNeedUpdate); + +#ifndef WITHOUT_APEX_SERIALIZATION + Serializer::ErrorType internalSerialize(physx::PxFileBuf &stream,const NvParameterized::Interface **objs, uint32_t nobjs, bool doMetadata); +#endif + +public: + BinSerializer(Traits *traits): AbstractSerializer(traits) {} + + void release() + { + Traits *t = mTraits; + this->~BinSerializer(); + serializerMemFree(this, t); + } + + static const uint32_t Magic = APB_MAGIC; + static const uint32_t Version = BinVersions::WithExtendedHeader; + + Serializer::ErrorType peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects); + + Serializer::ErrorType peekNumObjectsInplace(const void *data, uint32_t dataLen, uint32_t &numObjects); + + Serializer::ErrorType peekClassNames(physx::PxFileBuf &stream, char **classNames, uint32_t &numClassNames); + + Serializer::ErrorType peekInplaceAlignment(physx::PxFileBuf& stream, uint32_t& align); + + Serializer::ErrorType deserializeMetadata(physx::PxFileBuf &stream, DeserializedMetadata &desData); +}; + +bool isBinaryFormat(physx::PxFileBuf &stream); + +Serializer::ErrorType peekBinaryPlatform(physx::PxFileBuf &stream, SerializePlatform &platform); + +} // namespace NvParameterized + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/BinaryHelper.h b/sdk/extensions/import/apexmodules/NvParameterized/include/BinaryHelper.h old mode 100644 new mode 100755 index 15e5638..5d9e9d8 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/BinaryHelper.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/BinaryHelper.h @@ -1,290 +1,290 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_SERIALIZE_BINARY_HELPER_H -#define PX_SERIALIZE_BINARY_HELPER_H - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "PxAssert.h" - -#include - -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" - -namespace NvParameterized -{ - -template static PX_INLINE T NvMax3(T x, T y, T z) -{ - return physx::PxMax(x, physx::PxMax(y, z)); -} - -#ifndef offsetof -# define offsetof(StructType, field) reinterpret_cast(&((StructType *)0)->field) -#endif - -// Alignment calculator -template class GetAlignment { - struct TestStruct { - char _; - T x; - }; - -public: - static const size_t value = offsetof(struct TestStruct, x); -}; - -// Maps C type to NvParameterized::DataType -template struct GetDataType { - static const DataType value = NvParameterized::TYPE_UNDEFINED; -}; - -// Currently we only need to distinguish PxVec2 from other 64-bit stuff -// (like uint64_t, int64_t, double, pointer) in SwapBytes - -template<> struct GetDataType { - static const DataType value = NvParameterized::TYPE_VEC2; -}; - -//Copied from NvApexStream -PX_INLINE static bool IsBigEndian() -{ - uint32_t i = 1; - return 0 == *(char *)&i; -} - -PX_INLINE static void SwapBytes(char *data, uint32_t size, NvParameterized::DataType type) -{ - // XDK compiler does not like switch here - if( 1 == size ) - { - // Do nothing - } - else if( 2 == size ) - { - char one_byte; - one_byte = data[0]; data[0] = data[1]; data[1] = one_byte; - } - else if( 4 == size ) - { - char one_byte; - one_byte = data[0]; data[0] = data[3]; data[3] = one_byte; - one_byte = data[1]; data[1] = data[2]; data[2] = one_byte; - } - else if( 8 == size ) - { - //Handling of PxVec2 agregate is different from 64-bit atomic types - if( TYPE_VEC2 == type ) - { - //PxVec2 => swap each field separately - SwapBytes(data + 0, 4, TYPE_F32); - SwapBytes(data + 4, 4, TYPE_F32); - } - else - { - char one_byte; - one_byte = data[0]; data[0] = data[7]; data[7] = one_byte; - one_byte = data[1]; data[1] = data[6]; data[6] = one_byte; - one_byte = data[2]; data[2] = data[5]; data[5] = one_byte; - one_byte = data[3]; data[3] = data[4]; data[4] = one_byte; - } - } - else - { - //Generic algorithm for containers of float - - const size_t elemSize = sizeof(float); //We assume that float sizes match on both platforms - PX_ASSERT( elemSize >= GetAlignment::value ); //If alignment is non-trivial below algorithm will not work - PX_ASSERT( size > elemSize ); - - //Just swap all PxReals - for(size_t i = 0; i < size; i += elemSize) - SwapBytes(data + i, elemSize, TYPE_F32); - } -} - -//Convert value to platform-independent format (network byte order) -template PX_INLINE static T Canonize(T x) -{ - if( !IsBigEndian() ) - SwapBytes((char *)&x, sizeof(T), GetDataType::value); - - return x; -} - -//Convert value to native format (from network byte order) -template PX_INLINE static T Decanonize(T x) -{ - return Canonize(x); -} - -//Read platform-independent value from stream and convert it to native format -template static PX_INLINE T readAndConvert(const char *&p) -{ - T val; - memcpy((char *)&val, p, sizeof(T)); - val = Decanonize(val); - p += sizeof(T); - - return val; -} - -//Byte array used for data serialization -//TODO: replace this with Array? -class StringBuf -{ - Traits *mTraits; - char *mData; - uint32_t mSize, mCapacity; - - PX_INLINE void internalAppend(const char *data, uint32_t size, bool doCopy = true) - { - if( 0 == size ) - return; - - if( mCapacity < mSize + size ) - reserve(physx::PxMax(mSize + size, 3 * mCapacity / 2)); - - if( doCopy ) - memcpy(mData + mSize, data, size); - else - memset(mData + mSize, 0, size); //We want padding bytes filled with 0 - - mSize += size; - } - -public: - - PX_INLINE StringBuf(Traits *traits) - : mTraits(traits), mData(0), mSize(0), mCapacity(0) - {} - - PX_INLINE StringBuf(const StringBuf &s) - : mTraits(s.mTraits), mSize(s.mSize), mCapacity(s.mSize) - { - mData = (char *)mTraits->alloc(mSize); - memcpy(mData, s.mData, mSize); - } - - PX_INLINE ~StringBuf() { mTraits->free((void *)mData); } - - PX_INLINE void reserve(uint32_t newCapacity) - { - if( mCapacity >= newCapacity ) - return; - - char *newData = (char *)mTraits->alloc(newCapacity); - PX_ASSERT(newData); - - if( mData ) - { - memcpy(newData, mData, mSize); - mTraits->free(mData); - } - - mData = newData; - mCapacity = newCapacity; - } - - PX_INLINE char *getBuffer() - { - char *data = mData; - - mSize = mCapacity = 0; - mData = 0; - - return data; - } - - PX_INLINE uint32_t size() const { return mSize; } - - template< typename T > PX_INLINE void append(T x) - { - internalAppend((char *)&x, sizeof(T)); - } - - template< typename T > PX_INLINE void append(T *x) - { - PX_UNUSED(x); - PX_ASSERT(0 && "Unable to append pointer"); - } - - PX_INLINE void appendBytes(const char *data, uint32_t size) { internalAppend(data, size); } - - PX_INLINE void skipBytes(uint32_t size) { internalAppend(0, size, false); } - - PX_INLINE char &operator [](uint32_t i) - { - PX_ASSERT( i < mSize ); - return mData[i]; - } - - PX_INLINE operator char *() { return mData; } - - PX_INLINE operator const char *() const { return mData; } -}; - -//Dictionary of strings used for binary serialization -class Dictionary -{ - struct Entry - { - const char *s; - uint32_t offset; - }; - - physx::shdfnd::Array entries; //TODO: use hash map after DE402 is fixed - -public: - Dictionary(Traits *traits_): entries(Traits::Allocator(traits_)) {} - - uint32_t put(const char *s); - - void setOffset(const char *s, uint32_t off); - - PX_INLINE void setOffset(uint32_t i, uint32_t off) { setOffset(get(i), off); } - - uint32_t getOffset(const char *s) const; - - uint32_t getOffset(uint32_t i) const { return getOffset(get(i)); } - - const char *get(uint32_t i) const { return entries[i].s; } - - PX_INLINE uint32_t size() const { return entries.size(); } - - void serialize(StringBuf &res) const; -}; - -//Binary file pretty-printer (mimics xxd) -void dumpBytes(const char *data, uint32_t nbytes); - -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_SERIALIZE_BINARY_HELPER_H +#define PX_SERIALIZE_BINARY_HELPER_H + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "PxAssert.h" + +#include + +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" + +namespace NvParameterized +{ + +template static PX_INLINE T NvMax3(T x, T y, T z) +{ + return physx::PxMax(x, physx::PxMax(y, z)); +} + +#ifndef offsetof +# define offsetof(StructType, field) reinterpret_cast(&((StructType *)0)->field) +#endif + +// Alignment calculator +template class GetAlignment { + struct TestStruct { + char _; + T x; + }; + +public: + static const size_t value = offsetof(struct TestStruct, x); +}; + +// Maps C type to NvParameterized::DataType +template struct GetDataType { + static const DataType value = NvParameterized::TYPE_UNDEFINED; +}; + +// Currently we only need to distinguish PxVec2 from other 64-bit stuff +// (like uint64_t, int64_t, double, pointer) in SwapBytes + +template<> struct GetDataType { + static const DataType value = NvParameterized::TYPE_VEC2; +}; + +//Copied from NvApexStream +PX_INLINE static bool IsBigEndian() +{ + uint32_t i = 1; + return 0 == *(char *)&i; +} + +PX_INLINE static void SwapBytes(char *data, uint32_t size, NvParameterized::DataType type) +{ + // XDK compiler does not like switch here + if( 1 == size ) + { + // Do nothing + } + else if( 2 == size ) + { + char one_byte; + one_byte = data[0]; data[0] = data[1]; data[1] = one_byte; + } + else if( 4 == size ) + { + char one_byte; + one_byte = data[0]; data[0] = data[3]; data[3] = one_byte; + one_byte = data[1]; data[1] = data[2]; data[2] = one_byte; + } + else if( 8 == size ) + { + //Handling of PxVec2 agregate is different from 64-bit atomic types + if( TYPE_VEC2 == type ) + { + //PxVec2 => swap each field separately + SwapBytes(data + 0, 4, TYPE_F32); + SwapBytes(data + 4, 4, TYPE_F32); + } + else + { + char one_byte; + one_byte = data[0]; data[0] = data[7]; data[7] = one_byte; + one_byte = data[1]; data[1] = data[6]; data[6] = one_byte; + one_byte = data[2]; data[2] = data[5]; data[5] = one_byte; + one_byte = data[3]; data[3] = data[4]; data[4] = one_byte; + } + } + else + { + //Generic algorithm for containers of float + + const size_t elemSize = sizeof(float); //We assume that float sizes match on both platforms + PX_ASSERT( elemSize >= GetAlignment::value ); //If alignment is non-trivial below algorithm will not work + PX_ASSERT( size > elemSize ); + + //Just swap all PxReals + for(size_t i = 0; i < size; i += elemSize) + SwapBytes(data + i, elemSize, TYPE_F32); + } +} + +//Convert value to platform-independent format (network byte order) +template PX_INLINE static T Canonize(T x) +{ + if( !IsBigEndian() ) + SwapBytes((char *)&x, sizeof(T), GetDataType::value); + + return x; +} + +//Convert value to native format (from network byte order) +template PX_INLINE static T Decanonize(T x) +{ + return Canonize(x); +} + +//Read platform-independent value from stream and convert it to native format +template static PX_INLINE T readAndConvert(const char *&p) +{ + T val; + memcpy((char *)&val, p, sizeof(T)); + val = Decanonize(val); + p += sizeof(T); + + return val; +} + +//Byte array used for data serialization +//TODO: replace this with Array? +class StringBuf +{ + Traits *mTraits; + char *mData; + uint32_t mSize, mCapacity; + + PX_INLINE void internalAppend(const char *data, uint32_t size, bool doCopy = true) + { + if( 0 == size ) + return; + + if( mCapacity < mSize + size ) + reserve(physx::PxMax(mSize + size, 3 * mCapacity / 2)); + + if( doCopy ) + memcpy(mData + mSize, data, size); + else + memset(mData + mSize, 0, size); //We want padding bytes filled with 0 + + mSize += size; + } + +public: + + PX_INLINE StringBuf(Traits *traits) + : mTraits(traits), mData(0), mSize(0), mCapacity(0) + {} + + PX_INLINE StringBuf(const StringBuf &s) + : mTraits(s.mTraits), mSize(s.mSize), mCapacity(s.mSize) + { + mData = (char *)mTraits->alloc(mSize); + memcpy(mData, s.mData, mSize); + } + + PX_INLINE ~StringBuf() { mTraits->free((void *)mData); } + + PX_INLINE void reserve(uint32_t newCapacity) + { + if( mCapacity >= newCapacity ) + return; + + char *newData = (char *)mTraits->alloc(newCapacity); + PX_ASSERT(newData); + + if( mData ) + { + memcpy(newData, mData, mSize); + mTraits->free(mData); + } + + mData = newData; + mCapacity = newCapacity; + } + + PX_INLINE char *getBuffer() + { + char *data = mData; + + mSize = mCapacity = 0; + mData = 0; + + return data; + } + + PX_INLINE uint32_t size() const { return mSize; } + + template< typename T > PX_INLINE void append(T x) + { + internalAppend((char *)&x, sizeof(T)); + } + + template< typename T > PX_INLINE void append(T *x) + { + PX_UNUSED(x); + PX_ASSERT(0 && "Unable to append pointer"); + } + + PX_INLINE void appendBytes(const char *data, uint32_t size) { internalAppend(data, size); } + + PX_INLINE void skipBytes(uint32_t size) { internalAppend(0, size, false); } + + PX_INLINE char &operator [](uint32_t i) + { + PX_ASSERT( i < mSize ); + return mData[i]; + } + + PX_INLINE operator char *() { return mData; } + + PX_INLINE operator const char *() const { return mData; } +}; + +//Dictionary of strings used for binary serialization +class Dictionary +{ + struct Entry + { + const char *s; + uint32_t offset; + }; + + physx::shdfnd::Array entries; //TODO: use hash map after DE402 is fixed + +public: + Dictionary(Traits *traits_): entries(Traits::Allocator(traits_)) {} + + uint32_t put(const char *s); + + void setOffset(const char *s, uint32_t off); + + PX_INLINE void setOffset(uint32_t i, uint32_t off) { setOffset(get(i), off); } + + uint32_t getOffset(const char *s) const; + + uint32_t getOffset(uint32_t i) const { return getOffset(get(i)); } + + const char *get(uint32_t i) const { return entries[i].s; } + + PX_INLINE uint32_t size() const { return entries.size(); } + + void serialize(StringBuf &res) const; +}; + +//Binary file pretty-printer (mimics xxd) +void dumpBytes(const char *data, uint32_t nbytes); + +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/NvDefaultTraits.h b/sdk/extensions/import/apexmodules/NvParameterized/include/NvDefaultTraits.h old mode 100644 new mode 100755 index ed70ed1..0712303 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/NvDefaultTraits.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/NvDefaultTraits.h @@ -1,503 +1,503 @@ -#ifndef PX_MODULE_DEFAULT_TRAITS_H -#define PX_MODULE_DEFAULT_TRAITS_H - -// overload new and delete operators -#include "PsAllocator.h" - -// NxParameterized headers -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PxAssert.h" -#include "PxErrorCallback.h" - -// NsFoundation and NvFoundation -#include "PsArray.h" -#include "PsAlignedMalloc.h" -#include "PxFoundation.h" - -// system -#include -#include - -namespace NvParameterized -{ - class DefaultTraits : public NvParameterized::Traits - { - public: - struct BehaviourFlags - { - enum Enum - { - CLEAN_FACTORIES = 0x1 << 0, ///< DefaultTraits is responsible destruct factories - CLEAN_CONVERTES = 0x1 << 1, ///< DefaultTraits is responsible destruct converters - COLLECT_ALLOCATE_OBJECTS = 0x1 << 2, ///< Collect allocated NvParameterized::Interface objects for profiling - WARN_IF_CONVERSION_HAPPENED = 0x1 << 3, ///< Emit warning if conversion happened - - - DEFAULT_POLICY = CLEAN_FACTORIES | CLEAN_CONVERTES, - }; - }; - - protected: - struct ConversionInfo - { - ConversionInfo(::NvParameterized::Conversion* theConv = 0, - const char * theClassName = 0, - uint32_t theFrom = 0, - uint32_t theTo = 0) - : conv(theConv) - , className(theClassName) - , from(theFrom) - , to(theTo) - {} - - ::NvParameterized::Conversion* conv; - const char * className; - uint32_t from; - uint32_t to; - - bool operator == (const ConversionInfo& rhs) - { - // ignore "conv" field - return from == rhs.from && to == rhs.to && strcmp(className, rhs.className) == 0; - } - }; - - physx::shdfnd::Array factories; - physx::shdfnd::Array objects; - physx::shdfnd::Array converters; - - template - static T removeAndReturn(physx::shdfnd::Array& ctr, uint32_t index) - { - T res = ctr[index]; - ctr.remove(index); - return res; - } - - bool findLastFactoryIndexByClassName(uint32_t& index, const char* className) const { - if (!className) - return false; - index = 0; - bool findSomeFactory = false; - for (uint32_t i = 0; i < factories.size(); ++i) { - if (const char* factoryClassName = factories[i]->getClassName()) - { - if (strcmp(factoryClassName, className) == 0) { - if (!findSomeFactory || factories[i]->getVersion() > factories[index]->getVersion()) - index = i; - findSomeFactory = true; - } - } - } - return findSomeFactory; - } - - bool findFactoryIndexByClassNameAndVersion(uint32_t& index, const char* className, uint32_t version) const - { - if (!className) - return false; - - for (uint32_t i = 0; i < factories.size(); ++i) { - if (const char* factoryClassName = factories[i]->getClassName()) - { - if (strcmp(factoryClassName, className) == 0 && factories[i]->getVersion() == version) - { - index = i; - return true; - } - } - } - return false; - } - - void unregisterAllFactories() - { - if ((behaviourPolicy & BehaviourFlags::CLEAN_FACTORIES) == 0) - return; - - for (uint32_t i = 0; i < factories.size(); ++i) - { - factories[i]->freeParameterDefinitionTable(this); - delete factories[i]; - } - factories.clear(); - } - - void unregisterAllConverters() - { - if ((behaviourPolicy & BehaviourFlags::CLEAN_CONVERTES) == 0) - return; - - for (uint32_t i = 0; i < converters.size(); ++i) - { - converters[i].conv->release(); - converters[i].conv = 0; - } - converters.clear(); - } - - protected: - uint32_t behaviourPolicy; - - public: - - DefaultTraits(uint32_t behaviourFlags) - : behaviourPolicy(behaviourFlags) - { - } - - virtual ~DefaultTraits() - { - PX_ASSERT(objects.size() == 0); - unregisterAllFactories(); - unregisterAllConverters(); - } - - virtual void registerFactory(::NvParameterized::Factory& factory) - { - if (!doesFactoryExist(factory.getClassName(), factory.getVersion())) - { - factories.pushBack(&factory); - } - else - { - PX_ASSERT_WITH_MESSAGE(0, "Factory has already exist"); - } - } - - virtual ::NvParameterized::Factory *removeFactory(const char * className) - { - uint32_t index = 0; - if (!findLastFactoryIndexByClassName(index, className)) - return NULL; - - ::NvParameterized::Factory* res = removeAndReturn(factories, index); - return res; - } - - virtual ::NvParameterized::Factory *removeFactory(const char * className, uint32_t version) - { - uint32_t index = 0; - if (!findFactoryIndexByClassNameAndVersion(index, className, version)) - return NULL; - - ::NvParameterized::Factory* res = removeAndReturn(factories, index); - return res; - } - - virtual bool doesFactoryExist(const char* className) - { - uint32_t index = 0; - return findLastFactoryIndexByClassName(index, className); - } - - virtual bool doesFactoryExist(const char* className, uint32_t version) - { - uint32_t index = 0; - return findFactoryIndexByClassNameAndVersion(index, className, version); - } - - virtual ::NvParameterized::Interface* createNvParameterized(const char * name) - { - uint32_t index = 0; - if (findLastFactoryIndexByClassName(index, name)) - { - ::NvParameterized::Interface* result = factories[index]->create(this); - if (behaviourPolicy & BehaviourFlags::COLLECT_ALLOCATE_OBJECTS) - { - objects.pushBack(result); - } - return result; - } - return NULL; - } - - virtual ::NvParameterized::Interface * createNvParameterized(const char * name, uint32_t ver) - { - uint32_t index = 0; - if (!findFactoryIndexByClassNameAndVersion(index, name, ver)) - return NULL; - ::NvParameterized::Interface* result = factories[index]->create(this); - - if (behaviourPolicy & BehaviourFlags::COLLECT_ALLOCATE_OBJECTS) - { - objects.pushBack(result); - } - return result; - } - - virtual ::NvParameterized::Interface * finishNvParameterized(const char * name, void *obj, void *buf, int32_t *refCount) - { - uint32_t index = 0; - if (!findLastFactoryIndexByClassName(index, name)) - return 0; - return factories[index]->finish(this, obj, buf, refCount); - } - - virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, uint32_t ver, void *obj, void *buf, int32_t *refCount ) - { - uint32_t index = 0; - if (!findFactoryIndexByClassNameAndVersion(index, name, ver)) - return 0; - return factories[index]->finish(this, obj, buf, refCount); - } - - virtual uint32_t getCurrentVersion(const char *className) const { - uint32_t index = 0; - if (!findLastFactoryIndexByClassName(index, className)) - return 0; - return factories[index]->getVersion(); - } - - virtual uint32_t getAlignment(const char *className, uint32_t classVersion) const - { - uint32_t index = 0; - if (!findFactoryIndexByClassNameAndVersion(index, className, classVersion)) - return uint32_t(1); - return factories[index]->getAlignment(); - } - - virtual bool getNvParameterizedNames( const char ** names, uint32_t &outCount, uint32_t inCount) const - { - uint32_t currentOutSize = 0; - outCount = 0; - for (uint32_t i = 0; i < factories.size(); ++i) - { - const char* curClassName = factories[i]->getClassName(); - bool foundClassName = false; - for (uint32_t j = 0; j < currentOutSize; ++j) { - if (strcmp(names[j], curClassName) == 0) - { - foundClassName = true; - break; - } - } - - if (foundClassName) - continue; - - if (outCount < inCount) - names[currentOutSize++] = factories[i]->getClassName(); - - outCount++; - } - - return outCount <= inCount; - } - - virtual bool getNvParameterizedVersions(const char* className, uint32_t* versions, uint32_t &outCount, uint32_t inCount) const - { - outCount = 0; - for (uint32_t i = 0; i < factories.size(); ++i) { - if (strcmp(factories[i]->getClassName(), className) == 0) - { - if (outCount < inCount) - versions[outCount] = factories[i]->getVersion(); - outCount++; - } - } - return outCount <= inCount; - } - - - virtual void registerConversion(const char * className, uint32_t from, uint32_t to, ::NvParameterized::Conversion & conv) - { - ConversionInfo convInfo(&conv, className, from, to); - for (uint32_t i = 0; i < converters.size(); ++i) - { - if (converters[i] == convInfo) - { - PX_ASSERT_WITH_MESSAGE(false, "Conversion has already been registered"); - return; - } - } - converters.pushBack(convInfo); - } - - virtual ::NvParameterized::Conversion *removeConversion(const char * className, uint32_t from, uint32_t to) - { - ConversionInfo convInfo(NULL, className, from, to); - for (uint32_t i = 0; i < converters.size(); ++i) { - if (converters[i] == convInfo) - return removeAndReturn(converters, i).conv; - } - return NULL; - } - - virtual bool updateLegacyNvParameterized(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) - { - // updateLegacyNvParameterized should not destroy legacyObj and obj. The code before this stackframe was responsible for it - if (legacyObj.version() > obj.version()) - { - PX_ASSERT_WITH_MESSAGE(false, "Downgrade is not permited"); - return false; - } - - if (legacyObj.version() == obj.version()) - { - PX_ASSERT_WITH_MESSAGE(false, "Object to upgrade already up to date version"); - return false; - } - - const char* legacyClassName = legacyObj.className(); - const char* newClassName = obj.className(); - if (!legacyClassName || !newClassName) - { - PX_ASSERT_WITH_MESSAGE(false, "updateLegacyNvParameterized get empty class names"); - } - - ::NvParameterized::Interface* prevObj = &legacyObj; - ::NvParameterized::Interface* nextObj = NULL; - bool res = true; - - for (;prevObj->version() != obj.version() && res;) - { - // TODO: Here is the problem: - // We store our version in 32 bits - higher 16 bits store major version, lower 16 bits store minor version. - // If we agree on the fact that there are only 10 minor version (0-9) within one 1 major version, then this code should behave correctly - // otherwise there will be problems - const uint32_t version = prevObj->version(); - uint32_t nextVersion = 0; - if ((version & 0xFFFF) == 9) - { - nextVersion = (((version & 0xFFFF0000) >> 16) + 1) << 16; - } - else - { - nextVersion = version + 1; - } - bool findConverter = false; - - for (uint32_t i = 0; i < converters.size(); ++i) - { - if (strcmp(converters[i].className, legacyObj.className()) == 0 && converters[i].from == version) - { - if (converters[i].to == nextVersion || converters[i].to == version + 1) - { - if (converters[i].to == version + 1) - { - nextVersion = version + 1; - } - findConverter = true; - - if (nextVersion == obj.version()) - nextObj = &obj; - else - nextObj = createNvParameterized(legacyObj.className(), nextVersion); - - if (behaviourPolicy & BehaviourFlags::WARN_IF_CONVERSION_HAPPENED) - { - char buff[512] = {0}; - sprintf(buff, "Conversion %s,%i=>%i", legacyObj.className(), int(version), int(nextVersion)); - traitsWarn(buff); - } - - if (!(*converters[i].conv)(*prevObj, *nextObj)) - { - res = false; - break;; - } - - if (prevObj != &legacyObj && prevObj != &obj) - { - prevObj->destroy(); - } - prevObj = nextObj; - nextObj = NULL; - } - } - } - - if (!findConverter) - { - char buff[512] = {0}; - sprintf(buff, "Needed conversion routine doesn't exist %s,%i=>%i !", legacyObj.className(), int(version), int(nextVersion)); - PX_ASSERT_WITH_MESSAGE(false, buff); - - break; - } - } - - if (prevObj && prevObj != &legacyObj && prevObj != &obj) - prevObj->destroy(); - - if (nextObj && nextObj != &legacyObj && nextObj != &obj) - nextObj->destroy(); - - PX_ASSERT_WITH_MESSAGE(res, "Failed to upgrade NvParameterized::Interface"); - - return res; - } - - virtual int32_t incRefCount(int32_t *refCount) - { - (*refCount)++; - return *refCount; - } - - virtual int32_t decRefCount(int32_t *refCount) - { - (*refCount)--; - return *refCount; - } - - virtual void *alloc(uint32_t nbytes) - { - return alloc(nbytes, 16); - } - - virtual void *alloc(uint32_t nbytes, uint32_t align) - { - if (align <= 16) - { - return physx::shdfnd::AlignedAllocator<16>().allocate(nbytes, __FILE__, __LINE__); - } - else - { - switch (align){ - case 32: - return physx::shdfnd::AlignedAllocator<32>().allocate(nbytes, __FILE__, __LINE__); - case 64: - return physx::shdfnd::AlignedAllocator<64>().allocate(nbytes, __FILE__, __LINE__); - case 128: - return physx::shdfnd::AlignedAllocator<128>().allocate(nbytes, __FILE__, __LINE__); - default: - PX_ASSERT_WITH_MESSAGE(false, "Unsupported alignment"); - return 0; - } - } - } - - virtual void free(void *buf) - { - physx::shdfnd::AlignedAllocator<16>().deallocate(buf); - - if (behaviourPolicy & BehaviourFlags::COLLECT_ALLOCATE_OBJECTS) - { - // Try to find in objects - for (uint32_t i = 0; i < objects.size(); ++i) - { - if (objects[i] == reinterpret_cast(buf)) - { - - objects.remove(i); - break; - } - } - } - } - - virtual void traitsWarn(const char * msg) const - { - PxGetFoundation().getErrorCallback().reportError(physx::PxErrorCode::eDEBUG_WARNING, msg, __FILE__, __LINE__); - } - - virtual void release(void) - { - delete this; - } - }; -} - -#endif +#ifndef PX_MODULE_DEFAULT_TRAITS_H +#define PX_MODULE_DEFAULT_TRAITS_H + +// overload new and delete operators +#include "PsAllocator.h" + +// NxParameterized headers +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PxAssert.h" +#include "PxErrorCallback.h" + +// NsFoundation and NvFoundation +#include "PsArray.h" +#include "PsAlignedMalloc.h" +#include "PxFoundation.h" + +// system +#include +#include + +namespace NvParameterized +{ + class DefaultTraits : public NvParameterized::Traits + { + public: + struct BehaviourFlags + { + enum Enum + { + CLEAN_FACTORIES = 0x1 << 0, ///< DefaultTraits is responsible destruct factories + CLEAN_CONVERTES = 0x1 << 1, ///< DefaultTraits is responsible destruct converters + COLLECT_ALLOCATE_OBJECTS = 0x1 << 2, ///< Collect allocated NvParameterized::Interface objects for profiling + WARN_IF_CONVERSION_HAPPENED = 0x1 << 3, ///< Emit warning if conversion happened + + + DEFAULT_POLICY = CLEAN_FACTORIES | CLEAN_CONVERTES, + }; + }; + + protected: + struct ConversionInfo + { + ConversionInfo(::NvParameterized::Conversion* theConv = 0, + const char * theClassName = 0, + uint32_t theFrom = 0, + uint32_t theTo = 0) + : conv(theConv) + , className(theClassName) + , from(theFrom) + , to(theTo) + {} + + ::NvParameterized::Conversion* conv; + const char * className; + uint32_t from; + uint32_t to; + + bool operator == (const ConversionInfo& rhs) + { + // ignore "conv" field + return from == rhs.from && to == rhs.to && strcmp(className, rhs.className) == 0; + } + }; + + physx::shdfnd::Array factories; + physx::shdfnd::Array objects; + physx::shdfnd::Array converters; + + template + static T removeAndReturn(physx::shdfnd::Array& ctr, uint32_t index) + { + T res = ctr[index]; + ctr.remove(index); + return res; + } + + bool findLastFactoryIndexByClassName(uint32_t& index, const char* className) const { + if (!className) + return false; + index = 0; + bool findSomeFactory = false; + for (uint32_t i = 0; i < factories.size(); ++i) { + if (const char* factoryClassName = factories[i]->getClassName()) + { + if (strcmp(factoryClassName, className) == 0) { + if (!findSomeFactory || factories[i]->getVersion() > factories[index]->getVersion()) + index = i; + findSomeFactory = true; + } + } + } + return findSomeFactory; + } + + bool findFactoryIndexByClassNameAndVersion(uint32_t& index, const char* className, uint32_t version) const + { + if (!className) + return false; + + for (uint32_t i = 0; i < factories.size(); ++i) { + if (const char* factoryClassName = factories[i]->getClassName()) + { + if (strcmp(factoryClassName, className) == 0 && factories[i]->getVersion() == version) + { + index = i; + return true; + } + } + } + return false; + } + + void unregisterAllFactories() + { + if ((behaviourPolicy & BehaviourFlags::CLEAN_FACTORIES) == 0) + return; + + for (uint32_t i = 0; i < factories.size(); ++i) + { + factories[i]->freeParameterDefinitionTable(this); + delete factories[i]; + } + factories.clear(); + } + + void unregisterAllConverters() + { + if ((behaviourPolicy & BehaviourFlags::CLEAN_CONVERTES) == 0) + return; + + for (uint32_t i = 0; i < converters.size(); ++i) + { + converters[i].conv->release(); + converters[i].conv = 0; + } + converters.clear(); + } + + protected: + uint32_t behaviourPolicy; + + public: + + DefaultTraits(uint32_t behaviourFlags) + : behaviourPolicy(behaviourFlags) + { + } + + virtual ~DefaultTraits() + { + PX_ASSERT(objects.size() == 0); + unregisterAllFactories(); + unregisterAllConverters(); + } + + virtual void registerFactory(::NvParameterized::Factory& factory) + { + if (!doesFactoryExist(factory.getClassName(), factory.getVersion())) + { + factories.pushBack(&factory); + } + else + { + PX_ASSERT_WITH_MESSAGE(0, "Factory has already exist"); + } + } + + virtual ::NvParameterized::Factory *removeFactory(const char * className) + { + uint32_t index = 0; + if (!findLastFactoryIndexByClassName(index, className)) + return NULL; + + ::NvParameterized::Factory* res = removeAndReturn(factories, index); + return res; + } + + virtual ::NvParameterized::Factory *removeFactory(const char * className, uint32_t version) + { + uint32_t index = 0; + if (!findFactoryIndexByClassNameAndVersion(index, className, version)) + return NULL; + + ::NvParameterized::Factory* res = removeAndReturn(factories, index); + return res; + } + + virtual bool doesFactoryExist(const char* className) + { + uint32_t index = 0; + return findLastFactoryIndexByClassName(index, className); + } + + virtual bool doesFactoryExist(const char* className, uint32_t version) + { + uint32_t index = 0; + return findFactoryIndexByClassNameAndVersion(index, className, version); + } + + virtual ::NvParameterized::Interface* createNvParameterized(const char * name) + { + uint32_t index = 0; + if (findLastFactoryIndexByClassName(index, name)) + { + ::NvParameterized::Interface* result = factories[index]->create(this); + if (behaviourPolicy & BehaviourFlags::COLLECT_ALLOCATE_OBJECTS) + { + objects.pushBack(result); + } + return result; + } + return NULL; + } + + virtual ::NvParameterized::Interface * createNvParameterized(const char * name, uint32_t ver) + { + uint32_t index = 0; + if (!findFactoryIndexByClassNameAndVersion(index, name, ver)) + return NULL; + ::NvParameterized::Interface* result = factories[index]->create(this); + + if (behaviourPolicy & BehaviourFlags::COLLECT_ALLOCATE_OBJECTS) + { + objects.pushBack(result); + } + return result; + } + + virtual ::NvParameterized::Interface * finishNvParameterized(const char * name, void *obj, void *buf, int32_t *refCount) + { + uint32_t index = 0; + if (!findLastFactoryIndexByClassName(index, name)) + return 0; + return factories[index]->finish(this, obj, buf, refCount); + } + + virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, uint32_t ver, void *obj, void *buf, int32_t *refCount ) + { + uint32_t index = 0; + if (!findFactoryIndexByClassNameAndVersion(index, name, ver)) + return 0; + return factories[index]->finish(this, obj, buf, refCount); + } + + virtual uint32_t getCurrentVersion(const char *className) const { + uint32_t index = 0; + if (!findLastFactoryIndexByClassName(index, className)) + return 0; + return factories[index]->getVersion(); + } + + virtual uint32_t getAlignment(const char *className, uint32_t classVersion) const + { + uint32_t index = 0; + if (!findFactoryIndexByClassNameAndVersion(index, className, classVersion)) + return uint32_t(1); + return factories[index]->getAlignment(); + } + + virtual bool getNvParameterizedNames( const char ** names, uint32_t &outCount, uint32_t inCount) const + { + uint32_t currentOutSize = 0; + outCount = 0; + for (uint32_t i = 0; i < factories.size(); ++i) + { + const char* curClassName = factories[i]->getClassName(); + bool foundClassName = false; + for (uint32_t j = 0; j < currentOutSize; ++j) { + if (strcmp(names[j], curClassName) == 0) + { + foundClassName = true; + break; + } + } + + if (foundClassName) + continue; + + if (outCount < inCount) + names[currentOutSize++] = factories[i]->getClassName(); + + outCount++; + } + + return outCount <= inCount; + } + + virtual bool getNvParameterizedVersions(const char* className, uint32_t* versions, uint32_t &outCount, uint32_t inCount) const + { + outCount = 0; + for (uint32_t i = 0; i < factories.size(); ++i) { + if (strcmp(factories[i]->getClassName(), className) == 0) + { + if (outCount < inCount) + versions[outCount] = factories[i]->getVersion(); + outCount++; + } + } + return outCount <= inCount; + } + + + virtual void registerConversion(const char * className, uint32_t from, uint32_t to, ::NvParameterized::Conversion & conv) + { + ConversionInfo convInfo(&conv, className, from, to); + for (uint32_t i = 0; i < converters.size(); ++i) + { + if (converters[i] == convInfo) + { + PX_ASSERT_WITH_MESSAGE(false, "Conversion has already been registered"); + return; + } + } + converters.pushBack(convInfo); + } + + virtual ::NvParameterized::Conversion *removeConversion(const char * className, uint32_t from, uint32_t to) + { + ConversionInfo convInfo(NULL, className, from, to); + for (uint32_t i = 0; i < converters.size(); ++i) { + if (converters[i] == convInfo) + return removeAndReturn(converters, i).conv; + } + return NULL; + } + + virtual bool updateLegacyNvParameterized(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) + { + // updateLegacyNvParameterized should not destroy legacyObj and obj. The code before this stackframe was responsible for it + if (legacyObj.version() > obj.version()) + { + PX_ASSERT_WITH_MESSAGE(false, "Downgrade is not permited"); + return false; + } + + if (legacyObj.version() == obj.version()) + { + PX_ASSERT_WITH_MESSAGE(false, "Object to upgrade already up to date version"); + return false; + } + + const char* legacyClassName = legacyObj.className(); + const char* newClassName = obj.className(); + if (!legacyClassName || !newClassName) + { + PX_ASSERT_WITH_MESSAGE(false, "updateLegacyNvParameterized get empty class names"); + } + + ::NvParameterized::Interface* prevObj = &legacyObj; + ::NvParameterized::Interface* nextObj = NULL; + bool res = true; + + for (;prevObj->version() != obj.version() && res;) + { + // TODO: Here is the problem: + // We store our version in 32 bits - higher 16 bits store major version, lower 16 bits store minor version. + // If we agree on the fact that there are only 10 minor version (0-9) within one 1 major version, then this code should behave correctly + // otherwise there will be problems + const uint32_t version = prevObj->version(); + uint32_t nextVersion = 0; + if ((version & 0xFFFF) == 9) + { + nextVersion = (((version & 0xFFFF0000) >> 16) + 1) << 16; + } + else + { + nextVersion = version + 1; + } + bool findConverter = false; + + for (uint32_t i = 0; i < converters.size(); ++i) + { + if (strcmp(converters[i].className, legacyObj.className()) == 0 && converters[i].from == version) + { + if (converters[i].to == nextVersion || converters[i].to == version + 1) + { + if (converters[i].to == version + 1) + { + nextVersion = version + 1; + } + findConverter = true; + + if (nextVersion == obj.version()) + nextObj = &obj; + else + nextObj = createNvParameterized(legacyObj.className(), nextVersion); + + if (behaviourPolicy & BehaviourFlags::WARN_IF_CONVERSION_HAPPENED) + { + char buff[512] = {0}; + sprintf(buff, "Conversion %s,%i=>%i", legacyObj.className(), int(version), int(nextVersion)); + traitsWarn(buff); + } + + if (!(*converters[i].conv)(*prevObj, *nextObj)) + { + res = false; + break;; + } + + if (prevObj != &legacyObj && prevObj != &obj) + { + prevObj->destroy(); + } + prevObj = nextObj; + nextObj = NULL; + } + } + } + + if (!findConverter) + { + char buff[512] = {0}; + sprintf(buff, "Needed conversion routine doesn't exist %s,%i=>%i !", legacyObj.className(), int(version), int(nextVersion)); + PX_ASSERT_WITH_MESSAGE(false, buff); + + break; + } + } + + if (prevObj && prevObj != &legacyObj && prevObj != &obj) + prevObj->destroy(); + + if (nextObj && nextObj != &legacyObj && nextObj != &obj) + nextObj->destroy(); + + PX_ASSERT_WITH_MESSAGE(res, "Failed to upgrade NvParameterized::Interface"); + + return res; + } + + virtual int32_t incRefCount(int32_t *refCount) + { + (*refCount)++; + return *refCount; + } + + virtual int32_t decRefCount(int32_t *refCount) + { + (*refCount)--; + return *refCount; + } + + virtual void *alloc(uint32_t nbytes) + { + return alloc(nbytes, 16); + } + + virtual void *alloc(uint32_t nbytes, uint32_t align) + { + if (align <= 16) + { + return physx::shdfnd::AlignedAllocator<16>().allocate(nbytes, __FILE__, __LINE__); + } + else + { + switch (align){ + case 32: + return physx::shdfnd::AlignedAllocator<32>().allocate(nbytes, __FILE__, __LINE__); + case 64: + return physx::shdfnd::AlignedAllocator<64>().allocate(nbytes, __FILE__, __LINE__); + case 128: + return physx::shdfnd::AlignedAllocator<128>().allocate(nbytes, __FILE__, __LINE__); + default: + PX_ASSERT_WITH_MESSAGE(false, "Unsupported alignment"); + return 0; + } + } + } + + virtual void free(void *buf) + { + physx::shdfnd::AlignedAllocator<16>().deallocate(buf); + + if (behaviourPolicy & BehaviourFlags::COLLECT_ALLOCATE_OBJECTS) + { + // Try to find in objects + for (uint32_t i = 0; i < objects.size(); ++i) + { + if (objects[i] == reinterpret_cast(buf)) + { + + objects.remove(i); + break; + } + } + } + } + + virtual void traitsWarn(const char * msg) const + { + PxGetFoundation().getErrorCallback().reportError(physx::PxErrorCode::eDEBUG_WARNING, msg, __FILE__, __LINE__); + } + + virtual void release(void) + { + delete this; + } + }; +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/NvParamConversionTemplate.h b/sdk/extensions/import/apexmodules/NvParameterized/include/NvParamConversionTemplate.h old mode 100644 new mode 100755 index 34331ba..4597398 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/NvParamConversionTemplate.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/NvParamConversionTemplate.h @@ -1,147 +1,147 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef NV_PARAMETERIZED_CONVERSION_TEMPLATE_H -#define NV_PARAMETERIZED_CONVERSION_TEMPLATE_H - -#include -#include - -namespace NvParameterized -{ -/** -\brief Class to handle all the redundant part of version upgrades. - -It verifies class names and versions, and it runs the default converter. The user may overload -convert(), getPreferredVersions() and release() methods. -*/ -template -class ParamConversionTemplate : public NvParameterized::Conversion -{ -public: - typedef Told TOldClass; - typedef Tnew TNewClass; - - bool operator()(NvParameterized::Interface& legacyObj, NvParameterized::Interface& obj) - { - if (!mDefaultConversion) - { - mDefaultConversion = NvParameterized::internalCreateDefaultConversion(mTraits, getPreferredVersions()); - } - - // verify class names - if (physx::shdfnd::strcmp(legacyObj.className(), Told::staticClassName()) != 0) - { - return false; - } - if (physx::shdfnd::strcmp(obj.className(), Tnew::staticClassName()) != 0) - { - return false; - } - - // verify version - if (legacyObj.version() != oldVersion) - { - return false; - } - if (obj.version() != newVersion) - { - return false; - } - - //Copy unchanged fields - if (!(*mDefaultConversion)(legacyObj, obj)) - { - return false; - } - - mLegacyData = static_cast(&legacyObj); - mNewData = static_cast(&obj); - - if (!convert()) - { - return false; - } - - NvParameterized::Handle invalidHandle(mNewData); - if (!mNewData->areParamsOK(&invalidHandle, 1)) - { - if (invalidHandle.isValid()) - { - char buf[256]; - physx::shdfnd::strlcpy(buf, 256, "First invalid item: "); - invalidHandle.getLongName(buf + strlen("First invalid item: "), 256UL - static_cast(strlen("First invalid item: "))); - mTraits->traitsWarn(buf); - } - return false; - } - - return true; - } - - /// User code, frees itself with the traits, and also calls destroy() on the ParamConversionTemplate object - virtual void release() - { - destroy(); - mTraits->free(this); - } - -protected: - ParamConversionTemplate(NvParameterized::Traits* traits) - : mTraits(traits), mDefaultConversion(0), mLegacyData(0), mNewData(0) - { - // Virtual method getPreferredVersions() can not be called in constructors - // so we defer construction of mDefaultConversion - } - - ~ParamConversionTemplate() - { - destroy(); - } - - /// User code, return list of preferred versions. - virtual const NvParameterized::PrefVer* getPreferredVersions() const - { - return 0; - } - - /// User code, return true if conversion is successful. - virtual bool convert() - { - return true; - } - - void destroy() - { - if (mDefaultConversion) - { - mDefaultConversion->release(); - } - } - - - NvParameterized::Traits* mTraits; - NvParameterized::Conversion* mDefaultConversion; - - Told* mLegacyData; - Tnew* mNewData; -}; -} - -// Force inclusion of files with initParamRef before we redefine it below -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParamUtils.h" -#include "NvParameters.h" -// Do not call initParamRef in converter - prefer Traits::createNvParameterized with explicit version -// (see wiki for more details) -#define initParamRef DO_NOT_USE_ME - -#endif // PARAM_CONVERSION_TEMPLATE_H +/* + * Copyright (c) 2008-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. + */ + + +#ifndef NV_PARAMETERIZED_CONVERSION_TEMPLATE_H +#define NV_PARAMETERIZED_CONVERSION_TEMPLATE_H + +#include +#include + +namespace NvParameterized +{ +/** +\brief Class to handle all the redundant part of version upgrades. + +It verifies class names and versions, and it runs the default converter. The user may overload +convert(), getPreferredVersions() and release() methods. +*/ +template +class ParamConversionTemplate : public NvParameterized::Conversion +{ +public: + typedef Told TOldClass; + typedef Tnew TNewClass; + + bool operator()(NvParameterized::Interface& legacyObj, NvParameterized::Interface& obj) + { + if (!mDefaultConversion) + { + mDefaultConversion = NvParameterized::internalCreateDefaultConversion(mTraits, getPreferredVersions()); + } + + // verify class names + if (physx::shdfnd::strcmp(legacyObj.className(), Told::staticClassName()) != 0) + { + return false; + } + if (physx::shdfnd::strcmp(obj.className(), Tnew::staticClassName()) != 0) + { + return false; + } + + // verify version + if (legacyObj.version() != oldVersion) + { + return false; + } + if (obj.version() != newVersion) + { + return false; + } + + //Copy unchanged fields + if (!(*mDefaultConversion)(legacyObj, obj)) + { + return false; + } + + mLegacyData = static_cast(&legacyObj); + mNewData = static_cast(&obj); + + if (!convert()) + { + return false; + } + + NvParameterized::Handle invalidHandle(mNewData); + if (!mNewData->areParamsOK(&invalidHandle, 1)) + { + if (invalidHandle.isValid()) + { + char buf[256]; + physx::shdfnd::strlcpy(buf, 256, "First invalid item: "); + invalidHandle.getLongName(buf + strlen("First invalid item: "), 256UL - static_cast(strlen("First invalid item: "))); + mTraits->traitsWarn(buf); + } + return false; + } + + return true; + } + + /// User code, frees itself with the traits, and also calls destroy() on the ParamConversionTemplate object + virtual void release() + { + destroy(); + mTraits->free(this); + } + +protected: + ParamConversionTemplate(NvParameterized::Traits* traits) + : mTraits(traits), mDefaultConversion(0), mLegacyData(0), mNewData(0) + { + // Virtual method getPreferredVersions() can not be called in constructors + // so we defer construction of mDefaultConversion + } + + ~ParamConversionTemplate() + { + destroy(); + } + + /// User code, return list of preferred versions. + virtual const NvParameterized::PrefVer* getPreferredVersions() const + { + return 0; + } + + /// User code, return true if conversion is successful. + virtual bool convert() + { + return true; + } + + void destroy() + { + if (mDefaultConversion) + { + mDefaultConversion->release(); + } + } + + + NvParameterized::Traits* mTraits; + NvParameterized::Conversion* mDefaultConversion; + + Told* mLegacyData; + Tnew* mNewData; +}; +} + +// Force inclusion of files with initParamRef before we redefine it below +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParamUtils.h" +#include "NvParameters.h" +// Do not call initParamRef in converter - prefer Traits::createNvParameterized with explicit version +// (see wiki for more details) +#define initParamRef DO_NOT_USE_ME + +#endif // PARAM_CONVERSION_TEMPLATE_H diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/NvParameters.h b/sdk/extensions/import/apexmodules/NvParameterized/include/NvParameters.h old mode 100644 new mode 100755 index 7676cf4..54e1f63 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/NvParameters.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/NvParameters.h @@ -1,650 +1,650 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_PARAMETERS_H -#define PX_PARAMETERS_H - -#include "PsMutex.h" -#include "PsAllocator.h" -#include "PxAssert.h" -#include "nvparameterized/NvParameterized.h" -#include "NvParametersTypes.h" - -#define NV_PARAM_PLACEMENT_NEW(p, T) new(p) T - -namespace NvParameterized -{ - typedef physx::shdfnd::MutexT MutexType; - - const char *typeToStr(DataType type); - DataType strToType(const char *str); - - PX_INLINE static bool IsAligned(const void *p, uint32_t border) - { - return !(reinterpret_cast(p) % border); //size_t == uintptr_t - } - - PX_INLINE static bool IsAligned(uint32_t x, uint32_t border) - { - return !(x % border); - } - - // Used for associating useful info with parameters (e.g. min, max, step, etc...) - class HintImpl : public Hint - { - public: - - HintImpl(); - HintImpl(const char *name, uint64_t value); - HintImpl(const char *name, double value); - HintImpl(const char *name, const char *value); - virtual ~HintImpl(); - - void init(const char *name, uint64_t value, bool static_allocation = false); - void init(const char *name, double value, bool static_allocation = false); - void init(const char *name, const char *value, bool static_allocation = false); - void cleanup(); - - const char *name(void) const { return(mName); } - DataType type(void) const { return(mType); } - - uint64_t asUInt(void) const; - double asFloat(void) const; - const char *asString(void) const; - bool setAsUInt(uint64_t v); - - private: - - bool mStaticAllocation; - char *mName; - DataType mType; - - union - { - uint64_t mUIntValue; - double mFloatValue; - char *mStringValue; - }; - }; - - - class DefinitionImpl : public Definition - { - public: - - DefinitionImpl(Traits &traits, bool staticAlloc = true); - DefinitionImpl(const char *name, DataType t, const char *structName, Traits &traits, bool staticAlloc = true); - virtual ~DefinitionImpl(); - - // can be used instead of the constructors and destructor - void init(const char *name, DataType t, const char *structName, bool static_allocation = false); - void cleanup(void); - void destroy(); - - const char *name(void) const - { - return(mName); - } - const char *longName(void) const { return(mLongName); } - const char *structName(void) const { return(mStructName); } - DataType type(void) const { return(mType); } - const char* typeString() const { return typeToStr(mType); } - - int32_t arrayDimension(void) const; - int32_t arraySize(int32_t dimension = 0) const; - bool arraySizeIsFixed(void) const; - bool setArraySize(int32_t size); // -1 if the size is not fixed - - bool isIncludedRef(void) const; - - bool isLeaf(void) const { return(type() != TYPE_STRUCT && type() != TYPE_ARRAY); } - - const Definition *parent(void) const { return(mParent); } - const Definition *root(void) const; - - // Only used with parameters of TYPE_STRUCT or TYPE_ARRAY - int32_t numChildren(void) const; - const Definition *child(int32_t index) const; - const Definition *child(const char *name, int32_t &index) const; // only used with TYPE_STRUCT - void setChildren(Definition **children, int32_t n); - void addChild(Definition *child); - - int32_t numHints(void) const; - const Hint *hint(int32_t index) const; - const Hint *hint(const char *name) const; - void setHints(const Hint **hints, int32_t n); - void addHint(Hint *hint); - - int32_t numEnumVals(void) const; - int32_t enumValIndex( const char * enum_val ) const; - - // The pointers returned by enumVal() are good for the lifetime of the DefinitionImpl object. - const char *enumVal(int32_t index) const; - void setEnumVals(const char **enum_vals, int32_t n); - void addEnumVal(const char *enum_val); - - - int32_t numRefVariants(void) const; - int32_t refVariantValIndex( const char * ref_val ) const; - - // The pointers returned by refVariantVal() are good for the lifetime of the DefinitionImpl object. - const char * refVariantVal(int32_t index) const; - void setRefVariantVals(const char **ref_vals, int32_t n); - void addRefVariantVal(const char *ref_val); - - uint32_t alignment(void) const; - void setAlignment(uint32_t align); - - uint32_t padding(void) const; - void setPadding(uint32_t align); - - void setDynamicHandleIndicesMap(const uint8_t *indices, uint32_t numIndices); - const uint8_t * getDynamicHandleIndicesMap(uint32_t &outNumIndices) const; - - bool isSimpleType(bool simpleStructs, bool simpleStrings) const; - - private: - - enum { MAX_NAME_LEN = 256 }; - - void setDefaults(void); - - bool mStaticAllocation; - - const char * mName; - const char * mLongName; - const char * mStructName; - DataType mType; - int32_t mArraySize; - - DefinitionImpl *mParent; - - int32_t mNumChildren; - Definition **mChildren; - - int32_t mNumHints; - HintImpl **mHints; - - int32_t mNumEnumVals; - char **mEnumVals; - - int32_t mNumRefVariants; - char **mRefVariantVals; - - Traits *mTraits; - bool mLongNameAllocated; - - uint32_t mAlign; - uint32_t mPad; - - uint32_t mNumDynamicHandleIndices; - const uint8_t *mDynamicHandleIndices; - }; - - // Used by generated code - struct ParamLookupNode - { - NvParameterized::DataType type; - bool isDynamicArrayRoot; - size_t offset; - const size_t* children; - int numChildren; - }; - - //Constructs temporary object and extract vptr - template - const char* getVptr() - { - char buf[T_align + sizeof(T)]; - - // We want all isAllocated false - memset(buf, false, sizeof(buf)); - - // Align - char* bufAligned = (char*)((size_t)(buf + T_align) & ~(T_align - 1)); - - // Call "fast" constructor (buf and refCount != NULL) - // which does not allocate members - T* tmp = NV_PARAM_PLACEMENT_NEW(bufAligned, T)(0, reinterpret_cast(16), reinterpret_cast(16)); - - // vptr is usually stored at the beginning of object... - const char* vptr = *reinterpret_cast(tmp); - - //Cleanup - tmp->~T(); - - return vptr; - } - -class NvParameters : public NvParameterized::Interface -{ -public: - - NvParameters(Traits *traits, void *buf = 0, int32_t *refCount = 0); //Long form is used for inplace objects - virtual ~NvParameters(); - - // placement delete - virtual void destroy(); - virtual void initDefaults(void) { } - virtual void initRandom(void); - - virtual const char * className(void) const { return mClassName; } - virtual void setClassName(const char *name); - - virtual const char * name(void) const { return mName; } - virtual void setName(const char *name); - - virtual uint32_t version(void) const { return 0; } - virtual uint16_t getMajorVersion(void) const; - virtual uint16_t getMinorVersion(void) const; - - virtual const uint32_t * checksum(uint32_t &bits) const - { - bits = 0; - return 0; - } - - int32_t numParameters(void); - const Definition *parameterDefinition(int32_t index); - - const Definition *rootParameterDefinition(void); - const Definition *rootParameterDefinition(void) const; - - // Given a long name like "mystruct.somearray[10].foo", it will return - // a handle to that specific parameter. The handle can then be used to - // set/get values, as long as it's a handle to a leaf node. - virtual ErrorType getParameterHandle(const char *long_name, Handle &handle) const; - virtual ErrorType getParameterHandle(const char *long_name, Handle &handle); - - virtual void setSerializationCallback(SerializationCallback *cb, void *userData = NULL); - virtual ErrorType callPreSerializeCallback() const; - - ErrorType initParamRef(const Handle &handle, const char *chosenRefStr = 0, bool doDestroyOld = false); - - // These functions wrap the raw(Get|Set)XXXXX() methods. They deal with - // error handling and casting. - ErrorType getParamBool(const Handle &handle, bool &val) const; - ErrorType setParamBool(const Handle &handle, bool val); - ErrorType getParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset= 0); - - ErrorType getParamString(const Handle &handle, const char *&val) const; - ErrorType setParamString(const Handle &handle, const char *val); - ErrorType getParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const; - ErrorType setParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset= 0); - - ErrorType getParamEnum(const Handle &handle, const char *&val) const; - ErrorType setParamEnum(const Handle &handle, const char *val); - ErrorType getParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const; - ErrorType setParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset= 0); - - ErrorType getParamRef(const Handle &handle, NvParameterized::Interface *&val) const; - ErrorType setParamRef(const Handle &handle, NvParameterized::Interface * val, bool doDestroyOld = false); - ErrorType getParamRefArray(const Handle &handle, NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const; - ErrorType setParamRefArray(const Handle &handle, /*const*/ NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false); - - ErrorType getParamI8(const Handle &handle, int8_t &val) const; - ErrorType setParamI8(const Handle &handle, int8_t val); - ErrorType getParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamI8Array(const Handle &handle, const int8_t *val, int32_t n, int32_t offset= 0); - - ErrorType getParamI16(const Handle &handle, int16_t &val) const; - ErrorType setParamI16(const Handle &handle, int16_t val); - ErrorType getParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamI16Array(const Handle &handle, const int16_t *val, int32_t n, int32_t offset= 0); - - ErrorType getParamI32(const Handle &handle, int32_t &val) const; - ErrorType setParamI32(const Handle &handle, int32_t val); - ErrorType getParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamI32Array(const Handle &handle, const int32_t *val, int32_t n, int32_t offset= 0); - - ErrorType getParamI64(const Handle &handle, int64_t &val) const; - ErrorType setParamI64(const Handle &handle, int64_t val); - ErrorType getParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamI64Array(const Handle &handle, const int64_t *val, int32_t n, int32_t offset= 0); - - ErrorType getParamU8(const Handle &handle, uint8_t &val) const; - ErrorType setParamU8(const Handle &handle, uint8_t val); - ErrorType getParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamU8Array(const Handle &handle, const uint8_t *val, int32_t n, int32_t offset= 0); - - ErrorType getParamU16(const Handle &handle, uint16_t &val) const; - ErrorType setParamU16(const Handle &handle, uint16_t val); - ErrorType getParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset= 0); - - ErrorType getParamU32(const Handle &handle, uint32_t &val) const; - ErrorType setParamU32(const Handle &handle, uint32_t val); - ErrorType getParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset= 0); - - ErrorType getParamU64(const Handle &handle, uint64_t &val) const; - ErrorType setParamU64(const Handle &handle, uint64_t val); - ErrorType getParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset= 0); - - ErrorType getParamF32(const Handle &handle, float &val) const; - ErrorType setParamF32(const Handle &handle, float val); - ErrorType getParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset= 0); - - ErrorType getParamF64(const Handle &handle, double &val) const; - ErrorType setParamF64(const Handle &handle, double val); - ErrorType getParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset= 0); - - ErrorType setParamVec2(const Handle &handle, const physx::PxVec2 &val); - ErrorType getParamVec2(const Handle &handle, physx::PxVec2 &val) const; - ErrorType getParamVec2Array(const Handle &handle, physx::PxVec2 *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset= 0); - - ErrorType setParamVec3(const Handle &handle, const physx::PxVec3 &val); - ErrorType getParamVec3(const Handle &handle, physx::PxVec3 &val) const; - ErrorType getParamVec3Array(const Handle &handle, physx::PxVec3 *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset= 0); - - ErrorType setParamVec4(const Handle &handle, const physx::PxVec4 &val); - ErrorType getParamVec4(const Handle &handle, physx::PxVec4 &val) const; - ErrorType getParamVec4Array(const Handle &handle, physx::PxVec4 *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset= 0); - - ErrorType setParamQuat(const Handle &handle, const physx::PxQuat &val); - ErrorType getParamQuat(const Handle &handle, physx::PxQuat &val) const; - ErrorType getParamQuatArray(const Handle &handle, physx::PxQuat *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset= 0); - - ErrorType setParamMat33(const Handle &handle, const physx::PxMat33 &val); - ErrorType getParamMat33(const Handle &handle, physx::PxMat33 &val) const; - ErrorType getParamMat33Array(const Handle &handle, physx::PxMat33 *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset= 0); - - ErrorType setParamMat34Legacy(const Handle &handle, const float (&val)[12]); - ErrorType getParamMat34Legacy(const Handle &handle, float (&val)[12]) const; - ErrorType getParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset = 0); - - ErrorType setParamMat44(const Handle &handle, const physx::PxMat44 &val); - ErrorType getParamMat44(const Handle &handle, physx::PxMat44 &val) const; - ErrorType getParamMat44Array(const Handle &handle, physx::PxMat44 *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset= 0); - - ErrorType setParamBounds3(const Handle &handle, const physx::PxBounds3 &val); - ErrorType getParamBounds3(const Handle &handle, physx::PxBounds3 &val) const; - ErrorType getParamBounds3Array(const Handle &handle, physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset= 0); - - ErrorType setParamTransform(const Handle &handle, const physx::PxTransform &val); - ErrorType getParamTransform(const Handle &handle, physx::PxTransform &val) const; - ErrorType getParamTransformArray(const Handle &handle, physx::PxTransform *array, int32_t n, int32_t offset = 0) const; - ErrorType setParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset= 0); - - ErrorType valueToStr(const Handle &array_handle, char *str, uint32_t n, const char *&ret); - ErrorType strToValue(Handle &handle,const char *str,const char **endptr); // assigns this string to the value - - ErrorType resizeArray(const Handle &array_handle, int32_t new_size); - ErrorType getArraySize(const Handle &array_handle, int32_t &size, int32_t dimension = 0) const; - ErrorType swapArrayElements(const Handle &array_handle, uint32_t firstElement, uint32_t secondElement); - - bool equals(const NvParameterized::Interface &obj, Handle* handleOfInequality, uint32_t numHandlesOfInequality, bool doCompareNotSerialized = true) const; - - bool areParamsOK(Handle *invalidHandles = NULL, uint32_t numInvalidHandles = 0); - - ErrorType copy(const NvParameterized::Interface &other); - - ErrorType clone(NvParameterized::Interface *&obj) const; - - static physx::PxVec2 getVec2(const char *str, const char **endptr); - static physx::PxVec3 getVec3(const char *str, const char **endptr); - static physx::PxVec4 getVec4(const char *str, const char **endptr); - static physx::PxQuat getQuat(const char *str, const char **endptr); - static physx::PxMat33 getMat33(const char *str, const char **endptr); - static void getMat34Legacy(const char *str, const char **endptr, float (&val)[12]); - static physx::PxMat44 getMat44(const char *str, const char **endptr); - static physx::PxBounds3 getBounds3(const char *str, const char **endptr); - static physx::PxTransform getTransform(const char *str, const char **endptr); - - static physx::PxVec2 init(float x,float y); - static physx::PxVec3 init(float x,float y,float z); - static physx::PxVec4 initVec4(float x,float y,float z,float w); - static physx::PxQuat init(float x,float y,float z,float w); - static physx::PxMat33 init(float _11,float _12,float _13,float _21,float _22,float _23,float _31,float _32,float _33); - static physx::PxMat44 init(float _11,float _12,float _13,float _14,float _21,float _22,float _23,float _24,float _31,float _32,float _33,float _34,float _41,float _42,float _43,float _44); - static physx::PxBounds3 init(float minx,float miny,float minz,float maxx,float maxy,float maxz); - static physx::PxTransform init(float x,float y,float z,float qx,float qy,float qz,float qw); - - static int32_t MultIntArray(const int32_t *array, int32_t n); - static ErrorType resizeArray(Traits *parameterizedTraits, - void *&buf, - int32_t *array_sizes, - int32_t dimension, - int32_t resize_dim, - int32_t new_size, - bool doFree, - int32_t element_size, - uint32_t element_align, - bool &isMemAllocated); - static void recursiveCopy(const void *src, - const int32_t *src_sizes, - void *dst, - const int32_t *dst_sizes, - int32_t dimension, - int32_t element_size, - int32_t *indexes = NULL, - int32_t level = 0); - - virtual void getVarPtr(const Handle &, void *&ptr, size_t &offset) const - { - PX_ALWAYS_ASSERT(); - ptr = 0; - offset = 0; - } - - Traits * getTraits(void) const - { - return mParameterizedTraits; - } - - virtual bool checkAlignments() const; - -protected: - - void *getVarPtrHelper(const ParamLookupNode *rootNode, void *paramStruct, const Handle &handle, size_t &offset) const; - - static void destroy(NvParameters *obj, NvParameterized::Traits *traits, bool doDeallocateSelf, int32_t *refCount, void *buf); - - // All classes deriving from NvParameterized must overload this function. It - // returns the parameter definition tree. The root node must be a struct - // with an empty string for its name. - virtual const Definition *getParameterDefinitionTree(void) {return NULL;} - virtual const Definition *getParameterDefinitionTree(void) const {return NULL;} - - ErrorType releaseDownsizedParameters(const Handle &handle, int newSize, int oldSize); - ErrorType initNewResizedParameters(const Handle &handle, int newSize, int oldSize); - virtual ErrorType rawResizeArray(const Handle &handle, int new_size); - virtual ErrorType rawGetArraySize(const Handle &array_handle, int &size, int dimension) const; - virtual ErrorType rawSwapArrayElements(const Handle &array_handle, unsigned int firstElement, unsigned int secondElement); - - // The methods for the types that are supported by the class deriving from - // NvParameterized must be overloaded. - virtual ErrorType rawSetParamBool(const Handle &handle, bool val); - virtual ErrorType rawGetParamBool(const Handle &handle, bool &val) const; - virtual ErrorType rawGetParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamString(const Handle &handle, const char *&val) const; - virtual ErrorType rawSetParamString(const Handle &handle, const char *val); - virtual ErrorType rawGetParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamEnum(const Handle &handle, const char *&val) const; - virtual ErrorType rawSetParamEnum(const Handle &handle, const char *val); - virtual ErrorType rawGetParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamRef(const Handle &handle, NvParameterized::Interface *&val) const; - virtual ErrorType rawSetParamRef(const Handle &handle, NvParameterized::Interface * val); - virtual ErrorType rawGetParamRefArray(const Handle &handle, NvParameterized::Interface **array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamRefArray(const Handle &handle, /*const*/ NvParameterized::Interface **array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamI8(const Handle &handle, int8_t &val) const; - virtual ErrorType rawSetParamI8(const Handle &handle, int8_t val); - virtual ErrorType rawGetParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamI8Array(const Handle &handle, const int8_t *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamI16(const Handle &handle, int16_t &val) const; - virtual ErrorType rawSetParamI16(const Handle &handle, int16_t val); - virtual ErrorType rawGetParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamI16Array(const Handle &handle, const int16_t *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamI32(const Handle &handle, int32_t &val) const; - virtual ErrorType rawSetParamI32(const Handle &handle, int32_t val); - virtual ErrorType rawGetParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamI32Array(const Handle &handle, const int32_t *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamI64(const Handle &handle, int64_t &val) const; - virtual ErrorType rawSetParamI64(const Handle &handle, int64_t val); - virtual ErrorType rawGetParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamI64Array(const Handle &handle, const int64_t *array, int32_t n, int32_t offset); - - - virtual ErrorType rawGetParamU8(const Handle &handle, uint8_t &val) const; - virtual ErrorType rawSetParamU8(const Handle &handle, uint8_t val); - virtual ErrorType rawGetParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamU8Array(const Handle &handle, const uint8_t *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamU16(const Handle &handle, uint16_t &val) const; - virtual ErrorType rawSetParamU16(const Handle &handle, uint16_t val); - virtual ErrorType rawGetParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamU32(const Handle &handle, uint32_t &val) const; - virtual ErrorType rawSetParamU32(const Handle &handle, uint32_t val); - virtual ErrorType rawGetParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamU64(const Handle &handle, uint64_t val); - virtual ErrorType rawGetParamU64(const Handle &handle, uint64_t &val) const; - virtual ErrorType rawGetParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamF32(const Handle &handle, float &val) const; - virtual ErrorType rawSetParamF32(const Handle &handle, float val); - virtual ErrorType rawGetParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset); - - virtual ErrorType rawGetParamF64(const Handle &handle, double &val) const; - virtual ErrorType rawSetParamF64(const Handle &handle, double val); - virtual ErrorType rawGetParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamVec2(const Handle &handle,physx::PxVec2 val); - virtual ErrorType rawGetParamVec2(const Handle &handle,physx::PxVec2 &val) const; - virtual ErrorType rawGetParamVec2Array(const Handle &handle,physx::PxVec2 *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamVec3(const Handle &handle,physx::PxVec3 val); - virtual ErrorType rawGetParamVec3(const Handle &handle,physx::PxVec3 &val) const; - virtual ErrorType rawGetParamVec3Array(const Handle &handle,physx::PxVec3 *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamVec4(const Handle &handle,physx::PxVec4 val); - virtual ErrorType rawGetParamVec4(const Handle &handle,physx::PxVec4 &val) const; - virtual ErrorType rawGetParamVec4Array(const Handle &handle,physx::PxVec4 *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamQuat(const Handle &handle,physx::PxQuat val); - virtual ErrorType rawGetParamQuat(const Handle &handle,physx::PxQuat &val) const; - virtual ErrorType rawGetParamQuatArray(const Handle &handle,physx::PxQuat *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamMat33(const Handle &handle,physx::PxMat33 val); - virtual ErrorType rawGetParamMat33(const Handle &handle,physx::PxMat33 &val) const; - virtual ErrorType rawGetParamMat33Array(const Handle &handle,physx::PxMat33 *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamMat44(const Handle &handle,physx::PxMat44 val); - virtual ErrorType rawGetParamMat44(const Handle &handle,physx::PxMat44 &val) const; - virtual ErrorType rawGetParamMat44Array(const Handle &handle,physx::PxMat44 *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamMat34Legacy(const Handle &handle,const float (&val)[12]); - virtual ErrorType rawGetParamMat34Legacy(const Handle &handle,float (&val)[12]) const; - virtual ErrorType rawGetParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamBounds3(const Handle &handle,physx::PxBounds3 val); - virtual ErrorType rawGetParamBounds3(const Handle &handle,physx::PxBounds3 &val) const; - virtual ErrorType rawGetParamBounds3Array(const Handle &handle,physx::PxBounds3 *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset); - - virtual ErrorType rawSetParamTransform(const Handle &handle,physx::PxTransform val); - virtual ErrorType rawGetParamTransform(const Handle &handle,physx::PxTransform &val) const; - virtual ErrorType rawGetParamTransformArray(const Handle &handle,physx::PxTransform *array, int32_t n, int32_t offset) const; - virtual ErrorType rawSetParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset); - - // WARNING! - // Binary deserializer relies on layout of fields - // If you change anything be sure to update it as well - - Traits *mParameterizedTraits; - SerializationCallback *mSerializationCb; - void *mCbUserData; - void *mBuffer; - int32_t *mRefCount; - const char *mName; - const char *mClassName; - bool mDoDeallocateSelf; //if true - memory should be deallocated in destroy() - bool mDoDeallocateName; //if true - mName is in inplace-buffer and should not be freed - bool mDoDeallocateClassName; //see comment for mDoDeallocateName - -private: - - void initRandom(NvParameterized::Handle& handle); - - bool equals(const NvParameterized::Interface &obj, - Handle ¶m_handle, - Handle *handlesOfInequality, - uint32_t numHandlesOfInequality, - bool doCompareNotSerialized) const; - - bool checkAlignments(Handle ¶m_handle) const; - - bool areParamsOK(Handle &handle, Handle *invalidHandles, uint32_t numInvalidHandles, uint32_t &numRemainingHandles); - - ErrorType copy(const NvParameterized::Interface &other, - Handle ¶m_handle); - - // recursively call pre serialization callback - ErrorType callPreSerializeCallback(Handle& handle) const; - - ErrorType checkParameterHandle(const Handle &handle) const; - -}; - -} // end of namespace - -#endif // PX_PARAMETERS_H +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_PARAMETERS_H +#define PX_PARAMETERS_H + +#include "PsMutex.h" +#include "PsAllocator.h" +#include "PxAssert.h" +#include "nvparameterized/NvParameterized.h" +#include "NvParametersTypes.h" + +#define NV_PARAM_PLACEMENT_NEW(p, T) new(p) T + +namespace NvParameterized +{ + typedef physx::shdfnd::MutexT MutexType; + + const char *typeToStr(DataType type); + DataType strToType(const char *str); + + PX_INLINE static bool IsAligned(const void *p, uint32_t border) + { + return !(reinterpret_cast(p) % border); //size_t == uintptr_t + } + + PX_INLINE static bool IsAligned(uint32_t x, uint32_t border) + { + return !(x % border); + } + + // Used for associating useful info with parameters (e.g. min, max, step, etc...) + class HintImpl : public Hint + { + public: + + HintImpl(); + HintImpl(const char *name, uint64_t value); + HintImpl(const char *name, double value); + HintImpl(const char *name, const char *value); + virtual ~HintImpl(); + + void init(const char *name, uint64_t value, bool static_allocation = false); + void init(const char *name, double value, bool static_allocation = false); + void init(const char *name, const char *value, bool static_allocation = false); + void cleanup(); + + const char *name(void) const { return(mName); } + DataType type(void) const { return(mType); } + + uint64_t asUInt(void) const; + double asFloat(void) const; + const char *asString(void) const; + bool setAsUInt(uint64_t v); + + private: + + bool mStaticAllocation; + char *mName; + DataType mType; + + union + { + uint64_t mUIntValue; + double mFloatValue; + char *mStringValue; + }; + }; + + + class DefinitionImpl : public Definition + { + public: + + DefinitionImpl(Traits &traits, bool staticAlloc = true); + DefinitionImpl(const char *name, DataType t, const char *structName, Traits &traits, bool staticAlloc = true); + virtual ~DefinitionImpl(); + + // can be used instead of the constructors and destructor + void init(const char *name, DataType t, const char *structName, bool static_allocation = false); + void cleanup(void); + void destroy(); + + const char *name(void) const + { + return(mName); + } + const char *longName(void) const { return(mLongName); } + const char *structName(void) const { return(mStructName); } + DataType type(void) const { return(mType); } + const char* typeString() const { return typeToStr(mType); } + + int32_t arrayDimension(void) const; + int32_t arraySize(int32_t dimension = 0) const; + bool arraySizeIsFixed(void) const; + bool setArraySize(int32_t size); // -1 if the size is not fixed + + bool isIncludedRef(void) const; + + bool isLeaf(void) const { return(type() != TYPE_STRUCT && type() != TYPE_ARRAY); } + + const Definition *parent(void) const { return(mParent); } + const Definition *root(void) const; + + // Only used with parameters of TYPE_STRUCT or TYPE_ARRAY + int32_t numChildren(void) const; + const Definition *child(int32_t index) const; + const Definition *child(const char *name, int32_t &index) const; // only used with TYPE_STRUCT + void setChildren(Definition **children, int32_t n); + void addChild(Definition *child); + + int32_t numHints(void) const; + const Hint *hint(int32_t index) const; + const Hint *hint(const char *name) const; + void setHints(const Hint **hints, int32_t n); + void addHint(Hint *hint); + + int32_t numEnumVals(void) const; + int32_t enumValIndex( const char * enum_val ) const; + + // The pointers returned by enumVal() are good for the lifetime of the DefinitionImpl object. + const char *enumVal(int32_t index) const; + void setEnumVals(const char **enum_vals, int32_t n); + void addEnumVal(const char *enum_val); + + + int32_t numRefVariants(void) const; + int32_t refVariantValIndex( const char * ref_val ) const; + + // The pointers returned by refVariantVal() are good for the lifetime of the DefinitionImpl object. + const char * refVariantVal(int32_t index) const; + void setRefVariantVals(const char **ref_vals, int32_t n); + void addRefVariantVal(const char *ref_val); + + uint32_t alignment(void) const; + void setAlignment(uint32_t align); + + uint32_t padding(void) const; + void setPadding(uint32_t align); + + void setDynamicHandleIndicesMap(const uint8_t *indices, uint32_t numIndices); + const uint8_t * getDynamicHandleIndicesMap(uint32_t &outNumIndices) const; + + bool isSimpleType(bool simpleStructs, bool simpleStrings) const; + + private: + + enum { MAX_NAME_LEN = 256 }; + + void setDefaults(void); + + bool mStaticAllocation; + + const char * mName; + const char * mLongName; + const char * mStructName; + DataType mType; + int32_t mArraySize; + + DefinitionImpl *mParent; + + int32_t mNumChildren; + Definition **mChildren; + + int32_t mNumHints; + HintImpl **mHints; + + int32_t mNumEnumVals; + char **mEnumVals; + + int32_t mNumRefVariants; + char **mRefVariantVals; + + Traits *mTraits; + bool mLongNameAllocated; + + uint32_t mAlign; + uint32_t mPad; + + uint32_t mNumDynamicHandleIndices; + const uint8_t *mDynamicHandleIndices; + }; + + // Used by generated code + struct ParamLookupNode + { + NvParameterized::DataType type; + bool isDynamicArrayRoot; + size_t offset; + const size_t* children; + int numChildren; + }; + + //Constructs temporary object and extract vptr + template + const char* getVptr() + { + char buf[T_align + sizeof(T)]; + + // We want all isAllocated false + memset(buf, false, sizeof(buf)); + + // Align + char* bufAligned = (char*)((size_t)(buf + T_align) & ~(T_align - 1)); + + // Call "fast" constructor (buf and refCount != NULL) + // which does not allocate members + T* tmp = NV_PARAM_PLACEMENT_NEW(bufAligned, T)(0, reinterpret_cast(16), reinterpret_cast(16)); + + // vptr is usually stored at the beginning of object... + const char* vptr = *reinterpret_cast(tmp); + + //Cleanup + tmp->~T(); + + return vptr; + } + +class NvParameters : public NvParameterized::Interface +{ +public: + + NvParameters(Traits *traits, void *buf = 0, int32_t *refCount = 0); //Long form is used for inplace objects + virtual ~NvParameters(); + + // placement delete + virtual void destroy(); + virtual void initDefaults(void) { } + virtual void initRandom(void); + + virtual const char * className(void) const { return mClassName; } + virtual void setClassName(const char *name); + + virtual const char * name(void) const { return mName; } + virtual void setName(const char *name); + + virtual uint32_t version(void) const { return 0; } + virtual uint16_t getMajorVersion(void) const; + virtual uint16_t getMinorVersion(void) const; + + virtual const uint32_t * checksum(uint32_t &bits) const + { + bits = 0; + return 0; + } + + int32_t numParameters(void); + const Definition *parameterDefinition(int32_t index); + + const Definition *rootParameterDefinition(void); + const Definition *rootParameterDefinition(void) const; + + // Given a long name like "mystruct.somearray[10].foo", it will return + // a handle to that specific parameter. The handle can then be used to + // set/get values, as long as it's a handle to a leaf node. + virtual ErrorType getParameterHandle(const char *long_name, Handle &handle) const; + virtual ErrorType getParameterHandle(const char *long_name, Handle &handle); + + virtual void setSerializationCallback(SerializationCallback *cb, void *userData = NULL); + virtual ErrorType callPreSerializeCallback() const; + + ErrorType initParamRef(const Handle &handle, const char *chosenRefStr = 0, bool doDestroyOld = false); + + // These functions wrap the raw(Get|Set)XXXXX() methods. They deal with + // error handling and casting. + ErrorType getParamBool(const Handle &handle, bool &val) const; + ErrorType setParamBool(const Handle &handle, bool val); + ErrorType getParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset= 0); + + ErrorType getParamString(const Handle &handle, const char *&val) const; + ErrorType setParamString(const Handle &handle, const char *val); + ErrorType getParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const; + ErrorType setParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset= 0); + + ErrorType getParamEnum(const Handle &handle, const char *&val) const; + ErrorType setParamEnum(const Handle &handle, const char *val); + ErrorType getParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const; + ErrorType setParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset= 0); + + ErrorType getParamRef(const Handle &handle, NvParameterized::Interface *&val) const; + ErrorType setParamRef(const Handle &handle, NvParameterized::Interface * val, bool doDestroyOld = false); + ErrorType getParamRefArray(const Handle &handle, NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const; + ErrorType setParamRefArray(const Handle &handle, /*const*/ NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false); + + ErrorType getParamI8(const Handle &handle, int8_t &val) const; + ErrorType setParamI8(const Handle &handle, int8_t val); + ErrorType getParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamI8Array(const Handle &handle, const int8_t *val, int32_t n, int32_t offset= 0); + + ErrorType getParamI16(const Handle &handle, int16_t &val) const; + ErrorType setParamI16(const Handle &handle, int16_t val); + ErrorType getParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamI16Array(const Handle &handle, const int16_t *val, int32_t n, int32_t offset= 0); + + ErrorType getParamI32(const Handle &handle, int32_t &val) const; + ErrorType setParamI32(const Handle &handle, int32_t val); + ErrorType getParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamI32Array(const Handle &handle, const int32_t *val, int32_t n, int32_t offset= 0); + + ErrorType getParamI64(const Handle &handle, int64_t &val) const; + ErrorType setParamI64(const Handle &handle, int64_t val); + ErrorType getParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamI64Array(const Handle &handle, const int64_t *val, int32_t n, int32_t offset= 0); + + ErrorType getParamU8(const Handle &handle, uint8_t &val) const; + ErrorType setParamU8(const Handle &handle, uint8_t val); + ErrorType getParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamU8Array(const Handle &handle, const uint8_t *val, int32_t n, int32_t offset= 0); + + ErrorType getParamU16(const Handle &handle, uint16_t &val) const; + ErrorType setParamU16(const Handle &handle, uint16_t val); + ErrorType getParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset= 0); + + ErrorType getParamU32(const Handle &handle, uint32_t &val) const; + ErrorType setParamU32(const Handle &handle, uint32_t val); + ErrorType getParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset= 0); + + ErrorType getParamU64(const Handle &handle, uint64_t &val) const; + ErrorType setParamU64(const Handle &handle, uint64_t val); + ErrorType getParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset= 0); + + ErrorType getParamF32(const Handle &handle, float &val) const; + ErrorType setParamF32(const Handle &handle, float val); + ErrorType getParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset= 0); + + ErrorType getParamF64(const Handle &handle, double &val) const; + ErrorType setParamF64(const Handle &handle, double val); + ErrorType getParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset= 0); + + ErrorType setParamVec2(const Handle &handle, const physx::PxVec2 &val); + ErrorType getParamVec2(const Handle &handle, physx::PxVec2 &val) const; + ErrorType getParamVec2Array(const Handle &handle, physx::PxVec2 *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset= 0); + + ErrorType setParamVec3(const Handle &handle, const physx::PxVec3 &val); + ErrorType getParamVec3(const Handle &handle, physx::PxVec3 &val) const; + ErrorType getParamVec3Array(const Handle &handle, physx::PxVec3 *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset= 0); + + ErrorType setParamVec4(const Handle &handle, const physx::PxVec4 &val); + ErrorType getParamVec4(const Handle &handle, physx::PxVec4 &val) const; + ErrorType getParamVec4Array(const Handle &handle, physx::PxVec4 *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset= 0); + + ErrorType setParamQuat(const Handle &handle, const physx::PxQuat &val); + ErrorType getParamQuat(const Handle &handle, physx::PxQuat &val) const; + ErrorType getParamQuatArray(const Handle &handle, physx::PxQuat *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset= 0); + + ErrorType setParamMat33(const Handle &handle, const physx::PxMat33 &val); + ErrorType getParamMat33(const Handle &handle, physx::PxMat33 &val) const; + ErrorType getParamMat33Array(const Handle &handle, physx::PxMat33 *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset= 0); + + ErrorType setParamMat34Legacy(const Handle &handle, const float (&val)[12]); + ErrorType getParamMat34Legacy(const Handle &handle, float (&val)[12]) const; + ErrorType getParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset = 0); + + ErrorType setParamMat44(const Handle &handle, const physx::PxMat44 &val); + ErrorType getParamMat44(const Handle &handle, physx::PxMat44 &val) const; + ErrorType getParamMat44Array(const Handle &handle, physx::PxMat44 *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset= 0); + + ErrorType setParamBounds3(const Handle &handle, const physx::PxBounds3 &val); + ErrorType getParamBounds3(const Handle &handle, physx::PxBounds3 &val) const; + ErrorType getParamBounds3Array(const Handle &handle, physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset= 0); + + ErrorType setParamTransform(const Handle &handle, const physx::PxTransform &val); + ErrorType getParamTransform(const Handle &handle, physx::PxTransform &val) const; + ErrorType getParamTransformArray(const Handle &handle, physx::PxTransform *array, int32_t n, int32_t offset = 0) const; + ErrorType setParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset= 0); + + ErrorType valueToStr(const Handle &array_handle, char *str, uint32_t n, const char *&ret); + ErrorType strToValue(Handle &handle,const char *str,const char **endptr); // assigns this string to the value + + ErrorType resizeArray(const Handle &array_handle, int32_t new_size); + ErrorType getArraySize(const Handle &array_handle, int32_t &size, int32_t dimension = 0) const; + ErrorType swapArrayElements(const Handle &array_handle, uint32_t firstElement, uint32_t secondElement); + + bool equals(const NvParameterized::Interface &obj, Handle* handleOfInequality, uint32_t numHandlesOfInequality, bool doCompareNotSerialized = true) const; + + bool areParamsOK(Handle *invalidHandles = NULL, uint32_t numInvalidHandles = 0); + + ErrorType copy(const NvParameterized::Interface &other); + + ErrorType clone(NvParameterized::Interface *&obj) const; + + static physx::PxVec2 getVec2(const char *str, const char **endptr); + static physx::PxVec3 getVec3(const char *str, const char **endptr); + static physx::PxVec4 getVec4(const char *str, const char **endptr); + static physx::PxQuat getQuat(const char *str, const char **endptr); + static physx::PxMat33 getMat33(const char *str, const char **endptr); + static void getMat34Legacy(const char *str, const char **endptr, float (&val)[12]); + static physx::PxMat44 getMat44(const char *str, const char **endptr); + static physx::PxBounds3 getBounds3(const char *str, const char **endptr); + static physx::PxTransform getTransform(const char *str, const char **endptr); + + static physx::PxVec2 init(float x,float y); + static physx::PxVec3 init(float x,float y,float z); + static physx::PxVec4 initVec4(float x,float y,float z,float w); + static physx::PxQuat init(float x,float y,float z,float w); + static physx::PxMat33 init(float _11,float _12,float _13,float _21,float _22,float _23,float _31,float _32,float _33); + static physx::PxMat44 init(float _11,float _12,float _13,float _14,float _21,float _22,float _23,float _24,float _31,float _32,float _33,float _34,float _41,float _42,float _43,float _44); + static physx::PxBounds3 init(float minx,float miny,float minz,float maxx,float maxy,float maxz); + static physx::PxTransform init(float x,float y,float z,float qx,float qy,float qz,float qw); + + static int32_t MultIntArray(const int32_t *array, int32_t n); + static ErrorType resizeArray(Traits *parameterizedTraits, + void *&buf, + int32_t *array_sizes, + int32_t dimension, + int32_t resize_dim, + int32_t new_size, + bool doFree, + int32_t element_size, + uint32_t element_align, + bool &isMemAllocated); + static void recursiveCopy(const void *src, + const int32_t *src_sizes, + void *dst, + const int32_t *dst_sizes, + int32_t dimension, + int32_t element_size, + int32_t *indexes = NULL, + int32_t level = 0); + + virtual void getVarPtr(const Handle &, void *&ptr, size_t &offset) const + { + PX_ALWAYS_ASSERT(); + ptr = 0; + offset = 0; + } + + Traits * getTraits(void) const + { + return mParameterizedTraits; + } + + virtual bool checkAlignments() const; + +protected: + + void *getVarPtrHelper(const ParamLookupNode *rootNode, void *paramStruct, const Handle &handle, size_t &offset) const; + + static void destroy(NvParameters *obj, NvParameterized::Traits *traits, bool doDeallocateSelf, int32_t *refCount, void *buf); + + // All classes deriving from NvParameterized must overload this function. It + // returns the parameter definition tree. The root node must be a struct + // with an empty string for its name. + virtual const Definition *getParameterDefinitionTree(void) {return NULL;} + virtual const Definition *getParameterDefinitionTree(void) const {return NULL;} + + ErrorType releaseDownsizedParameters(const Handle &handle, int newSize, int oldSize); + ErrorType initNewResizedParameters(const Handle &handle, int newSize, int oldSize); + virtual ErrorType rawResizeArray(const Handle &handle, int new_size); + virtual ErrorType rawGetArraySize(const Handle &array_handle, int &size, int dimension) const; + virtual ErrorType rawSwapArrayElements(const Handle &array_handle, unsigned int firstElement, unsigned int secondElement); + + // The methods for the types that are supported by the class deriving from + // NvParameterized must be overloaded. + virtual ErrorType rawSetParamBool(const Handle &handle, bool val); + virtual ErrorType rawGetParamBool(const Handle &handle, bool &val) const; + virtual ErrorType rawGetParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamString(const Handle &handle, const char *&val) const; + virtual ErrorType rawSetParamString(const Handle &handle, const char *val); + virtual ErrorType rawGetParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamEnum(const Handle &handle, const char *&val) const; + virtual ErrorType rawSetParamEnum(const Handle &handle, const char *val); + virtual ErrorType rawGetParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamRef(const Handle &handle, NvParameterized::Interface *&val) const; + virtual ErrorType rawSetParamRef(const Handle &handle, NvParameterized::Interface * val); + virtual ErrorType rawGetParamRefArray(const Handle &handle, NvParameterized::Interface **array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamRefArray(const Handle &handle, /*const*/ NvParameterized::Interface **array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamI8(const Handle &handle, int8_t &val) const; + virtual ErrorType rawSetParamI8(const Handle &handle, int8_t val); + virtual ErrorType rawGetParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamI8Array(const Handle &handle, const int8_t *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamI16(const Handle &handle, int16_t &val) const; + virtual ErrorType rawSetParamI16(const Handle &handle, int16_t val); + virtual ErrorType rawGetParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamI16Array(const Handle &handle, const int16_t *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamI32(const Handle &handle, int32_t &val) const; + virtual ErrorType rawSetParamI32(const Handle &handle, int32_t val); + virtual ErrorType rawGetParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamI32Array(const Handle &handle, const int32_t *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamI64(const Handle &handle, int64_t &val) const; + virtual ErrorType rawSetParamI64(const Handle &handle, int64_t val); + virtual ErrorType rawGetParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamI64Array(const Handle &handle, const int64_t *array, int32_t n, int32_t offset); + + + virtual ErrorType rawGetParamU8(const Handle &handle, uint8_t &val) const; + virtual ErrorType rawSetParamU8(const Handle &handle, uint8_t val); + virtual ErrorType rawGetParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamU8Array(const Handle &handle, const uint8_t *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamU16(const Handle &handle, uint16_t &val) const; + virtual ErrorType rawSetParamU16(const Handle &handle, uint16_t val); + virtual ErrorType rawGetParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamU32(const Handle &handle, uint32_t &val) const; + virtual ErrorType rawSetParamU32(const Handle &handle, uint32_t val); + virtual ErrorType rawGetParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamU64(const Handle &handle, uint64_t val); + virtual ErrorType rawGetParamU64(const Handle &handle, uint64_t &val) const; + virtual ErrorType rawGetParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamF32(const Handle &handle, float &val) const; + virtual ErrorType rawSetParamF32(const Handle &handle, float val); + virtual ErrorType rawGetParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset); + + virtual ErrorType rawGetParamF64(const Handle &handle, double &val) const; + virtual ErrorType rawSetParamF64(const Handle &handle, double val); + virtual ErrorType rawGetParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamVec2(const Handle &handle,physx::PxVec2 val); + virtual ErrorType rawGetParamVec2(const Handle &handle,physx::PxVec2 &val) const; + virtual ErrorType rawGetParamVec2Array(const Handle &handle,physx::PxVec2 *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamVec3(const Handle &handle,physx::PxVec3 val); + virtual ErrorType rawGetParamVec3(const Handle &handle,physx::PxVec3 &val) const; + virtual ErrorType rawGetParamVec3Array(const Handle &handle,physx::PxVec3 *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamVec4(const Handle &handle,physx::PxVec4 val); + virtual ErrorType rawGetParamVec4(const Handle &handle,physx::PxVec4 &val) const; + virtual ErrorType rawGetParamVec4Array(const Handle &handle,physx::PxVec4 *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamQuat(const Handle &handle,physx::PxQuat val); + virtual ErrorType rawGetParamQuat(const Handle &handle,physx::PxQuat &val) const; + virtual ErrorType rawGetParamQuatArray(const Handle &handle,physx::PxQuat *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamMat33(const Handle &handle,physx::PxMat33 val); + virtual ErrorType rawGetParamMat33(const Handle &handle,physx::PxMat33 &val) const; + virtual ErrorType rawGetParamMat33Array(const Handle &handle,physx::PxMat33 *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamMat44(const Handle &handle,physx::PxMat44 val); + virtual ErrorType rawGetParamMat44(const Handle &handle,physx::PxMat44 &val) const; + virtual ErrorType rawGetParamMat44Array(const Handle &handle,physx::PxMat44 *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamMat34Legacy(const Handle &handle,const float (&val)[12]); + virtual ErrorType rawGetParamMat34Legacy(const Handle &handle,float (&val)[12]) const; + virtual ErrorType rawGetParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamBounds3(const Handle &handle,physx::PxBounds3 val); + virtual ErrorType rawGetParamBounds3(const Handle &handle,physx::PxBounds3 &val) const; + virtual ErrorType rawGetParamBounds3Array(const Handle &handle,physx::PxBounds3 *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset); + + virtual ErrorType rawSetParamTransform(const Handle &handle,physx::PxTransform val); + virtual ErrorType rawGetParamTransform(const Handle &handle,physx::PxTransform &val) const; + virtual ErrorType rawGetParamTransformArray(const Handle &handle,physx::PxTransform *array, int32_t n, int32_t offset) const; + virtual ErrorType rawSetParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset); + + // WARNING! + // Binary deserializer relies on layout of fields + // If you change anything be sure to update it as well + + Traits *mParameterizedTraits; + SerializationCallback *mSerializationCb; + void *mCbUserData; + void *mBuffer; + int32_t *mRefCount; + const char *mName; + const char *mClassName; + bool mDoDeallocateSelf; //if true - memory should be deallocated in destroy() + bool mDoDeallocateName; //if true - mName is in inplace-buffer and should not be freed + bool mDoDeallocateClassName; //see comment for mDoDeallocateName + +private: + + void initRandom(NvParameterized::Handle& handle); + + bool equals(const NvParameterized::Interface &obj, + Handle ¶m_handle, + Handle *handlesOfInequality, + uint32_t numHandlesOfInequality, + bool doCompareNotSerialized) const; + + bool checkAlignments(Handle ¶m_handle) const; + + bool areParamsOK(Handle &handle, Handle *invalidHandles, uint32_t numInvalidHandles, uint32_t &numRemainingHandles); + + ErrorType copy(const NvParameterized::Interface &other, + Handle ¶m_handle); + + // recursively call pre serialization callback + ErrorType callPreSerializeCallback(Handle& handle) const; + + ErrorType checkParameterHandle(const Handle &handle) const; + +}; + +} // end of namespace + +#endif // PX_PARAMETERS_H diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/NvParametersTypes.h b/sdk/extensions/import/apexmodules/NvParameterized/include/NvParametersTypes.h old mode 100644 new mode 100755 index aba2b75..b72931d --- a/sdk/extensions/import/apexmodules/NvParameterized/include/NvParametersTypes.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/NvParametersTypes.h @@ -1,58 +1,58 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_PARAMETERS_TYPES_H -#define PX_PARAMETERS_TYPES_H - -namespace NvParameterized -{ - -struct DummyDynamicArrayStruct -{ - void *buf; - bool isAllocated; - int elementSize; - int arraySizes[1]; -}; - -struct DummyStringStruct -{ - const char *buf; - bool isAllocated; - - //This is needed for compatibility with existing code - operator const char *() const - { - return buf; - } -}; - -class Interface; // necessary for NV_PARAMETERIZED_ONLY_LAYOUTS - -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_PARAMETERS_TYPES_H +#define PX_PARAMETERS_TYPES_H + +namespace NvParameterized +{ + +struct DummyDynamicArrayStruct +{ + void *buf; + bool isAllocated; + int elementSize; + int arraySizes[1]; +}; + +struct DummyStringStruct +{ + const char *buf; + bool isAllocated; + + //This is needed for compatibility with existing code + operator const char *() const + { + return buf; + } +}; + +class Interface; // necessary for NV_PARAMETERIZED_ONLY_LAYOUTS + +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/NvRegistrationsForTraitsBase.h b/sdk/extensions/import/apexmodules/NvParameterized/include/NvRegistrationsForTraitsBase.h old mode 100644 new mode 100755 index 2af6ddf..1f7b4a7 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/NvRegistrationsForTraitsBase.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/NvRegistrationsForTraitsBase.h @@ -1,29 +1,29 @@ -#ifndef MODULE_REGISTRATION_FOR_TRAITS_BASE_H -#define MODULE_REGISTRATION_FOR_TRAITS_BASE_H - -#include "nvparameterized/NvParameterizedTraits.h" - -namespace NvParameterized -{ - class RegistrationsForTraitsBase - { - public: - virtual void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) = 0; - virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) = 0; - virtual void registerAll(NvParameterized::Traits& parameterizedTraits) - { - registerAvailableFactories(parameterizedTraits); - registerAvailableConverters(parameterizedTraits); - } - - virtual void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) = 0; - virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) = 0; - virtual void unregisterAll(NvParameterized::Traits& parameterizedTraits) - { - unregisterAvailableFactories(parameterizedTraits); - unregisterAvailableConverters(parameterizedTraits); - } - }; -} - -#endif +#ifndef MODULE_REGISTRATION_FOR_TRAITS_BASE_H +#define MODULE_REGISTRATION_FOR_TRAITS_BASE_H + +#include "nvparameterized/NvParameterizedTraits.h" + +namespace NvParameterized +{ + class RegistrationsForTraitsBase + { + public: + virtual void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) = 0; + virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) = 0; + virtual void registerAll(NvParameterized::Traits& parameterizedTraits) + { + registerAvailableFactories(parameterizedTraits); + registerAvailableConverters(parameterizedTraits); + } + + virtual void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) = 0; + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) = 0; + virtual void unregisterAll(NvParameterized::Traits& parameterizedTraits) + { + unregisterAvailableFactories(parameterizedTraits); + unregisterAvailableConverters(parameterizedTraits); + } + }; +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/NvSerializerInternal.h b/sdk/extensions/import/apexmodules/NvParameterized/include/NvSerializerInternal.h old mode 100644 new mode 100755 index d17d64f..9307797 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/NvSerializerInternal.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/NvSerializerInternal.h @@ -1,63 +1,63 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_SERIALIZER_INTERNAL_H -#define PX_SERIALIZER_INTERNAL_H - -/*! -\file -\brief NvParameterized serializer factory -*/ - - -#include "nvparameterized/NvSerializer.h" -#include "nvparameterized/NvParameterizedTraits.h" - -namespace NvParameterized -{ - -PX_PUSH_PACK_DEFAULT - -/** -\brief A factory function to create an instance of the Serializer class -\param [in] type serializer type (binary, xml, etc.) -\param [in] traits traits-object to do memory allocation, legacy version conversions, callback calls, etc. -*/ -Serializer *internalCreateSerializer(Serializer::SerializeType type, Traits *traits); - - -// Query the current platform -const SerializePlatform &GetCurrentPlatform(); -bool GetPlatform(const char *name, SerializePlatform &platform); -const char *GetPlatformName(const SerializePlatform &platform); - - -PX_POP_PACK - -} // end of namespace - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_SERIALIZER_INTERNAL_H +#define PX_SERIALIZER_INTERNAL_H + +/*! +\file +\brief NvParameterized serializer factory +*/ + + +#include "nvparameterized/NvSerializer.h" +#include "nvparameterized/NvParameterizedTraits.h" + +namespace NvParameterized +{ + +PX_PUSH_PACK_DEFAULT + +/** +\brief A factory function to create an instance of the Serializer class +\param [in] type serializer type (binary, xml, etc.) +\param [in] traits traits-object to do memory allocation, legacy version conversions, callback calls, etc. +*/ +Serializer *internalCreateSerializer(Serializer::SerializeType type, Traits *traits); + + +// Query the current platform +const SerializePlatform &GetCurrentPlatform(); +bool GetPlatform(const char *name, SerializePlatform &platform); +const char *GetPlatformName(const SerializePlatform &platform); + + +PX_POP_PACK + +} // end of namespace + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/NvTraitsInternal.h b/sdk/extensions/import/apexmodules/NvParameterized/include/NvTraitsInternal.h old mode 100644 new mode 100755 index a8d737d..38d0ee5 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/NvTraitsInternal.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/NvTraitsInternal.h @@ -1,85 +1,85 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_TRAITS_INTERNAL_H -#define PX_TRAITS_INTERNAL_H - -#include "nvparameterized/NvParameterizedTraits.h" -#include "PsString.h" - -namespace NvParameterized -{ - -PX_PUSH_PACK_DEFAULT - -#ifndef WITHOUT_APEX_SERIALIZATION -#ifdef _MSC_VER -#pragma warning(disable:4127) // conditional expression is constant -#endif -#define NV_PARAM_TRAITS_WARNING(_traits, _format, ...) do { \ - char _tmp[256]; \ - physx::shdfnd::snprintf(_tmp, sizeof(_tmp), _format, ##__VA_ARGS__); \ - _traits->traitsWarn(_tmp); \ - } while(0) - -#else -#define NV_PARAM_TRAITS_WARNING(...) -#endif - -// Determines how default converter handles included references -struct RefConversionMode -{ - enum Enum - { - // Simply move it to new object (and remove from old) - REF_CONVERT_COPY = 0, - - // Same as REF_CONVERT_COPY but also update legacy references - REF_CONVERT_UPDATE, - - // Skip references - REF_CONVERT_SKIP, - - REF_CONVERT_LAST - }; -}; - -// Specifies preferred version for element at position specified in longName -struct PrefVer -{ - const char *longName; - uint32_t ver; -}; - -// A factory function to create an instance of default conversion. -Conversion *internalCreateDefaultConversion(Traits *traits, const PrefVer *prefVers = 0, RefConversionMode::Enum refMode = RefConversionMode::REF_CONVERT_COPY); - -PX_POP_PACK - -} - +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_TRAITS_INTERNAL_H +#define PX_TRAITS_INTERNAL_H + +#include "nvparameterized/NvParameterizedTraits.h" +#include "PsString.h" + +namespace NvParameterized +{ + +PX_PUSH_PACK_DEFAULT + +#ifndef WITHOUT_APEX_SERIALIZATION +#ifdef _MSC_VER +#pragma warning(disable:4127) // conditional expression is constant +#endif +#define NV_PARAM_TRAITS_WARNING(_traits, _format, ...) do { \ + char _tmp[256]; \ + physx::shdfnd::snprintf(_tmp, sizeof(_tmp), _format, ##__VA_ARGS__); \ + _traits->traitsWarn(_tmp); \ + } while(0) + +#else +#define NV_PARAM_TRAITS_WARNING(...) +#endif + +// Determines how default converter handles included references +struct RefConversionMode +{ + enum Enum + { + // Simply move it to new object (and remove from old) + REF_CONVERT_COPY = 0, + + // Same as REF_CONVERT_COPY but also update legacy references + REF_CONVERT_UPDATE, + + // Skip references + REF_CONVERT_SKIP, + + REF_CONVERT_LAST + }; +}; + +// Specifies preferred version for element at position specified in longName +struct PrefVer +{ + const char *longName; + uint32_t ver; +}; + +// A factory function to create an instance of default conversion. +Conversion *internalCreateDefaultConversion(Traits *traits, const PrefVer *prefVers = 0, RefConversionMode::Enum refMode = RefConversionMode::REF_CONVERT_COPY); + +PX_POP_PACK + +} + #endif \ No newline at end of file diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.h b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.h old mode 100644 new mode 100755 index 58f4f6f..d8000f0 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.h @@ -1,135 +1,135 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PLATFORM_ABI_H_ -#define PLATFORM_ABI_H_ - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "BinaryHelper.h" -#include "nvparameterized/NvSerializer.h" - -namespace NvParameterized -{ - -//Describes platform ABI (endian, alignment, etc.) -struct PlatformABI -{ - enum Endian - { - LITTLE, - BIG - }; - - Endian endian; - - //Sizes of basic types - struct - { - uint32_t Char, - Bool, - pointer, - real; - } sizes; - - //Alignments of basic types - struct - { - uint32_t Char, - Bool, - pointer, - real, - i8, - i16, - i32, - i64, - f32, - f64; - } aligns; - - //Does child class reuse tail padding of parent? (google for "overlaying tail padding") - bool doReuseParentPadding; - - //Are empty base classes eliminated? (google for "empty base class optimization") - //We may need this in future - bool doEbo; - - //Get ABI of platform - static Serializer::ErrorType GetPredefinedABI(const SerializePlatform &platform, PlatformABI ¶ms); - - //Get alignment of (complex) NvParameterized data type - uint32_t getAlignment(const Definition *pd) const; - - //Get padding of (complex) NvParameterized data type - uint32_t getPadding(const Definition *pd) const; - - //Get size of (complex) NvParameterized data type - uint32_t getSize(const Definition *pd) const; - - //Helper function which calculates aligned value - PX_INLINE static uint32_t align(uint32_t len, uint32_t border); - - //Verifying that platforms are going to work with our serializer - PX_INLINE bool isNormal() const; - static bool VerifyCurrentPlatform(); - - //Alignment of metadata table entry in metadata section - //TODO: find better place for this - PX_INLINE uint32_t getMetaEntryAlignment() const; - - //Alignment of metadata info in metadata section - //TODO: find better place for this - PX_INLINE uint32_t getMetaInfoAlignment() const; - - //Alignment of hint in metadata section - //TODO: find better place for this - PX_INLINE uint32_t getHintAlignment() const; - - //Alignment of hint value (union of uint32_t, uint64_t, const char *) in metadata section - //TODO: find better place for this - PX_INLINE uint32_t getHintValueAlignment() const; - - //Size of hint value (union of uint32_t, uint64_t, const char *) in metadata section - //TODO: find better place for this - PX_INLINE uint32_t getHintValueSize() const; - - //Template for getting target alignment of T - template PX_INLINE uint32_t getAlignment() const; - - //Template for getting target size of T - template PX_INLINE uint32_t getSize() const; - -private: - uint32_t getNatAlignment(const Definition *pd) const; -}; - -#include "PlatformABI.inl" - -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PLATFORM_ABI_H_ +#define PLATFORM_ABI_H_ + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "BinaryHelper.h" +#include "nvparameterized/NvSerializer.h" + +namespace NvParameterized +{ + +//Describes platform ABI (endian, alignment, etc.) +struct PlatformABI +{ + enum Endian + { + LITTLE, + BIG + }; + + Endian endian; + + //Sizes of basic types + struct + { + uint32_t Char, + Bool, + pointer, + real; + } sizes; + + //Alignments of basic types + struct + { + uint32_t Char, + Bool, + pointer, + real, + i8, + i16, + i32, + i64, + f32, + f64; + } aligns; + + //Does child class reuse tail padding of parent? (google for "overlaying tail padding") + bool doReuseParentPadding; + + //Are empty base classes eliminated? (google for "empty base class optimization") + //We may need this in future + bool doEbo; + + //Get ABI of platform + static Serializer::ErrorType GetPredefinedABI(const SerializePlatform &platform, PlatformABI ¶ms); + + //Get alignment of (complex) NvParameterized data type + uint32_t getAlignment(const Definition *pd) const; + + //Get padding of (complex) NvParameterized data type + uint32_t getPadding(const Definition *pd) const; + + //Get size of (complex) NvParameterized data type + uint32_t getSize(const Definition *pd) const; + + //Helper function which calculates aligned value + PX_INLINE static uint32_t align(uint32_t len, uint32_t border); + + //Verifying that platforms are going to work with our serializer + PX_INLINE bool isNormal() const; + static bool VerifyCurrentPlatform(); + + //Alignment of metadata table entry in metadata section + //TODO: find better place for this + PX_INLINE uint32_t getMetaEntryAlignment() const; + + //Alignment of metadata info in metadata section + //TODO: find better place for this + PX_INLINE uint32_t getMetaInfoAlignment() const; + + //Alignment of hint in metadata section + //TODO: find better place for this + PX_INLINE uint32_t getHintAlignment() const; + + //Alignment of hint value (union of uint32_t, uint64_t, const char *) in metadata section + //TODO: find better place for this + PX_INLINE uint32_t getHintValueAlignment() const; + + //Size of hint value (union of uint32_t, uint64_t, const char *) in metadata section + //TODO: find better place for this + PX_INLINE uint32_t getHintValueSize() const; + + //Template for getting target alignment of T + template PX_INLINE uint32_t getAlignment() const; + + //Template for getting target size of T + template PX_INLINE uint32_t getSize() const; + +private: + uint32_t getNatAlignment(const Definition *pd) const; +}; + +#include "PlatformABI.inl" + +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.inl b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.inl old mode 100644 new mode 100755 index 04fe9ac..aa190ba --- a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.inl +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformABI.inl @@ -1,267 +1,267 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -PX_INLINE uint32_t PlatformABI::align(uint32_t len, uint32_t border) -{ - uint32_t n = (len + border - 1) / border; - return n * border; -} - -PX_INLINE bool PlatformABI::isNormal() const -{ - return 1 == sizes.Char && 1 == sizes.Bool //Wide (> 1) bytes not supported - && 4 == sizes.real //Some code relies on short float (float) - && ( 4 == sizes.pointer || 8 == sizes.pointer ); //Some code relies on pointers being either 32- or 64-bit -} - -PX_INLINE uint32_t PlatformABI::getMetaEntryAlignment() const -{ - return physx::PxMax(aligns.i32, aligns.pointer); -} - -PX_INLINE uint32_t PlatformABI::getMetaInfoAlignment() const -{ - return NvMax3(getHintAlignment(), aligns.i32, aligns.pointer); -} - -PX_INLINE uint32_t PlatformABI::getHintAlignment() const -{ - return physx::PxMax(aligns.i32, getHintValueAlignment()); -} - -PX_INLINE uint32_t PlatformABI::getHintValueAlignment() const -{ - return NvMax3(aligns.pointer, aligns.i64, aligns.f64); -} - -PX_INLINE uint32_t PlatformABI::getHintValueSize() const -{ - return align(8, getHintValueAlignment()); //Size of union = aligned size of maximum element -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.Bool; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.i8; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.i16; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.i32; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.i64; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return getAlignment(); -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return getAlignment(); -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return getAlignment(); -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return getAlignment(); -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.f32; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.f64; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.pointer; -} - -template <> PX_INLINE uint32_t PlatformABI::getAlignment() const -{ - return aligns.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return sizes.Bool; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 1; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 2; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 4; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 8; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return getSize(); -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return getSize(); -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return getSize(); -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return getSize(); -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 4; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 8; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 2 * sizes.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 3 * sizes.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 4 * sizes.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 4 * sizes.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 9 * sizes.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 16 * sizes.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 6 * sizes.real; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return sizes.pointer; -} - -template <> PX_INLINE uint32_t PlatformABI::getSize() const -{ - return 7 * sizes.real; -} +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +PX_INLINE uint32_t PlatformABI::align(uint32_t len, uint32_t border) +{ + uint32_t n = (len + border - 1) / border; + return n * border; +} + +PX_INLINE bool PlatformABI::isNormal() const +{ + return 1 == sizes.Char && 1 == sizes.Bool //Wide (> 1) bytes not supported + && 4 == sizes.real //Some code relies on short float (float) + && ( 4 == sizes.pointer || 8 == sizes.pointer ); //Some code relies on pointers being either 32- or 64-bit +} + +PX_INLINE uint32_t PlatformABI::getMetaEntryAlignment() const +{ + return physx::PxMax(aligns.i32, aligns.pointer); +} + +PX_INLINE uint32_t PlatformABI::getMetaInfoAlignment() const +{ + return NvMax3(getHintAlignment(), aligns.i32, aligns.pointer); +} + +PX_INLINE uint32_t PlatformABI::getHintAlignment() const +{ + return physx::PxMax(aligns.i32, getHintValueAlignment()); +} + +PX_INLINE uint32_t PlatformABI::getHintValueAlignment() const +{ + return NvMax3(aligns.pointer, aligns.i64, aligns.f64); +} + +PX_INLINE uint32_t PlatformABI::getHintValueSize() const +{ + return align(8, getHintValueAlignment()); //Size of union = aligned size of maximum element +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.Bool; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.i8; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.i16; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.i32; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.i64; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return getAlignment(); +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return getAlignment(); +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return getAlignment(); +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return getAlignment(); +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.f32; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.f64; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.pointer; +} + +template <> PX_INLINE uint32_t PlatformABI::getAlignment() const +{ + return aligns.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return sizes.Bool; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 1; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 2; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 4; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 8; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return getSize(); +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return getSize(); +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return getSize(); +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return getSize(); +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 4; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 8; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 2 * sizes.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 3 * sizes.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 4 * sizes.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 4 * sizes.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 9 * sizes.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 16 * sizes.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 6 * sizes.real; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return sizes.pointer; +} + +template <> PX_INLINE uint32_t PlatformABI::getSize() const +{ + return 7 * sizes.real; +} diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.h b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.h old mode 100644 new mode 100755 index 45af2a3..0ce7077 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.h @@ -1,115 +1,115 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PLATFORM_INPUT_STREAM_H_ -#define PLATFORM_INPUT_STREAM_H_ - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "PlatformStream.h" -#include "ApbDefinitions.h" - -namespace NvParameterized -{ - -//ABI-aware input stream -class PlatformInputStream: public PlatformStream -{ - physx::PxFileBuf &mStream; - physx::shdfnd::Array mPos; - uint32_t mStartPos; //This is necessary to handle NvParameterized streams starting in the middle of other files - - PlatformInputStream(const PlatformInputStream &); //Don't - void operator =(const PlatformInputStream &); //Don't - -public: - PlatformInputStream(physx::PxFileBuf &stream, const PlatformABI &targetParams, Traits *traits); - - Serializer::ErrorType skipBytes(uint32_t nbytes); - - Serializer::ErrorType pushPos(uint32_t newPos); - - void popPos(); - - uint32_t getPos() const; - - //Read string stored at given offset - //TODO: this could much faster if we loaded whole dictionary in the beginning - Serializer::ErrorType readString(uint32_t off, const char *&s); - - //Deserialize header of NvParameterized object (see wiki for details) - Serializer::ErrorType readObjHeader(ObjHeader &hdr); - - //Deserialize primitive type - template PX_INLINE Serializer::ErrorType read(T &x, bool doAlign = true); - - //Deserialize array of primitive type (slow path) - template PX_INLINE Serializer::ErrorType readSimpleArraySlow(Handle &handle); - - //Deserialize array of structs of primitive type - Serializer::ErrorType readSimpleStructArray(Handle &handle); - - //Deserialize array of primitive type - template PX_INLINE Serializer::ErrorType readSimpleArray(Handle &handle); - - //Align current offset according to supplied alignment and padding - void beginStruct(uint32_t align_, uint32_t pad_); - - //Align current offset according to supplied alignment (padding = alignment) - void beginStruct(uint32_t align_); - - //Align current offset according to supplied DataType - void beginStruct(const Definition *pd); - - //Insert tail padding - void closeStruct(); - - //beginStruct for DummyStringStruct - void beginString(); - - //closeStruct for DummyStringStruct - void closeString(); - - //beginStruct for arrays - void beginArray(const Definition *pd); - - //closeStruct for arrays - void closeArray(); - - //Align offset to be n*border - void align(uint32_t border); - - //Read value of pointer (offset from start of file) - Serializer::ErrorType readPtr(uint32_t &val); -}; - -#include "PlatformInputStream.inl" - -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PLATFORM_INPUT_STREAM_H_ +#define PLATFORM_INPUT_STREAM_H_ + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "PlatformStream.h" +#include "ApbDefinitions.h" + +namespace NvParameterized +{ + +//ABI-aware input stream +class PlatformInputStream: public PlatformStream +{ + physx::PxFileBuf &mStream; + physx::shdfnd::Array mPos; + uint32_t mStartPos; //This is necessary to handle NvParameterized streams starting in the middle of other files + + PlatformInputStream(const PlatformInputStream &); //Don't + void operator =(const PlatformInputStream &); //Don't + +public: + PlatformInputStream(physx::PxFileBuf &stream, const PlatformABI &targetParams, Traits *traits); + + Serializer::ErrorType skipBytes(uint32_t nbytes); + + Serializer::ErrorType pushPos(uint32_t newPos); + + void popPos(); + + uint32_t getPos() const; + + //Read string stored at given offset + //TODO: this could much faster if we loaded whole dictionary in the beginning + Serializer::ErrorType readString(uint32_t off, const char *&s); + + //Deserialize header of NvParameterized object (see wiki for details) + Serializer::ErrorType readObjHeader(ObjHeader &hdr); + + //Deserialize primitive type + template PX_INLINE Serializer::ErrorType read(T &x, bool doAlign = true); + + //Deserialize array of primitive type (slow path) + template PX_INLINE Serializer::ErrorType readSimpleArraySlow(Handle &handle); + + //Deserialize array of structs of primitive type + Serializer::ErrorType readSimpleStructArray(Handle &handle); + + //Deserialize array of primitive type + template PX_INLINE Serializer::ErrorType readSimpleArray(Handle &handle); + + //Align current offset according to supplied alignment and padding + void beginStruct(uint32_t align_, uint32_t pad_); + + //Align current offset according to supplied alignment (padding = alignment) + void beginStruct(uint32_t align_); + + //Align current offset according to supplied DataType + void beginStruct(const Definition *pd); + + //Insert tail padding + void closeStruct(); + + //beginStruct for DummyStringStruct + void beginString(); + + //closeStruct for DummyStringStruct + void closeString(); + + //beginStruct for arrays + void beginArray(const Definition *pd); + + //closeStruct for arrays + void closeArray(); + + //Align offset to be n*border + void align(uint32_t border); + + //Read value of pointer (offset from start of file) + Serializer::ErrorType readPtr(uint32_t &val); +}; + +#include "PlatformInputStream.inl" + +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.inl b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.inl old mode 100644 new mode 100755 index 8c3605a..b6fc9e5 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.inl +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformInputStream.inl @@ -1,117 +1,117 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -template PX_INLINE Serializer::ErrorType PlatformInputStream::read(T &x, bool doAlign) -{ - if( doAlign ) - align(mTargetParams.getAlignment()); - - if( mCurParams.getSize() != mTargetParams.getSize() ) - { - PX_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_PLATFORM; - } - - mStream.read(&x, sizeof(T)); - - if( mCurParams.endian != mTargetParams.endian ) - SwapBytes((char *)&x, sizeof(T), GetDataType::value); - - return Serializer::ERROR_NONE; -} - -//Deserialize array of primitive type (slow path) -template PX_INLINE Serializer::ErrorType PlatformInputStream::readSimpleArraySlow(Handle &handle) -{ - int32_t n; - handle.getArraySize(n); - - align(mTargetParams.getAlignment()); - - for(int32_t i = 0; i < n; ++i) - { - handle.set(i); - T val; - NV_ERR_CHECK_RETURN( read(val) ); - handle.setParam(val); - - handle.popIndex(); - } - - return Serializer::ERROR_NONE; -} - -template PX_INLINE Serializer::ErrorType PlatformInputStream::readSimpleArray(Handle &handle) -{ - if( mTargetParams.getSize() == mCurParams.getSize() - && mTargetParams.getSize() >= mTargetParams.getAlignment() - && mCurParams.getSize() >= mCurParams.getAlignment() ) //No gaps between array elements on both platforms - { - //Fast path - - int32_t n; - handle.getArraySize(n); - - align(mTargetParams.getAlignment()); - - const int32_t elemSize = (int32_t)sizeof(T); - - if( mStream.tellRead() + elemSize * n >= mStream.getFileLength() ) - { - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_INTERNAL_PTR; - } - - PX_ASSERT(elemSize * n >= 0); - char *p = (char *)mTraits->alloc(static_cast(elemSize * n)); - mStream.read(p, static_cast(elemSize * n)); - - if( mCurParams.endian != mTargetParams.endian ) - { - char *elem = p; - for(int32_t i = 0; i < n; ++i) - { - SwapBytes(elem, elemSize, GetDataType::value); - elem += elemSize; - } - } - - handle.setParamArray((const T *)p, n); - - mTraits->free(p); - } - else - { - return readSimpleArraySlow(handle); - } - - return Serializer::ERROR_NONE; -} - +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +template PX_INLINE Serializer::ErrorType PlatformInputStream::read(T &x, bool doAlign) +{ + if( doAlign ) + align(mTargetParams.getAlignment()); + + if( mCurParams.getSize() != mTargetParams.getSize() ) + { + PX_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_PLATFORM; + } + + mStream.read(&x, sizeof(T)); + + if( mCurParams.endian != mTargetParams.endian ) + SwapBytes((char *)&x, sizeof(T), GetDataType::value); + + return Serializer::ERROR_NONE; +} + +//Deserialize array of primitive type (slow path) +template PX_INLINE Serializer::ErrorType PlatformInputStream::readSimpleArraySlow(Handle &handle) +{ + int32_t n; + handle.getArraySize(n); + + align(mTargetParams.getAlignment()); + + for(int32_t i = 0; i < n; ++i) + { + handle.set(i); + T val; + NV_ERR_CHECK_RETURN( read(val) ); + handle.setParam(val); + + handle.popIndex(); + } + + return Serializer::ERROR_NONE; +} + +template PX_INLINE Serializer::ErrorType PlatformInputStream::readSimpleArray(Handle &handle) +{ + if( mTargetParams.getSize() == mCurParams.getSize() + && mTargetParams.getSize() >= mTargetParams.getAlignment() + && mCurParams.getSize() >= mCurParams.getAlignment() ) //No gaps between array elements on both platforms + { + //Fast path + + int32_t n; + handle.getArraySize(n); + + align(mTargetParams.getAlignment()); + + const int32_t elemSize = (int32_t)sizeof(T); + + if( mStream.tellRead() + elemSize * n >= mStream.getFileLength() ) + { + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_INTERNAL_PTR; + } + + PX_ASSERT(elemSize * n >= 0); + char *p = (char *)mTraits->alloc(static_cast(elemSize * n)); + mStream.read(p, static_cast(elemSize * n)); + + if( mCurParams.endian != mTargetParams.endian ) + { + char *elem = p; + for(int32_t i = 0; i < n; ++i) + { + SwapBytes(elem, elemSize, GetDataType::value); + elem += elemSize; + } + } + + handle.setParamArray((const T *)p, n); + + mTraits->free(p); + } + else + { + return readSimpleArraySlow(handle); + } + + return Serializer::ERROR_NONE; +} + diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.h b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.h old mode 100644 new mode 100755 index 821d7a1..18b45ef --- a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.h @@ -1,212 +1,212 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PLATFORM_OUTPUT_STREAM_H_ -#define PLATFORM_OUTPUT_STREAM_H_ - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "PlatformStream.h" -#include "ApbDefinitions.h" - -#ifndef WITHOUT_APEX_SERIALIZATION - -namespace NvParameterized -{ - -class PlatformOutputStream; - -//Info about pointed data (and its subdata) -struct Reloc -{ - RelocType type; - uint32_t ptrPos; - PlatformOutputStream *ptrData; - Traits *traits; - - Reloc(RelocType type_, uint32_t ptrPos_, const PlatformOutputStream &parent); - - Reloc(const Reloc &cinfo); - - ~Reloc(); -}; - -//Info about pointed string -struct StringReloc -{ - uint32_t ptrPos; - const char *s; - - StringReloc(uint32_t ptrPos_, const char *s_): ptrPos(ptrPos_), s(s_) {} -}; - -//Info about reloc which was already merged -struct MergedReloc -{ - uint32_t ptrPos; - uint32_t targetPos; - RelocType type; - bool isExtern; -}; - -//ABI-aware output stream -class PlatformOutputStream: public PlatformStream -{ - void operator = (const PlatformOutputStream &); //Don't - - friend struct Reloc; -public: - PlatformOutputStream(const PlatformABI &targetParams, Traits *traits, Dictionary &dict_); - - //Array's copy constructor is broken so we implement it by hand - PlatformOutputStream(const PlatformOutputStream &s); - -#ifndef NDEBUG - void dump() const; -#endif - - PX_INLINE StringBuf &getData() { return data; } - - uint32_t size() const { return data.size(); } - - //Update uint32_t at given position - void storeU32At(uint32_t x, uint32_t i); - - uint32_t storeString(const char *s); - - //Serialize raw bytes - uint32_t storeBytes(const char *s, uint32_t n); - - //Serialize value of primitive type with proper alignment - //(this is overriden for bools below) - template PX_INLINE uint32_t storeSimple(T x); - - PX_INLINE uint32_t storeSimple(float* x, uint32_t size); - - //Serialize array of primitive type with proper alignment (slow path) - template PX_INLINE int32_t storeSimpleArraySlow(Handle &handle); - - //Serialize array of structs of primitive types with proper alignment - uint32_t storeSimpleStructArray(Handle &handle); - - //Serialize array of primitive type with proper alignment - template PX_INLINE uint32_t storeSimpleArray(Handle &handle); - - //Serialize header of NvParameterized object (see wiki for details) - uint32_t storeObjHeader(const NvParameterized::Interface &obj, bool isIncluded = true); - - //Serialize NvParameters-part of NvParameterized object - uint32_t beginObject(const NvParameterized::Interface &obj, bool /*isRoot*/, const Definition *pd); - - //Insert tail padding bytes for NvParameterized object - void closeObject() { closeStruct(); } - - //Align current offset according to supplied alignment and padding - uint32_t beginStruct(uint32_t align_, uint32_t pad_); - - //Align current offset according to supplied alignment (padding = alignment) - uint32_t beginStruct(uint32_t align_); - - //Align current offset according to supplied DataType - uint32_t beginStruct(const Definition *pd); - - //Insert tail padding - void closeStruct(); - - //beginStruct for DummyStringStruct - uint32_t beginString(); - - //closeStruct for DummyStringStruct - void closeString(); - - //beginStruct for arrays - uint32_t beginArray(const Definition *pd); - - //beginStruct for arrays - uint32_t beginArray(uint32_t align_); - - //closeStruct for arrays - void closeArray(); - - void skipBytes(uint32_t nbytes); - - //Align offset to be n*border - void align(uint32_t border); - - //Align offset to be n * alignment of T - template PX_INLINE void align(); - - //Add data (including relocations) from another stream - uint32_t merge(const PlatformOutputStream &mergee); - - //Merge pointed data (including strings) thus flattening the stream - void flatten(); - - //Create relocation table - uint32_t writeRelocs(); - - //Serialize dictionary data - void mergeDict(); - - uint32_t storeNullPtr(); - - Reloc &storePtr(RelocType type, const Definition *pd); - - Reloc &storePtr(RelocType type, uint32_t align); - - void storeStringPtr(const char *s); - - PX_INLINE uint32_t alignment() const { return mTotalAlign; } - - PX_INLINE void setAlignment(uint32_t newAlign) { mTotalAlign = newAlign; } - -private: - - //Byte stream - StringBuf data; - - //Generic relocations - physx::shdfnd::Array mRelocs; - - //String relocations - physx::shdfnd::Array mStrings; - - //Keep info about relocations after flattening - physx::shdfnd::Array mMerges; - - Dictionary &dict; - - uint32_t mTotalAlign; -}; - -#include "PlatformOutputStream.inl" - -} - -#endif -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PLATFORM_OUTPUT_STREAM_H_ +#define PLATFORM_OUTPUT_STREAM_H_ + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "PlatformStream.h" +#include "ApbDefinitions.h" + +#ifndef WITHOUT_APEX_SERIALIZATION + +namespace NvParameterized +{ + +class PlatformOutputStream; + +//Info about pointed data (and its subdata) +struct Reloc +{ + RelocType type; + uint32_t ptrPos; + PlatformOutputStream *ptrData; + Traits *traits; + + Reloc(RelocType type_, uint32_t ptrPos_, const PlatformOutputStream &parent); + + Reloc(const Reloc &cinfo); + + ~Reloc(); +}; + +//Info about pointed string +struct StringReloc +{ + uint32_t ptrPos; + const char *s; + + StringReloc(uint32_t ptrPos_, const char *s_): ptrPos(ptrPos_), s(s_) {} +}; + +//Info about reloc which was already merged +struct MergedReloc +{ + uint32_t ptrPos; + uint32_t targetPos; + RelocType type; + bool isExtern; +}; + +//ABI-aware output stream +class PlatformOutputStream: public PlatformStream +{ + void operator = (const PlatformOutputStream &); //Don't + + friend struct Reloc; +public: + PlatformOutputStream(const PlatformABI &targetParams, Traits *traits, Dictionary &dict_); + + //Array's copy constructor is broken so we implement it by hand + PlatformOutputStream(const PlatformOutputStream &s); + +#ifndef NDEBUG + void dump() const; +#endif + + PX_INLINE StringBuf &getData() { return data; } + + uint32_t size() const { return data.size(); } + + //Update uint32_t at given position + void storeU32At(uint32_t x, uint32_t i); + + uint32_t storeString(const char *s); + + //Serialize raw bytes + uint32_t storeBytes(const char *s, uint32_t n); + + //Serialize value of primitive type with proper alignment + //(this is overriden for bools below) + template PX_INLINE uint32_t storeSimple(T x); + + PX_INLINE uint32_t storeSimple(float* x, uint32_t size); + + //Serialize array of primitive type with proper alignment (slow path) + template PX_INLINE int32_t storeSimpleArraySlow(Handle &handle); + + //Serialize array of structs of primitive types with proper alignment + uint32_t storeSimpleStructArray(Handle &handle); + + //Serialize array of primitive type with proper alignment + template PX_INLINE uint32_t storeSimpleArray(Handle &handle); + + //Serialize header of NvParameterized object (see wiki for details) + uint32_t storeObjHeader(const NvParameterized::Interface &obj, bool isIncluded = true); + + //Serialize NvParameters-part of NvParameterized object + uint32_t beginObject(const NvParameterized::Interface &obj, bool /*isRoot*/, const Definition *pd); + + //Insert tail padding bytes for NvParameterized object + void closeObject() { closeStruct(); } + + //Align current offset according to supplied alignment and padding + uint32_t beginStruct(uint32_t align_, uint32_t pad_); + + //Align current offset according to supplied alignment (padding = alignment) + uint32_t beginStruct(uint32_t align_); + + //Align current offset according to supplied DataType + uint32_t beginStruct(const Definition *pd); + + //Insert tail padding + void closeStruct(); + + //beginStruct for DummyStringStruct + uint32_t beginString(); + + //closeStruct for DummyStringStruct + void closeString(); + + //beginStruct for arrays + uint32_t beginArray(const Definition *pd); + + //beginStruct for arrays + uint32_t beginArray(uint32_t align_); + + //closeStruct for arrays + void closeArray(); + + void skipBytes(uint32_t nbytes); + + //Align offset to be n*border + void align(uint32_t border); + + //Align offset to be n * alignment of T + template PX_INLINE void align(); + + //Add data (including relocations) from another stream + uint32_t merge(const PlatformOutputStream &mergee); + + //Merge pointed data (including strings) thus flattening the stream + void flatten(); + + //Create relocation table + uint32_t writeRelocs(); + + //Serialize dictionary data + void mergeDict(); + + uint32_t storeNullPtr(); + + Reloc &storePtr(RelocType type, const Definition *pd); + + Reloc &storePtr(RelocType type, uint32_t align); + + void storeStringPtr(const char *s); + + PX_INLINE uint32_t alignment() const { return mTotalAlign; } + + PX_INLINE void setAlignment(uint32_t newAlign) { mTotalAlign = newAlign; } + +private: + + //Byte stream + StringBuf data; + + //Generic relocations + physx::shdfnd::Array mRelocs; + + //String relocations + physx::shdfnd::Array mStrings; + + //Keep info about relocations after flattening + physx::shdfnd::Array mMerges; + + Dictionary &dict; + + uint32_t mTotalAlign; +}; + +#include "PlatformOutputStream.inl" + +} + +#endif +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.inl b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.inl old mode 100644 new mode 100755 index bdbe88e..bf71398 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.inl +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformOutputStream.inl @@ -1,138 +1,138 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -template PX_INLINE void PlatformOutputStream::align() -{ - align(mTargetParams.getAlignment()); -} - -template PX_INLINE uint32_t PlatformOutputStream::storeSimple(T x) -{ - align(mTargetParams.getAlignment()); - - uint32_t off = size(); - - data.append(x); - - char *p = getData() + off; - - //It is unsafe to call SwapBytes directly on floats (doubles, vectors, etc.) - //because values may become NaNs which will lead to all sorts of errors - if( mCurParams.endian != mTargetParams.endian ) - SwapBytes(p, sizeof(T), GetDataType::value); - - return off; -} - -PX_INLINE uint32_t PlatformOutputStream::storeSimple(float* x, uint32_t num) -{ - align(mTargetParams.getAlignment()); - - uint32_t off = size(); - - for (uint32_t k = 0; k < num; ++k) - { - data.append(x[k]); - } - - char *p = getData() + off; - - //It is unsafe to call SwapBytes directly on floats (doubles, vectors, etc.) - //because values may become NaNs which will lead to all sorts of errors - if( mCurParams.endian != mTargetParams.endian ) - SwapBytes(p, sizeof(float) * num, GetDataType::value); - - return off; -} - -template PX_INLINE int32_t PlatformOutputStream::storeSimpleArraySlow(Handle &handle) -{ - int32_t n; - handle.getArraySize(n); - - align(); - uint32_t off = size(); - - data.reserve(size() + n * physx::PxMax(mTargetParams.getAlignment(), mTargetParams.getSize())); - - for(int32_t i = 0; i < n; ++i) - { - handle.set(i); - - T val; - handle.getParam(val); - storeSimple(val); - - handle.popIndex(); - } - - int32_t offsetAsInt = static_cast(off); - PX_ASSERT(offsetAsInt >= 0); - return offsetAsInt; -} - -template PX_INLINE uint32_t PlatformOutputStream::storeSimpleArray(Handle &handle) -{ - if( TYPE_BOOL != handle.parameterDefinition()->child(0)->type() //Bools are special (see custom version of storeSimple) - && mTargetParams.getSize() == mCurParams.getSize() - && mTargetParams.getSize() >= mTargetParams.getAlignment() - && mCurParams.getSize() >= mCurParams.getAlignment() ) //No gaps between array elements on both platforms - { - //Fast path - - int32_t n; - handle.getArraySize(n); - - align(); - uint32_t off = size(); - - const int32_t elemSize = (int32_t)sizeof(T); - - skipBytes((uint32_t)(elemSize * n)); - - char *p = getData() + off; - handle.getParamArray((T *)p, n); - - if( mCurParams.endian != mTargetParams.endian ) - { - for(int32_t i = 0; i < n; ++i) - { - SwapBytes(p, elemSize, GetDataType::value); - p += elemSize; - } - } - - return off; - } - else - { - return static_cast(storeSimpleArraySlow(handle)); - } -} +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +template PX_INLINE void PlatformOutputStream::align() +{ + align(mTargetParams.getAlignment()); +} + +template PX_INLINE uint32_t PlatformOutputStream::storeSimple(T x) +{ + align(mTargetParams.getAlignment()); + + uint32_t off = size(); + + data.append(x); + + char *p = getData() + off; + + //It is unsafe to call SwapBytes directly on floats (doubles, vectors, etc.) + //because values may become NaNs which will lead to all sorts of errors + if( mCurParams.endian != mTargetParams.endian ) + SwapBytes(p, sizeof(T), GetDataType::value); + + return off; +} + +PX_INLINE uint32_t PlatformOutputStream::storeSimple(float* x, uint32_t num) +{ + align(mTargetParams.getAlignment()); + + uint32_t off = size(); + + for (uint32_t k = 0; k < num; ++k) + { + data.append(x[k]); + } + + char *p = getData() + off; + + //It is unsafe to call SwapBytes directly on floats (doubles, vectors, etc.) + //because values may become NaNs which will lead to all sorts of errors + if( mCurParams.endian != mTargetParams.endian ) + SwapBytes(p, sizeof(float) * num, GetDataType::value); + + return off; +} + +template PX_INLINE int32_t PlatformOutputStream::storeSimpleArraySlow(Handle &handle) +{ + int32_t n; + handle.getArraySize(n); + + align(); + uint32_t off = size(); + + data.reserve(size() + n * physx::PxMax(mTargetParams.getAlignment(), mTargetParams.getSize())); + + for(int32_t i = 0; i < n; ++i) + { + handle.set(i); + + T val; + handle.getParam(val); + storeSimple(val); + + handle.popIndex(); + } + + int32_t offsetAsInt = static_cast(off); + PX_ASSERT(offsetAsInt >= 0); + return offsetAsInt; +} + +template PX_INLINE uint32_t PlatformOutputStream::storeSimpleArray(Handle &handle) +{ + if( TYPE_BOOL != handle.parameterDefinition()->child(0)->type() //Bools are special (see custom version of storeSimple) + && mTargetParams.getSize() == mCurParams.getSize() + && mTargetParams.getSize() >= mTargetParams.getAlignment() + && mCurParams.getSize() >= mCurParams.getAlignment() ) //No gaps between array elements on both platforms + { + //Fast path + + int32_t n; + handle.getArraySize(n); + + align(); + uint32_t off = size(); + + const int32_t elemSize = (int32_t)sizeof(T); + + skipBytes((uint32_t)(elemSize * n)); + + char *p = getData() + off; + handle.getParamArray((T *)p, n); + + if( mCurParams.endian != mTargetParams.endian ) + { + for(int32_t i = 0; i < n; ++i) + { + SwapBytes(p, elemSize, GetDataType::value); + p += elemSize; + } + } + + return off; + } + else + { + return static_cast(storeSimpleArraySlow(handle)); + } +} diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformStream.h b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformStream.h old mode 100644 new mode 100755 index c17bda6..a2bcd94 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformStream.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/PlatformStream.h @@ -1,151 +1,151 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PLATFORM_STREAM_H_ -#define PLATFORM_STREAM_H_ - -#include - -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvSerializer.h" -#include "NvSerializerInternal.h" -#include "PlatformABI.h" - -namespace NvParameterized -{ - -// Base class for ABI-aware streams - -// TODO: -// PlatformInput/OutputStream should probably be visitors - -class PlatformStream -{ - void operator =(const PlatformStream &); //Don't - -protected: - Traits *mTraits; - - PlatformABI mTargetParams, mCurParams; - - struct Agregate - { - enum Type - { - STRUCT, - ARRAY - }; - - Type type; - uint32_t align; - - Agregate(Type t, uint32_t a): type(t), align(a) {} - }; - - //Agregate stack holds information about structs and their nesting (for automatic insertion of tail pad) - physx::shdfnd::Array mStack; - -public: - PlatformStream(const PlatformABI &targetParams, Traits *traits) - : mTraits(traits), - mTargetParams(targetParams), - mStack(Traits::Allocator(traits)) - { - // TODO: constructors should not fail... - if( Serializer::ERROR_NONE != PlatformABI::GetPredefinedABI(GetCurrentPlatform(), mCurParams) ) - { - PX_ALWAYS_ASSERT(); - return; - } - } - - //Array's copy constructor is broken so we implement it by hand - PlatformStream(const PlatformStream &s) - : mTraits(s.mTraits), - mTargetParams(s.mTargetParams), - mCurParams(s.mCurParams), - mStack(Traits::Allocator(s.mTraits)) - { - mStack.reserve(s.mStack.size()); - for(uint32_t i = 0; i < s.mStack.size(); ++i) - mStack.pushBack(s.mStack[i]); - } - - void dump() const - { - printf("Dumping PlatformStream at %p:\n", this); - } - - const PlatformABI &getTargetABI() const - { - return mTargetParams; - } - - uint32_t getTargetSize(const Definition *pd) const - { - return mTargetParams.getSize(pd); - } - - uint32_t getTargetAlignment(const Definition *pd) const - { - return mTargetParams.getAlignment(pd); - } - - uint32_t getTargetPadding(const Definition *pd) const - { - return mTargetParams.getPadding(pd); - } - - //Align offset to be n*border - PX_INLINE uint32_t getAlign(uint32_t off, uint32_t border, bool &isAligned) const - { - PX_ASSERT(border <= 128); - - //Array members are not aligned - //See http://www.gamasutra.com/view/feature/3975/data_alignment_part_2_objects_on_.php - if( !mStack.empty() && Agregate::ARRAY == mStack.back().type ) - { - isAligned = false; - return off; - } - - isAligned = true; - const uint32_t mask = border - 1; - return (off + mask) & ~mask; - } - - //Align offset to be n*border - PX_INLINE uint32_t getAlign(uint32_t off, uint32_t border) const - { - bool tmp; - return getAlign(off, border, tmp); - } -}; - -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PLATFORM_STREAM_H_ +#define PLATFORM_STREAM_H_ + +#include + +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvSerializer.h" +#include "NvSerializerInternal.h" +#include "PlatformABI.h" + +namespace NvParameterized +{ + +// Base class for ABI-aware streams + +// TODO: +// PlatformInput/OutputStream should probably be visitors + +class PlatformStream +{ + void operator =(const PlatformStream &); //Don't + +protected: + Traits *mTraits; + + PlatformABI mTargetParams, mCurParams; + + struct Agregate + { + enum Type + { + STRUCT, + ARRAY + }; + + Type type; + uint32_t align; + + Agregate(Type t, uint32_t a): type(t), align(a) {} + }; + + //Agregate stack holds information about structs and their nesting (for automatic insertion of tail pad) + physx::shdfnd::Array mStack; + +public: + PlatformStream(const PlatformABI &targetParams, Traits *traits) + : mTraits(traits), + mTargetParams(targetParams), + mStack(Traits::Allocator(traits)) + { + // TODO: constructors should not fail... + if( Serializer::ERROR_NONE != PlatformABI::GetPredefinedABI(GetCurrentPlatform(), mCurParams) ) + { + PX_ALWAYS_ASSERT(); + return; + } + } + + //Array's copy constructor is broken so we implement it by hand + PlatformStream(const PlatformStream &s) + : mTraits(s.mTraits), + mTargetParams(s.mTargetParams), + mCurParams(s.mCurParams), + mStack(Traits::Allocator(s.mTraits)) + { + mStack.reserve(s.mStack.size()); + for(uint32_t i = 0; i < s.mStack.size(); ++i) + mStack.pushBack(s.mStack[i]); + } + + void dump() const + { + printf("Dumping PlatformStream at %p:\n", this); + } + + const PlatformABI &getTargetABI() const + { + return mTargetParams; + } + + uint32_t getTargetSize(const Definition *pd) const + { + return mTargetParams.getSize(pd); + } + + uint32_t getTargetAlignment(const Definition *pd) const + { + return mTargetParams.getAlignment(pd); + } + + uint32_t getTargetPadding(const Definition *pd) const + { + return mTargetParams.getPadding(pd); + } + + //Align offset to be n*border + PX_INLINE uint32_t getAlign(uint32_t off, uint32_t border, bool &isAligned) const + { + PX_ASSERT(border <= 128); + + //Array members are not aligned + //See http://www.gamasutra.com/view/feature/3975/data_alignment_part_2_objects_on_.php + if( !mStack.empty() && Agregate::ARRAY == mStack.back().type ) + { + isAligned = false; + return off; + } + + isAligned = true; + const uint32_t mask = border - 1; + return (off + mask) & ~mask; + } + + //Align offset to be n*border + PX_INLINE uint32_t getAlign(uint32_t off, uint32_t border) const + { + bool tmp; + return getAlign(off, border, tmp); + } +}; + +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/SerializerCommon.h b/sdk/extensions/import/apexmodules/NvParameterized/include/SerializerCommon.h old mode 100644 new mode 100755 index 59f4f98..5dda48c --- a/sdk/extensions/import/apexmodules/NvParameterized/include/SerializerCommon.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/SerializerCommon.h @@ -1,172 +1,172 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef SERIALIZER_COMMON_H -#define SERIALIZER_COMMON_H - -#include // FILE - -#include "PxAssert.h" - -#include "PsArray.h" -#include "PsHashMap.h" - -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "nvparameterized/NvSerializer.h" - -#define ENABLE_DEBUG_ASSERTS 1 - -#if ENABLE_DEBUG_ASSERTS -# define DEBUG_ASSERT(x) PX_ASSERT(x) -#else -# define DEBUG_ASSERT(x) -#endif -#define DEBUG_ALWAYS_ASSERT() DEBUG_ASSERT(0) - -#define NV_ERR_CHECK_RETURN(x) { Serializer::ErrorType err = x; if( Serializer::ERROR_NONE != err ) { DEBUG_ALWAYS_ASSERT(); return err; } } -#define NV_BOOL_ERR_CHECK_RETURN(x, err) { if( !(x) ) { DEBUG_ALWAYS_ASSERT(); return err; } } -#define NV_PARAM_ERR_CHECK_RETURN(x, err) { if( NvParameterized::ERROR_NONE != (NvParameterized::ErrorType)(x) ) { DEBUG_ALWAYS_ASSERT(); return err; } } - -#define NV_ERR_CHECK_WARN_RETURN(x, ...) { \ - Serializer::ErrorType err = x; \ - if( Serializer::ERROR_NONE != err ) { \ - NV_PARAM_TRAITS_WARNING(mTraits, ##__VA_ARGS__); \ - DEBUG_ALWAYS_ASSERT(); \ - return err; \ - } \ -} - -#define NV_BOOL_ERR_CHECK_WARN_RETURN(x, err, ...) { \ - if( !(x) ) { \ - NV_PARAM_TRAITS_WARNING(mTraits, ##__VA_ARGS__); \ - DEBUG_ALWAYS_ASSERT(); \ - return err; \ - } \ -} - -#define NV_PARAM_ERR_CHECK_WARN_RETURN(x, err, ...) { \ - if( NvParameterized::ERROR_NONE != (NvParameterized::ErrorType)(x) ) \ - { \ - NV_PARAM_TRAITS_WARNING(mTraits, ##__VA_ARGS__); \ - DEBUG_ALWAYS_ASSERT(); \ - return err; \ - } \ -} - -namespace NvParameterized -{ - -bool UpgradeLegacyObjects(Serializer::DeserializedData &data, bool &isUpdated, Traits *t); -Interface *UpgradeObject(Interface &obj, bool &isUpdated, Traits *t); - -//This is used for releasing resources (I wish we had generic smart ptrs...) -class Releaser -{ - FILE *mFile; - - void *mBuf; - Traits *mTraits; - - Interface *mObj; - - Releaser(const Releaser &) {} - -public: - - Releaser() - { - reset(); - } - - Releaser(void *buf, Traits *traits) - { - reset(buf, traits); - } - - Releaser(FILE *file) - { - reset(file); - } - - Releaser(Interface *obj) - { - reset(obj); - } - - void reset() - { - mFile = 0; - mBuf = 0; - mTraits = 0; - mObj = 0; - } - - void reset(Interface *obj) - { - reset(); - - mObj = obj; - } - - void reset(FILE *file) - { - reset(); - - mFile = file; - } - - void reset(void *buf, Traits *traits) - { - reset(); - - mBuf = buf; - mTraits = traits; - } - - ~Releaser() - { - if( mBuf ) - mTraits->free(mBuf); - - if( mFile ) - fclose(mFile); - - if( mObj ) - mObj->destroy(); - } -}; - -void *serializerMemAlloc(uint32_t size, Traits *traits); -void serializerMemFree(void *mem, Traits *traits); - -// Checksum for some classes is invalid -bool DoIgnoreChecksum(const Interface &obj); - -} // namespace NvParameterized - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef SERIALIZER_COMMON_H +#define SERIALIZER_COMMON_H + +#include // FILE + +#include "PxAssert.h" + +#include "PsArray.h" +#include "PsHashMap.h" + +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "nvparameterized/NvSerializer.h" + +#define ENABLE_DEBUG_ASSERTS 1 + +#if ENABLE_DEBUG_ASSERTS +# define DEBUG_ASSERT(x) PX_ASSERT(x) +#else +# define DEBUG_ASSERT(x) +#endif +#define DEBUG_ALWAYS_ASSERT() DEBUG_ASSERT(0) + +#define NV_ERR_CHECK_RETURN(x) { Serializer::ErrorType err = x; if( Serializer::ERROR_NONE != err ) { DEBUG_ALWAYS_ASSERT(); return err; } } +#define NV_BOOL_ERR_CHECK_RETURN(x, err) { if( !(x) ) { DEBUG_ALWAYS_ASSERT(); return err; } } +#define NV_PARAM_ERR_CHECK_RETURN(x, err) { if( NvParameterized::ERROR_NONE != (NvParameterized::ErrorType)(x) ) { DEBUG_ALWAYS_ASSERT(); return err; } } + +#define NV_ERR_CHECK_WARN_RETURN(x, ...) { \ + Serializer::ErrorType err = x; \ + if( Serializer::ERROR_NONE != err ) { \ + NV_PARAM_TRAITS_WARNING(mTraits, ##__VA_ARGS__); \ + DEBUG_ALWAYS_ASSERT(); \ + return err; \ + } \ +} + +#define NV_BOOL_ERR_CHECK_WARN_RETURN(x, err, ...) { \ + if( !(x) ) { \ + NV_PARAM_TRAITS_WARNING(mTraits, ##__VA_ARGS__); \ + DEBUG_ALWAYS_ASSERT(); \ + return err; \ + } \ +} + +#define NV_PARAM_ERR_CHECK_WARN_RETURN(x, err, ...) { \ + if( NvParameterized::ERROR_NONE != (NvParameterized::ErrorType)(x) ) \ + { \ + NV_PARAM_TRAITS_WARNING(mTraits, ##__VA_ARGS__); \ + DEBUG_ALWAYS_ASSERT(); \ + return err; \ + } \ +} + +namespace NvParameterized +{ + +bool UpgradeLegacyObjects(Serializer::DeserializedData &data, bool &isUpdated, Traits *t); +Interface *UpgradeObject(Interface &obj, bool &isUpdated, Traits *t); + +//This is used for releasing resources (I wish we had generic smart ptrs...) +class Releaser +{ + FILE *mFile; + + void *mBuf; + Traits *mTraits; + + Interface *mObj; + + Releaser(const Releaser &) {} + +public: + + Releaser() + { + reset(); + } + + Releaser(void *buf, Traits *traits) + { + reset(buf, traits); + } + + Releaser(FILE *file) + { + reset(file); + } + + Releaser(Interface *obj) + { + reset(obj); + } + + void reset() + { + mFile = 0; + mBuf = 0; + mTraits = 0; + mObj = 0; + } + + void reset(Interface *obj) + { + reset(); + + mObj = obj; + } + + void reset(FILE *file) + { + reset(); + + mFile = file; + } + + void reset(void *buf, Traits *traits) + { + reset(); + + mBuf = buf; + mTraits = traits; + } + + ~Releaser() + { + if( mBuf ) + mTraits->free(mBuf); + + if( mFile ) + fclose(mFile); + + if( mObj ) + mObj->destroy(); + } +}; + +void *serializerMemAlloc(uint32_t size, Traits *traits); +void serializerMemFree(void *mem, Traits *traits); + +// Checksum for some classes is invalid +bool DoIgnoreChecksum(const Interface &obj); + +} // namespace NvParameterized + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/XmlDeserializer.h b/sdk/extensions/import/apexmodules/NvParameterized/include/XmlDeserializer.h old mode 100644 new mode 100755 index ac6075f..8dc4a24 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/XmlDeserializer.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/XmlDeserializer.h @@ -1,307 +1,307 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef XML_DESERIALIZER_H_ -#define XML_DESERIALIZER_H_ - -//XML deserialization (by John Ratcliff) - -#include "PsFastXml.h" - -#include "nvparameterized/NvSerializer.h" -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" - -#include "SerializerCommon.h" - -namespace NvParameterized -{ - -typedef enum -{ - ARRAY, - STRUCT, - VALUE, - SKIP -} FieldType; - -struct FieldInfo -{ - PX_INLINE void init(const char *name_, FieldType type_) - { - name = name_; - type = type_; - idx = 0; - } - - const char *name; - FieldType type; - uint32_t idx; //For arrays -}; - -class ObjectInfo -{ - static const uint32_t MAX_STRUCT_FIELD_STACK = 256; - - Interface *mObj; - - //Field stack - uint32_t mIndex; - FieldInfo mFields[MAX_STRUCT_FIELD_STACK]; - -public: - - PX_INLINE ObjectInfo(): mObj(0), mIndex(0) {} - - PX_INLINE void init(Interface *obj) - { - mObj = obj; - } - - PX_INLINE Interface *getObject() - { - return mObj; - } - - PX_INLINE bool popField(const char *&name, FieldType &type) - { - if( !mIndex ) - { - DEBUG_ALWAYS_ASSERT(); - return false; - } - - FieldInfo &field = mFields[--mIndex]; - name = field.name; - type = field.type; - -# ifndef NDEBUG - field.name = 0; -# endif - - if( mIndex ) - { - FieldInfo &lastField = mFields[mIndex-1]; - if( ARRAY == lastField.type ) - ++lastField.idx; - } - - return true; - } - - PX_INLINE void pushField(const char *name, FieldType type) - { - PX_ASSERT( mIndex < MAX_STRUCT_FIELD_STACK ); - - if( mIndex < MAX_STRUCT_FIELD_STACK ) - mFields[mIndex++].init(name, type); - } - - PX_INLINE uint32_t getIndex() const { return mIndex; }; - - PX_INLINE FieldInfo &getFieldInfo(uint32_t i) - { - PX_ASSERT( i < mIndex ); - return mFields[i]; - } -}; - -class XmlDeserializer: public physx::shdfnd::FastXml::Callback -{ - static const uint32_t MAX_REF_STACK = 8, - MAX_ROOT_OBJ = 64; - - Serializer::ErrorType mError; - - Traits *mTraits; - - //Object stack - uint32_t mObjIndex; - ObjectInfo mObjects[MAX_REF_STACK]; - - //Array of root objects - uint32_t mRootIndex; - Interface *mRootObjs[MAX_ROOT_OBJ]; - - //Check errors in - uint32_t mRootTags; - bool mInRootElement; - - //Check DOCTYPE - bool mHasDoctype; - - uint32_t mVer; - - // read simple structs in array - int32_t* mSimpleStructRedirect; - uint32_t mSimpleStructRedirectSize; - - //Top Of Stack - PX_INLINE ObjectInfo &tos() - { - PX_ASSERT( mObjIndex >= 1 && mObjIndex <= MAX_REF_STACK ); - return mObjIndex > 0 ? mObjects[mObjIndex - 1] : mObjects[0]; - } - - PX_INLINE void pushObj(Interface *obj) - { - if( mObjIndex >= MAX_REF_STACK ) - { - PX_ALWAYS_ASSERT(); //included references nested too deeply - return; - } - - ++mObjIndex; - tos().init(obj); - } - - PX_INLINE bool popObj() - { - if( mObjIndex <= 0 ) - return false; - - --mObjIndex; - - return true; - } - - PX_INLINE void pushField(const char *name, FieldType type) - { - tos().pushField(mTraits->strdup(name), type); - } - - PX_INLINE bool popField() - { - const char *name = 0; - FieldType type; - if( !tos().popField(name, type) ) - return false; - - mTraits->strfree(const_cast(name)); - - return true; - } - - bool verifyObject(Interface *obj, const physx::shdfnd::FastXml::AttributePairs& attr); - - bool initAddressString(char *dest, uint32_t len, const char *name); - -public: - - PX_INLINE XmlDeserializer(Traits *traits, uint32_t ver): - mError(Serializer::ERROR_NONE), - mTraits(traits), - mObjIndex(0), - mRootIndex(0), - mRootTags(0), - mInRootElement(false), - mHasDoctype(false), - mVer(ver), - mSimpleStructRedirect(NULL), - mSimpleStructRedirectSize(0) {} - - PX_INLINE virtual ~XmlDeserializer() - { - if (mSimpleStructRedirect != NULL) - { - mTraits->free(mSimpleStructRedirect); - } - mSimpleStructRedirect = NULL; - mSimpleStructRedirectSize = 0; - } - - static PX_INLINE XmlDeserializer *Create(Traits *traits, uint32_t ver) - { - char *buf = (char *)serializerMemAlloc(sizeof(XmlDeserializer), traits); - return PX_PLACEMENT_NEW(buf, XmlDeserializer)(traits, ver); - } - - PX_INLINE void destroy() - { - Traits *traits = mTraits; - this->~XmlDeserializer(); - serializerMemFree(this, traits); - } - - PX_INLINE Serializer::ErrorType getLastError() const - { - return mError; - } - - PX_INLINE Interface **getObjs() - { - return mRootObjs; - } - - PX_INLINE uint32_t getNobjs() const - { - return physx::PxMin(mRootIndex, MAX_ROOT_OBJ); - } - - //Release all created objects (in case of error) - PX_INLINE void releaseAll() - { - for(uint32_t i = 0; i < getNobjs(); ++i) - mRootObjs[i]->destroy(); - } - - virtual bool processComment(const char *) - { - return true; - } - - virtual bool processDoctype(const char * rootElement, const char *, const char *, const char *) - { - mHasDoctype = true; - return 0 == ::strcmp(rootElement, "NvParameters") || 0 == ::strcmp(rootElement, "NxParameters"); - } - - virtual void *allocate(uint32_t size) - { - return mTraits->alloc(size); - } - - virtual void deallocate(void *ptr) - { - mTraits->free(ptr); - } - - virtual bool processClose(const char *tag,uint32_t depth,bool &isError); - - virtual bool processElement( - const char *elementName, - const char *elementData, - const physx::shdfnd::FastXml::AttributePairs& attr, - int32_t /*lineno*/ - ); - - int32_t* getSimpleStructRedirect(uint32_t size); -}; - -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef XML_DESERIALIZER_H_ +#define XML_DESERIALIZER_H_ + +//XML deserialization (by John Ratcliff) + +#include "PsFastXml.h" + +#include "nvparameterized/NvSerializer.h" +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" + +#include "SerializerCommon.h" + +namespace NvParameterized +{ + +typedef enum +{ + ARRAY, + STRUCT, + VALUE, + SKIP +} FieldType; + +struct FieldInfo +{ + PX_INLINE void init(const char *name_, FieldType type_) + { + name = name_; + type = type_; + idx = 0; + } + + const char *name; + FieldType type; + uint32_t idx; //For arrays +}; + +class ObjectInfo +{ + static const uint32_t MAX_STRUCT_FIELD_STACK = 256; + + Interface *mObj; + + //Field stack + uint32_t mIndex; + FieldInfo mFields[MAX_STRUCT_FIELD_STACK]; + +public: + + PX_INLINE ObjectInfo(): mObj(0), mIndex(0) {} + + PX_INLINE void init(Interface *obj) + { + mObj = obj; + } + + PX_INLINE Interface *getObject() + { + return mObj; + } + + PX_INLINE bool popField(const char *&name, FieldType &type) + { + if( !mIndex ) + { + DEBUG_ALWAYS_ASSERT(); + return false; + } + + FieldInfo &field = mFields[--mIndex]; + name = field.name; + type = field.type; + +# ifndef NDEBUG + field.name = 0; +# endif + + if( mIndex ) + { + FieldInfo &lastField = mFields[mIndex-1]; + if( ARRAY == lastField.type ) + ++lastField.idx; + } + + return true; + } + + PX_INLINE void pushField(const char *name, FieldType type) + { + PX_ASSERT( mIndex < MAX_STRUCT_FIELD_STACK ); + + if( mIndex < MAX_STRUCT_FIELD_STACK ) + mFields[mIndex++].init(name, type); + } + + PX_INLINE uint32_t getIndex() const { return mIndex; }; + + PX_INLINE FieldInfo &getFieldInfo(uint32_t i) + { + PX_ASSERT( i < mIndex ); + return mFields[i]; + } +}; + +class XmlDeserializer: public physx::shdfnd::FastXml::Callback +{ + static const uint32_t MAX_REF_STACK = 8, + MAX_ROOT_OBJ = 64; + + Serializer::ErrorType mError; + + Traits *mTraits; + + //Object stack + uint32_t mObjIndex; + ObjectInfo mObjects[MAX_REF_STACK]; + + //Array of root objects + uint32_t mRootIndex; + Interface *mRootObjs[MAX_ROOT_OBJ]; + + //Check errors in + uint32_t mRootTags; + bool mInRootElement; + + //Check DOCTYPE + bool mHasDoctype; + + uint32_t mVer; + + // read simple structs in array + int32_t* mSimpleStructRedirect; + uint32_t mSimpleStructRedirectSize; + + //Top Of Stack + PX_INLINE ObjectInfo &tos() + { + PX_ASSERT( mObjIndex >= 1 && mObjIndex <= MAX_REF_STACK ); + return mObjIndex > 0 ? mObjects[mObjIndex - 1] : mObjects[0]; + } + + PX_INLINE void pushObj(Interface *obj) + { + if( mObjIndex >= MAX_REF_STACK ) + { + PX_ALWAYS_ASSERT(); //included references nested too deeply + return; + } + + ++mObjIndex; + tos().init(obj); + } + + PX_INLINE bool popObj() + { + if( mObjIndex <= 0 ) + return false; + + --mObjIndex; + + return true; + } + + PX_INLINE void pushField(const char *name, FieldType type) + { + tos().pushField(mTraits->strdup(name), type); + } + + PX_INLINE bool popField() + { + const char *name = 0; + FieldType type; + if( !tos().popField(name, type) ) + return false; + + mTraits->strfree(const_cast(name)); + + return true; + } + + bool verifyObject(Interface *obj, const physx::shdfnd::FastXml::AttributePairs& attr); + + bool initAddressString(char *dest, uint32_t len, const char *name); + +public: + + PX_INLINE XmlDeserializer(Traits *traits, uint32_t ver): + mError(Serializer::ERROR_NONE), + mTraits(traits), + mObjIndex(0), + mRootIndex(0), + mRootTags(0), + mInRootElement(false), + mHasDoctype(false), + mVer(ver), + mSimpleStructRedirect(NULL), + mSimpleStructRedirectSize(0) {} + + PX_INLINE virtual ~XmlDeserializer() + { + if (mSimpleStructRedirect != NULL) + { + mTraits->free(mSimpleStructRedirect); + } + mSimpleStructRedirect = NULL; + mSimpleStructRedirectSize = 0; + } + + static PX_INLINE XmlDeserializer *Create(Traits *traits, uint32_t ver) + { + char *buf = (char *)serializerMemAlloc(sizeof(XmlDeserializer), traits); + return PX_PLACEMENT_NEW(buf, XmlDeserializer)(traits, ver); + } + + PX_INLINE void destroy() + { + Traits *traits = mTraits; + this->~XmlDeserializer(); + serializerMemFree(this, traits); + } + + PX_INLINE Serializer::ErrorType getLastError() const + { + return mError; + } + + PX_INLINE Interface **getObjs() + { + return mRootObjs; + } + + PX_INLINE uint32_t getNobjs() const + { + return physx::PxMin(mRootIndex, MAX_ROOT_OBJ); + } + + //Release all created objects (in case of error) + PX_INLINE void releaseAll() + { + for(uint32_t i = 0; i < getNobjs(); ++i) + mRootObjs[i]->destroy(); + } + + virtual bool processComment(const char *) + { + return true; + } + + virtual bool processDoctype(const char * rootElement, const char *, const char *, const char *) + { + mHasDoctype = true; + return 0 == ::strcmp(rootElement, "NvParameters") || 0 == ::strcmp(rootElement, "NxParameters"); + } + + virtual void *allocate(uint32_t size) + { + return mTraits->alloc(size); + } + + virtual void deallocate(void *ptr) + { + mTraits->free(ptr); + } + + virtual bool processClose(const char *tag,uint32_t depth,bool &isError); + + virtual bool processElement( + const char *elementName, + const char *elementData, + const physx::shdfnd::FastXml::AttributePairs& attr, + int32_t /*lineno*/ + ); + + int32_t* getSimpleStructRedirect(uint32_t size); +}; + +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/include/XmlSerializer.h b/sdk/extensions/import/apexmodules/NvParameterized/include/XmlSerializer.h old mode 100644 new mode 100755 index 47ae498..a700102 --- a/sdk/extensions/import/apexmodules/NvParameterized/include/XmlSerializer.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/include/XmlSerializer.h @@ -1,114 +1,114 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_XML_SERIALIZER_H -#define PX_XML_SERIALIZER_H - -//XML serialization (by John Ratcliff) - -#include "nvparameterized/NvSerializer.h" -#include "AbstractSerializer.h" - -#include "PsIOStream.h" - -namespace NvParameterized -{ - -struct traversalState; - -bool isXmlFormat(physx::PxFileBuf &stream); - -// XML serializer implementation -class XmlSerializer : public AbstractSerializer -{ - ErrorType peekNumObjects(char *data, uint32_t len, uint32_t &numObjects); - - Serializer::ErrorType peekClassNames(physx::PxFileBuf &stream, char **classNames, uint32_t &numClassNames); - -#ifndef WITHOUT_APEX_SERIALIZATION - Serializer::ErrorType traverseParamDefTree( - const Interface &obj, - physx::PsIOStream &stream, - traversalState &state, - Handle &handle, - bool printValues = true); - - Serializer::ErrorType emitElementNxHints( - physx::PsIOStream &stream, - Handle &handle, - traversalState &state, - bool &includedRef); - - Serializer::ErrorType emitElement( - const Interface &obj, - physx::PsIOStream &stream, - const char *elementName, - Handle &handle, - bool includedRef, - bool printValues, - bool isRoot = false); -#endif - -protected: - -#ifndef WITHOUT_APEX_SERIALIZATION - Serializer::ErrorType internalSerialize(physx::PxFileBuf &fbuf,const Interface **objs, uint32_t n, bool doMetadata); -#endif - - Serializer::ErrorType internalDeserialize(physx::PxFileBuf &stream, DeserializedData &res, bool &doesNeedUpdate); - -public: - - XmlSerializer(Traits *traits): AbstractSerializer(traits) {} - - ~XmlSerializer() {} - - virtual void release(void) - { - this->~XmlSerializer(); - serializerMemFree(this,mTraits); - } - - PX_INLINE static uint32_t version() - { - return 0x00010000; - } - - ErrorType peekNumObjectsInplace(const void * data, uint32_t dataLen, uint32_t & numObjects); - - ErrorType peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects); - - using Serializer::deserializeMetadata; - ErrorType deserializeMetadata(physx::PxFileBuf & /*stream*/, Definition ** /*defs*/, uint32_t & /*ndefs*/) - { - return Serializer::ERROR_NOT_IMPLEMENTED; - } -}; - -} // namespace NvParameterized - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_XML_SERIALIZER_H +#define PX_XML_SERIALIZER_H + +//XML serialization (by John Ratcliff) + +#include "nvparameterized/NvSerializer.h" +#include "AbstractSerializer.h" + +#include "PsIOStream.h" + +namespace NvParameterized +{ + +struct traversalState; + +bool isXmlFormat(physx::PxFileBuf &stream); + +// XML serializer implementation +class XmlSerializer : public AbstractSerializer +{ + ErrorType peekNumObjects(char *data, uint32_t len, uint32_t &numObjects); + + Serializer::ErrorType peekClassNames(physx::PxFileBuf &stream, char **classNames, uint32_t &numClassNames); + +#ifndef WITHOUT_APEX_SERIALIZATION + Serializer::ErrorType traverseParamDefTree( + const Interface &obj, + physx::PsIOStream &stream, + traversalState &state, + Handle &handle, + bool printValues = true); + + Serializer::ErrorType emitElementNxHints( + physx::PsIOStream &stream, + Handle &handle, + traversalState &state, + bool &includedRef); + + Serializer::ErrorType emitElement( + const Interface &obj, + physx::PsIOStream &stream, + const char *elementName, + Handle &handle, + bool includedRef, + bool printValues, + bool isRoot = false); +#endif + +protected: + +#ifndef WITHOUT_APEX_SERIALIZATION + Serializer::ErrorType internalSerialize(physx::PxFileBuf &fbuf,const Interface **objs, uint32_t n, bool doMetadata); +#endif + + Serializer::ErrorType internalDeserialize(physx::PxFileBuf &stream, DeserializedData &res, bool &doesNeedUpdate); + +public: + + XmlSerializer(Traits *traits): AbstractSerializer(traits) {} + + ~XmlSerializer() {} + + virtual void release(void) + { + this->~XmlSerializer(); + serializerMemFree(this,mTraits); + } + + PX_INLINE static uint32_t version() + { + return 0x00010000; + } + + ErrorType peekNumObjectsInplace(const void * data, uint32_t dataLen, uint32_t & numObjects); + + ErrorType peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects); + + using Serializer::deserializeMetadata; + ErrorType deserializeMetadata(physx::PxFileBuf & /*stream*/, Definition ** /*defs*/, uint32_t & /*ndefs*/) + { + return Serializer::ERROR_NOT_IMPLEMENTED; + } +}; + +} // namespace NvParameterized + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/BinSerializer.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/BinSerializer.cpp old mode 100644 new mode 100755 index 623c020..420a171 --- a/sdk/extensions/import/apexmodules/NvParameterized/src/BinSerializer.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/BinSerializer.cpp @@ -1,1828 +1,1828 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -/* - Binary serialization is very complex and error-prone - process. Ensuring that it works properly is _critically_ - important for the engine. - - Before you do any significant changes to this code - please get familiar with C/C++ object layouts. - You may find these links helpful: - - * APEX binary file format - https://wiki.nvidia.com/engwiki/index.php/PhysX/APEX/architecture/design/File_Formats - (may not be up-to-date) - - * C++ data alignment and portability - http://www.codesynthesis.com/~boris/blog/2009/04/06/cxx-data-alignment-portability/ - - * Data structure alignment - http://en.wikipedia.org/wiki/Data_structure_alignment - - * About Data Alignment - http://msdn.microsoft.com/en-us/library/ms253949%28v=VS.80%29.aspx - - * Types and Storage - http://msdn.microsoft.com/en-us/library/02c56cw3.aspx - - * Jan Gray's article in "C++: Under the Hood" - http://www.openrce.org/articles/files/jangrayhood.pdf - - * Windows Data Alignment on IPF, x86, and x64 - http://msdn.microsoft.com/en-us/library/aa290049%28VS.71%29.aspx - - * GCC alignment in classes gotcha - https://ps3.scedev.net/forums/thread/41593/ - - * all messages in thread http://compilers.iecc.com/comparch/article/94-08-119 - - * Memory Layout for Multiple and Virtual Inheritance - http://www.phpcompiler.org/articles/virtualinheritance.html - - * The "Empty Member" C++ Optimization - http://www.cantrip.org/emptyopt.html - - You may also want to see examples of existing ABI - for various platforms: - - * Agner Fog's Calling conventions for different C++ compilers - and operating systems, - http://www.agner.org/optimize/calling_conventions.pdf - - * Itanium C++ ABI Data Layout - http://www.codesourcery.com/public/cxx-abi/abi.html#layout - - * Introduction to Mac OS X ABI Function Call Guide - http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/LowLevelABI/000-Introduction/introduction.html - - After you implement you changes be sure to check that ALL - NvParameterized unit tests - * Test/MediaTest - * Test/RandomClasses - * Test/ParamRandomTest - run without errors on ALL supported platforms: - * Win32 - * Win64 - * PS3 - * XBOX 360 - (in future we may also have Mac, Tegra, Linux on PC, etc.). - - If you need to add new platform to this list, be sure to - analyze it's ABI with ABIDumper - (//sw/nvidia/shared/general/ABIDumper) and check whether - it requires special changes in current serialization code - (Mac does). - - If you ever implement new features be sure to cover them - in random schema generator - NvParameterized/scripts/RandomSchema.pl, generate a bunch - (10 at least) of new random schemas for Test/RandomClasses - and add them to p4 (and verify that they work on all - platforms!). -*/ - -#include - -#include "PsArray.h" -#include "PsHash.h" -#include "PsHashMap.h" - -#include "NvParameters.h" -#include "nvparameterized/NvParamUtils.h" -#include "NvTraitsInternal.h" - -#include "BinaryHelper.h" - -#include "PlatformABI.h" -#include "PlatformInputStream.h" -#include "PlatformOutputStream.h" - -#include "BinSerializer.h" - -namespace NvParameterized -{ - -// Verify that file header is ok -Serializer::ErrorType BinSerializer::verifyFileHeader( - const BinaryHeader &hdr, - const BinaryHeaderExt *ext, - uint32_t dataLen ) const -{ - NV_BOOL_ERR_CHECK_WARN_RETURN( BinSerializer::Magic == hdr.magic, Serializer::ERROR_INVALID_MAGIC, "Invalid APB file: magic number does not match: %x", hdr.magic ); - NV_BOOL_ERR_CHECK_WARN_RETURN( (uint32_t)BINARY_TYPE_PLAIN == hdr.type, Serializer::ERROR_INVALID_FILE_FORMAT, "Invalid APB file: unknown file format: %d", hdr.type ); - - NV_BOOL_ERR_CHECK_WARN_RETURN( - BinVersions::WithExtendedHeader == hdr.version || BinVersions::WithAlignment == hdr.version, - Serializer::ERROR_INVALID_FILE_VERSION, "Invalid APB header: unexpected version: %x", hdr.version ); - - // Verify offsets - NV_BOOL_ERR_CHECK_WARN_RETURN( hdr.fileLength <= dataLen - && hdr.dataOffset < hdr.fileLength - && hdr.relocOffset < hdr.fileLength - && hdr.dictOffset < hdr.fileLength - && hdr.metadataOffset < hdr.fileLength, - Serializer::ERROR_INVALID_INTERNAL_PTR, - "Invalid APB file: section offsets do not match file length" ); - - if( ext ) - { - NV_BOOL_ERR_CHECK_WARN_RETURN( - 0 == memcmp((const char *)&ext->vcsSafetyFlags, VCS_SAFETY_FLAGS, 4), - Serializer::ERROR_INVALID_CHAR, - "Invalid APB file: perhaps your editor inserts redundant carriage returns?" - ); - } - - return Serializer::ERROR_NONE; -} - -// Peeks APB header from stream -static Serializer::ErrorType peekFileHeader(physx::PxFileBuf &stream, BinaryHeader &hdr, BinaryHeaderExt &ext, bool doDecanonize = true) -{ - NV_BOOL_ERR_CHECK_RETURN( - sizeof(BinaryHeader) == stream.peek(&hdr, sizeof(BinaryHeader)), - Serializer::ERROR_INVALID_FILE_FORMAT ); - - if( hdr.version >= BinVersions::WithExtendedHeader ) - { - uint32_t fileOff = stream.tellRead(); - - stream.seekRead(fileOff + sizeof(BinaryHeader)); - NV_BOOL_ERR_CHECK_RETURN( - sizeof(BinaryHeaderExt) == stream.peek(&ext, sizeof(BinaryHeaderExt)), - Serializer::ERROR_INVALID_FILE_FORMAT ); - - stream.seekRead(fileOff); - } - - if( doDecanonize ) - hdr.decanonize(); - - return Serializer::ERROR_NONE; -} - -// Extract platform ABI from file header -Serializer::ErrorType BinSerializer::getPlatformInfo( - BinaryHeader &hdr, - BinaryHeaderExt *ext, - PlatformABI &abi ) const -{ - //Difference between these versions is not important for non-inplace serializer - if( hdr.version == BinVersions::Initial || hdr.version == BinVersions::AllRefsCounted ) - hdr.version = BinVersions::WithAlignment; - - NV_ERR_CHECK_RETURN( verifyFileHeader(hdr, ext, hdr.fileLength) ); - - SerializePlatform platform; - NV_ERR_CHECK_WARN_RETURN(hdr.getPlatform(platform), "Invalid platform"); - - NV_ERR_CHECK_WARN_RETURN( PlatformABI::GetPredefinedABI(platform, abi), "Unknown platform" ); - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::peekInplaceAlignment(physx::PxFileBuf& stream, uint32_t& align) -{ - BinaryHeader hdr; - BinaryHeaderExt ext; - NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext, false) ); - align = Canonize(hdr.alignment); - return Serializer::ERROR_NONE; -} - -// Verify that object matches its header -Serializer::ErrorType BinSerializer::verifyObjectHeader(const ObjHeader &hdr, const Interface *obj, Traits *traits) const -{ - DEBUG_ASSERT(obj); - NV_BOOL_ERR_CHECK_WARN_RETURN( - obj->version() == hdr.version, - Serializer::ERROR_UNKNOWN, - "Invalid object: version does not match object header" ); - - PX_UNUSED(traits); - - uint32_t bits = UINT32_MAX; - const uint32_t *checksum = obj->checksum(bits); - - if( !DoIgnoreChecksum(*obj) || hdr.version != obj->version() ) - { - if( bits != 32 * hdr.checksumSize ) - NV_PARAM_TRAITS_WARNING( - traits, - "Schema checksum is different for object of class %s and version %u, asset may be corrupted", - hdr.className, (unsigned)hdr.version - ); - else - { - for(uint32_t i = 0; i < hdr.checksumSize; ++i) - if( checksum[i] != hdr.checksum[i] ) - { - NV_PARAM_TRAITS_WARNING( - traits, - "Schema checksum is different for object of class %s and version %u, asset may be corrupted", - hdr.className, (unsigned)hdr.version - ); - break; - } - } - } - - return Serializer::ERROR_NONE; -} - -#if 0 -//TODO: this is just for tests, remove it after metadata works -static void DumpDefinition(const Definition *def, const char *className, uint32_t version, uint32_t off = 0) -{ - char *tab = (char *)::malloc(off + 1); - memset(tab, ' ', off); - tab[off] = 0; - - if( className ) - printf("%sClass %s:%d\n", tab, className, version); - - printf("%sDefinition at 0x%p:\n", tab, def); - printf("%s name = %s\n", tab, def->name()); - printf("%s type = %s\n", tab, typeToStr(def->type())); - printf("%s align = %d\n", tab, def->alignment()); - printf("%s pad = %d\n", tab, def->padding()); - - printf("%s %d hints:\n", tab, def->numHints()); - for(uint32_t i = 0; i < def->numHints(); ++i) - { - const Hint *hint = def->hint(i); - - printf("%s %s => ", tab, hint->name()); - switch( hint->type() ) - { - case TYPE_U64: - printf("%llu", hint->asUInt()); - break; - case TYPE_F64: - printf("%f", hint->asFloat()); - break; - case TYPE_STRING: - printf("\"%s\"", hint->asString()); - break; - default: - DEBUG_ALWAYS_ASSERT(); - } - printf("\n"); - } - - printf("%s %d enums: ", tab, def->numEnumVals()); - for(uint32_t i = 0; i < def->numEnumVals(); ++i) - printf("\"%s\", ", def->enumVal(i)); - printf("\n"); - - printf("%s %d refVariants: ", tab, def->numRefVariants()); - for(uint32_t i = 0; i < def->numRefVariants(); ++i) - printf("\"%s\", ", def->refVariantVal(i)); - printf("\n"); - - printf("%s %d children:\n", tab, def->numChildren()); - for(uint32_t i = 0; i < def->numChildren(); ++i) - { - printf("%sChild %d:\n", tab, i); - DumpDefinition(def->child(i), 0, 0, off + 1); - } - - ::free(tab); - - fflush(stdout); -} -#endif - -Serializer::ErrorType BinSerializer::peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects) -{ - BinaryHeader hdr; - BinaryHeaderExt ext; - NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext, false) ); - - return peekNumObjectsInplace((const void *)&hdr, sizeof(hdr), numObjects); -} - -Serializer::ErrorType BinSerializer::peekNumObjectsInplace(const void *data, uint32_t dataLen, uint32_t &numObjects) -{ - NV_BOOL_ERR_CHECK_RETURN( dataLen >= sizeof(BinaryHeader), Serializer::ERROR_INVALID_FILE_FORMAT ); - numObjects = static_cast(Canonize( ((const BinaryHeader *)data)->numObjects)); - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::peekClassNames(physx::PxFileBuf &stream, char **classNames, uint32_t &numClassNames) -{ - BinaryHeader hdr; - BinaryHeaderExt ext; - NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); - - PlatformABI targetParams; - NV_ERR_CHECK_RETURN(getPlatformInfo( - hdr, - hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, - targetParams - )); - - PlatformInputStream objectTable(stream, targetParams, mTraits); - objectTable.skipBytes(hdr.dataOffset); - - numClassNames = physx::PxMin(numClassNames, (uint32_t)hdr.numObjects); - for(uint32_t i = 0; i < numClassNames; ++i) - { - uint32_t tmp; - NV_ERR_CHECK_RETURN( objectTable.readPtr(tmp) ); // Pointer to object data - - uint32_t classNameOff; - NV_ERR_CHECK_RETURN( objectTable.readPtr(classNameOff) ); // Pointer to className - - const char *className; - NV_ERR_CHECK_RETURN( objectTable.readString(classNameOff, className) ); - classNames[i] = mTraits->strdup(className); //User will call Traits::strfree - mTraits->free((void *)className); - - NV_ERR_CHECK_RETURN( objectTable.readPtr(tmp) ); // Pointer to name - NV_ERR_CHECK_RETURN( objectTable.readPtr(tmp) ); // Pointer to filename - } - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::readMetadataInfo(const BinaryHeader &hdr, PlatformInputStream &s, DefinitionImpl *def) -{ - PX_PLACEMENT_NEW(def, DefinitionImpl)(*mTraits, false); - - s.beginStruct(s.getTargetABI().getMetaInfoAlignment()); - - //type - uint32_t type; - NV_ERR_CHECK_RETURN( s.read(type) ); - NV_BOOL_ERR_CHECK_WARN_RETURN( type < TYPE_LAST, Serializer::ERROR_INVALID_DATA_TYPE, "Unknown data type: %d", (int)type); - - //arraySize - int32_t arraySize; - NV_ERR_CHECK_RETURN( s.read(arraySize) ); - - //shortName - uint32_t nameOff; - NV_ERR_CHECK_RETURN( s.readPtr(nameOff) ); - - const char *name; - NV_ERR_CHECK_RETURN( s.readString(nameOff, name) ); //NOTE: we do not release name because DefinitionImpl does not copy it - - //structName - uint32_t structNameOff; - NV_ERR_CHECK_RETURN( s.readPtr(structNameOff) ); - - const char *structName; - NV_ERR_CHECK_RETURN( s.readString(structNameOff, structName) ); //NOTE: we do not release name because DefinitionImpl does not copy it - - // We do not have metadata for older formats without alignment - NV_BOOL_ERR_CHECK_WARN_RETURN( hdr.version >= BinVersions::WithAlignment, Serializer::ERROR_INVALID_FILE_VERSION, "Unable to deserialize metadata: file format does not support it" ); - - //alignment - uint32_t alignment; - NV_ERR_CHECK_RETURN( s.read(alignment) ); - - //padding - uint32_t padding; - NV_ERR_CHECK_RETURN( s.read(padding) ); - - def->init(name, (DataType)type, structName); - def->setArraySize(arraySize); - if( alignment ) def->setAlignment(alignment); - if( padding ) def->setPadding(padding); - - //numChildren - uint32_t numChildren; - NV_ERR_CHECK_RETURN( s.read(numChildren) ); - - //children - for(uint32_t i = 0; i < numChildren; ++i) - { - DefinitionImpl *childDef = (DefinitionImpl *)mTraits->alloc(sizeof(DefinitionImpl)); - - uint32_t off; - NV_ERR_CHECK_RETURN( s.readPtr(off) ); - - NV_ERR_CHECK_RETURN( s.pushPos(off) ); - NV_ERR_CHECK_RETURN( readMetadataInfo(hdr, s, childDef) ); - s.popPos(); - - def->addChild(childDef); - } - - //numHints - uint32_t numHints; - NV_ERR_CHECK_RETURN( s.read(numHints) ); - - //hints - for(uint32_t i = 0; i < numHints; ++i) - { - HintImpl *hint = (HintImpl *)mTraits->alloc(sizeof(HintImpl)); - PX_PLACEMENT_NEW(hint, HintImpl)(); - - s.beginStruct(s.getTargetABI().getHintAlignment()); - - //type - uint32_t hintType; - NV_ERR_CHECK_RETURN( s.read(hintType) ); - - //name - uint32_t hintNameOff; - NV_ERR_CHECK_RETURN( s.readPtr(hintNameOff) ); - - const char *hintName; - NV_ERR_CHECK_RETURN( s.readString(hintNameOff, hintName) ); - Releaser releaseName((void *)hintName, mTraits); - - //val - s.beginStruct(s.getTargetABI().getHintValueAlignment()); - switch( hintType ) - { - case TYPE_U64: - { - uint64_t val; - NV_ERR_CHECK_RETURN( s.read(val) ); - hint->init(hintName, val, false); - - break; - } - case TYPE_F64: - { - double val; - NV_ERR_CHECK_RETURN( s.read(val) ); - hint->init(hintName, val, false); - - break; - } - case TYPE_STRING: - { - uint32_t off; - NV_ERR_CHECK_RETURN( s.readPtr(off) ); - - const char *val; - NV_ERR_CHECK_RETURN( s.readString(off, val) ); - Releaser releaseVal((void *)val, mTraits); - - hint->init(hintName, val, false); - - break; - } - default: - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_DATA_TYPE; - } - s.align(s.getTargetABI().getHintValueSize()); - s.closeStruct(); - - s.closeStruct(); - - def->addHint(hint); - } //i - - //numEnumVals - uint32_t numEnumVals; - NV_ERR_CHECK_RETURN( s.read(numEnumVals) ); - - //enumVals - for(uint32_t i = 0; i < numEnumVals; ++i) - { - uint32_t off; - NV_ERR_CHECK_RETURN( s.readPtr(off) ); - - const char *val; - NV_ERR_CHECK_RETURN( s.readString(off, val) ); - Releaser releaseVal((void *)val, mTraits); - - def->addEnumVal(val); - } - - //numRefVariants - uint32_t numRefVariants; - NV_ERR_CHECK_RETURN( s.read(numRefVariants) ); - - //refVariants - for(uint32_t i = 0; i < numRefVariants; ++i) - { - uint32_t off; - NV_ERR_CHECK_RETURN( s.readPtr(off) ); - - const char *val; - NV_ERR_CHECK_RETURN( s.readString(off, val) ); - Releaser releaseVal((void *)val, mTraits); - - def->addRefVariantVal(val); - } - - s.closeStruct(); - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::deserializeMetadata(physx::PxFileBuf &stream, DeserializedMetadata &desData) -{ - BinaryHeader hdr; - BinaryHeaderExt ext; - NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); - NV_ERR_CHECK_RETURN(verifyFileHeader( - hdr, - hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, - hdr.fileLength - )); - - PlatformABI targetParams; - NV_ERR_CHECK_RETURN(getPlatformInfo( - hdr, - hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, - targetParams - )); - - PlatformInputStream s(stream, targetParams, mTraits); - s.skipBytes(hdr.metadataOffset); - - uint32_t numMetadata = hdr.numMetadata; - - desData.init(mTraits, numMetadata); - - for(uint32_t i = 0; i < numMetadata; ++i) - { - uint32_t classNameOff; - NV_ERR_CHECK_RETURN( s.readPtr(classNameOff) ); - - const char *className; - NV_ERR_CHECK_RETURN( s.readString(classNameOff, className) ); - - uint32_t version; - NV_ERR_CHECK_RETURN( s.read(version) ); - - uint32_t entryOff; - NV_ERR_CHECK_RETURN( s.readPtr(entryOff) ); - - s.pushPos(entryOff); - - DefinitionImpl *def = (DefinitionImpl *)mTraits->alloc(sizeof(DefinitionImpl)); - NV_ERR_CHECK_WARN_RETURN( readMetadataInfo(hdr, s, def), "Failed to read metadata info" ); - -// DumpDefinition(def, className, version); - - desData[i].def = def; - desData[i].version = version; - desData[i].className = className; - - s.popPos(); - } - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::internalDeserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &res, bool & /*doesNeedUpdate*/) -{ - NV_BOOL_ERR_CHECK_WARN_RETURN( - PlatformABI::VerifyCurrentPlatform(), - Serializer::ERROR_INVALID_PLATFORM, - "Current platform is not supported, aborting" ); - - NV_BOOL_ERR_CHECK_RETURN( BinaryHeader::CheckAlignment(), Serializer::ERROR_INVALID_PLATFORM ); - - BinaryHeader hdr; - BinaryHeaderExt ext; - NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); - - PlatformABI abi; - NV_ERR_CHECK_RETURN(getPlatformInfo( - hdr, - hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, - abi - )); - - uint32_t fileOff = stream.tellRead(); - - PlatformInputStream data(stream, abi, mTraits); - NV_ERR_CHECK_RETURN( data.skipBytes(hdr.dataOffset) ); - - res.init(mTraits, static_cast(hdr.numObjects)); - for(uint32_t i = 0; i < static_cast(hdr.numObjects); ++i) - { - uint32_t objOff; - NV_ERR_CHECK_RETURN( data.readPtr(objOff) ); - - if( !objOff ) - res[i] = 0; - else - { - NV_ERR_CHECK_RETURN( data.pushPos(objOff) ); - - Serializer::ErrorType error = readObject(res[i], data); - if( Serializer::ERROR_NONE != error ) - { - for(uint32_t j = 0; j < i; ++j) //Last object was destroyed in readObject - res[j]->destroy(); - - res.init(0, 0); - - return error; - } - - data.popPos(); - } - - uint32_t tmp; - NV_ERR_CHECK_RETURN( data.readPtr(tmp) ); // className - NV_ERR_CHECK_RETURN( data.readPtr(tmp) ); // name - NV_ERR_CHECK_RETURN( data.readPtr(tmp) ); // filename - } //i - - stream.seekRead(fileOff + hdr.fileLength); //Goto end of stream - - return Serializer::ERROR_NONE; -} - -static BinaryReloc *getRelocationTable(const BinaryHeader &hdr, char *start, uint32_t &nrelocs) -{ - char *ptrTable = start + hdr.relocOffset; - nrelocs = *reinterpret_cast(ptrTable); - - ptrTable += PlatformABI::align(4, GetAlignment::value); - - return reinterpret_cast(ptrTable); //Alignment is ok -} - -Serializer::ErrorType BinSerializer::internalDeserializeInplace(void *mdata, uint32_t dataLen, Serializer::DeserializedData &res, bool & doesNeedUpdate) -{ - doesNeedUpdate = false; - - NV_BOOL_ERR_CHECK_WARN_RETURN( - PlatformABI::VerifyCurrentPlatform(), - Serializer::ERROR_INVALID_PLATFORM, - "Current platform is not supported, aborting" ); - - char *start = (char *)mdata; - - //Header - BinaryHeader &hdr = *reinterpret_cast(start); - hdr.decanonize(); //Make platform-dependent - - //Extended header - BinaryHeaderExt *ext = hdr.version >= BinVersions::WithExtendedHeader - ? reinterpret_cast(start + sizeof(BinaryHeader)) - : 0; - if( ext ) ext->decanonize(); - - //This particular updates can be done on the fly - //Probably there is no need to set isUpdated because updates can be done on the fly - - if( hdr.version == BinVersions::Initial ) - NV_ERR_CHECK_WARN_RETURN( updateInitial2AllCounted(hdr, start), "Failed to update binary asset from 1.0 to 1.1" ); - - if( hdr.version == BinVersions::AllRefsCounted ) - NV_ERR_CHECK_WARN_RETURN( updateAllCounted2WithAlignment(hdr, start), "Failed to update binary asset from 1.1 to 1.2" ); - - NV_ERR_CHECK_RETURN( verifyFileHeader(hdr, ext, dataLen) ); - - NV_BOOL_ERR_CHECK_RETURN( IsAligned(mdata, hdr.alignment), Serializer::ERROR_UNALIGNED_MEMORY); - - //Verify platform - SerializePlatform filePlatform; - NV_ERR_CHECK_WARN_RETURN( hdr.getPlatform(filePlatform), "Unknown platform" ); - NV_BOOL_ERR_CHECK_WARN_RETURN( - GetCurrentPlatform() == filePlatform, - Serializer::ERROR_INVALID_PLATFORM, - "Failed to inplace deserialize: platforms do not match" ); - - //Fix pointers - - uint32_t nrelocs; - BinaryReloc *relocs = getRelocationTable(hdr, start, nrelocs); - - //Using refOffs-array causes a memory allocation hence it's bad. - //But we have to fix all pointers prior to calling finishNvParameterized(). - //Basically we have 3 opportunities: - // - reorder relocs s.t. NvParameterized-objects go after all other relocs (strings, etc.) - // (but this limits our binary file format + it turns out to be tricky to implement) - // - walk through array once again - // (but this may have a significant time penalty) - // - reuse space in relocation table to store offsets of references - // (this sounds nice and easy enough!) - // - or maybe just process relocations in reverse order - // (this one should be the fastest but once again this limits our format) - //For now we just keep the dynamic array as it seems to be pretty fast. - - physx::shdfnd::Array refOffs((Traits::Allocator(mTraits))); - refOffs.reserve(nrelocs / 10); - - for(uint32_t i = 0; i < nrelocs; ++i) - { - BinaryReloc &reloc = relocs[i]; - - NV_BOOL_ERR_CHECK_RETURN( - reloc.type < static_cast(RELOC_LAST), - Serializer::ERROR_INVALID_RELOC_TYPE ); - - switch( reloc.type ) - { - case uint32_t(RELOC_ABS_RAW): - //Raw data, do nothing - break; - case uint32_t(RELOC_ABS_REF): - //Reference, init later - refOffs.pushBack(reloc.off); - break; - default: - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_INTERNAL_PTR; - } - - char *&ptr = *reinterpret_cast(start + reloc.off); - - size_t off = reinterpret_cast(ptr); //size_t == uintptr_t - NV_BOOL_ERR_CHECK_RETURN( off < dataLen, Serializer::ERROR_INVALID_INTERNAL_PTR ); - - ptr = start + off; - } - - uint32_t *refCount = reinterpret_cast(&hdr.numObjects); - - //Init references (vtables and stuff) - for(uint32_t i = 0; i < refOffs.size(); ++i) - { - char *&p = *reinterpret_cast(start + refOffs[i]); - - const ObjHeader &objHdr = *reinterpret_cast(p); - - const char *className = objHdr.className; - NV_BOOL_ERR_CHECK_RETURN( className, Serializer::ERROR_INVALID_INTERNAL_PTR ); - - p += objHdr.dataOffset; - - if( !objHdr.isIncluded ) - { - Interface *obj = PX_PLACEMENT_NEW(p, NvParameters)(mTraits, start, reinterpret_cast(refCount)); - PX_UNUSED(obj); - - //We do not want objHdr.verify() here - } - else - { - Interface *obj = mTraits->finishNvParameterized(className, objHdr.version, p, start, reinterpret_cast(refCount)); - NV_BOOL_ERR_CHECK_RETURN( obj, Serializer::ERROR_OBJECT_CREATION_FAILED ); - NV_ERR_CHECK_RETURN( verifyObjectHeader(objHdr, obj, mTraits) ); - - if( objHdr.version != mTraits->getCurrentVersion(className) ) - doesNeedUpdate = true; - } //if( !objHdr.isIncluded ) - } //i - - // Table of root references - ObjectTableEntry *objectTable = reinterpret_cast(start + hdr.dataOffset); //At start of data section - - //Init results - res.init(mTraits, static_cast(hdr.numObjects)); - for(uint32_t i = 0; i < static_cast(hdr.numObjects); ++i) - res[i] = objectTable[i].obj; - - *refCount = refOffs.size(); //Release after all inplace references are destroyed - - // Conversion will be done after deserialization to avoid releasing inplace memory if all objects are destroyed - //(otherwise we may have data corruption) - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::updateAllCounted2WithAlignment(BinaryHeader &hdr, char * /*start*/) -{ - hdr.version = BinVersions::WithAlignment; - hdr.alignment = 8; - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::updateInitial2AllCounted(BinaryHeader &hdr, char *start) -{ - // versionAllRefsCounted counts all references instead of just top-level references; - // to achieve this we simply set mDoDeallocateSelf to true in all references - - uint32_t nrelocs; - BinaryReloc *relocs = getRelocationTable(hdr, start, nrelocs); - - for(uint32_t i = 0; i < nrelocs; ++i) - { - BinaryReloc &reloc = relocs[i]; - - if( reloc.type != static_cast(RELOC_ABS_REF) ) - continue; - - size_t targetOff = *reinterpret_cast(start + reloc.off); //size_t == uintptr_t - - const ObjHeader &objHdr = *reinterpret_cast(start + targetOff); - - targetOff += objHdr.dataOffset; //Points to start of NvParameters - -#if PX_PS4 == 1 -#pragma GCC diagnostic ignored "-Wunused-private-field" -#endif - // MyNvParameters has the same layout as NvParameters - class MyNvParameters - { - void *vtable; - void *mParameterizedTraits; - void *mSerializationCb; - void *mCbUserData; - void *mBuffer; - void *mRefCount; - void *mName; - void *mClassName; - bool mDoDeallocateSelf; - bool mDoDeallocateName; - bool mDoDeallocateClassName; - - public: - void setDoDeallocateSelf() { mDoDeallocateSelf = true; } - }; -#if PX_PS4 == 1 -#pragma GCC diagnostic warning "-Wunused-private-field" -#endif - MyNvParameters *pAsNvParameters = reinterpret_cast(start + targetOff); - pAsNvParameters->setDoDeallocateSelf(); - } - - hdr.version = BinVersions::AllRefsCounted; - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::readArraySlow(Handle &handle, PlatformInputStream &s) -{ - int32_t n; - NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(n), Serializer::ERROR_INVALID_ARRAY ); - - for(int32_t i = 0; i < n; ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( readBinaryData(handle, s) ); - handle.popIndex(); - } - - return Serializer::ERROR_NONE; -} - -static bool IsSimpleStruct(const Definition *pd) -{ - // Empty structs are special - if( 0 == pd->numChildren() ) - return false; - - for(int32_t i = 0; i < pd->numChildren(); ++i) - { - if (pd->child(i)->type() == TYPE_STRING || pd->child(i)->type() == TYPE_ENUM || pd->child(i)->type() == TYPE_ARRAY || - pd->child(i)->type() == TYPE_REF || pd->child(i)->type() == TYPE_STRUCT - ) - { - return false; - } - } - - return true; -} - -#ifndef WITHOUT_APEX_SERIALIZATION - -Serializer::ErrorType BinSerializer::internalSerialize(physx::PxFileBuf &stream, const Interface **objs, uint32_t nobjs, bool doMetadata) -{ - NV_BOOL_ERR_CHECK_WARN_RETURN( - PlatformABI::VerifyCurrentPlatform(), - Serializer::ERROR_INVALID_PLATFORM , - "Current platform is not supported, aborting" ); - - NV_BOOL_ERR_CHECK_RETURN( BinaryHeader::CheckAlignment(), Serializer::ERROR_INVALID_PLATFORM ); - - PlatformABI targetParams; - NV_ERR_CHECK_WARN_RETURN( PlatformABI::GetPredefinedABI(mPlatform, targetParams), "Unknown platform" ); - NV_BOOL_ERR_CHECK_WARN_RETURN( - targetParams.isNormal(), - Serializer::ERROR_INVALID_PLATFORM, - "Target platform is not supported, aborting" ); - - PlatformABI curParams; - NV_ERR_CHECK_WARN_RETURN( PlatformABI::GetPredefinedABI(GetCurrentPlatform(), curParams), "Unknown platform" ); - NV_BOOL_ERR_CHECK_RETURN( curParams.isNormal(), Serializer::ERROR_INVALID_PLATFORM ); - - Dictionary dict(mTraits); //Dictionary is updated in other routines - - // Compute object data - - typedef physx::shdfnd::Array StreamArray; - StreamArray dataStreams((Traits::Allocator(mTraits))); - dataStreams.reserve(nobjs); - for(uint32_t i = 0; i < nobjs; ++i) - { - Handle handle(*objs[i], ""); - NV_BOOL_ERR_CHECK_RETURN( handle.isValid(), Serializer::ERROR_UNKNOWN ); - - dataStreams.pushBack(PlatformOutputStream(targetParams, mTraits, dict)); - dataStreams.back().setAlignment(16); // 16 for safety - - NV_ERR_CHECK_WARN_RETURN( storeBinaryData(*objs[i], handle, dataStreams.back()), "Failed to serialize data for object %d", i ); - } - - // Compute metadata - - PlatformOutputStream metadataStream(targetParams, mTraits, dict); - metadataStream.setAlignment(16); // 16 for safety - uint32_t numMetadata = 0; - if( doMetadata ) - { - typedef physx::shdfnd::Pair VersionedClass; - typedef physx::shdfnd::HashMap, Traits::Allocator> MapClass2Def; - MapClass2Def mapClass2Def((Traits::Allocator(mTraits))); - - //We track all classes that were saved to avoid duplicate metadata info - class MyRefCallback: public ReferenceInterface - { - MapClass2Def &mapClass2Def; - - //Silence warnings on unable to generate assignment operator - void operator =(MyRefCallback) {} - public: - MyRefCallback(MapClass2Def &mapClass2Def_): mapClass2Def(mapClass2Def_) {} - - void referenceCallback(Handle &handle) - { - Interface *iface; - handle.getParamRef(iface); - if( iface ) - mapClass2Def[ VersionedClass(iface->className(), iface->version()) ] = iface->rootParameterDefinition(); - } - } cb(mapClass2Def); - - for(uint32_t i = 0; i < nobjs; ++i) - { - if( !objs[i] ) - continue; - - mapClass2Def[ VersionedClass(objs[i]->className(), objs[i]->version()) ] = objs[i]->rootParameterDefinition(); - getReferences(*objs[i], cb, false, true, true); - } - - numMetadata = mapClass2Def.size(); - - for(MapClass2Def::Iterator i = mapClass2Def.getIterator(); !i.done(); ++i) - { - metadataStream.beginStruct(targetParams.getMetaEntryAlignment()); - - metadataStream.storeStringPtr(i->first.first); //className - metadataStream.storeSimple(i->first.second); //classVersion - - //info - Reloc &reloc = metadataStream.storePtr(RELOC_ABS_RAW, targetParams.getMetaInfoAlignment()); - NV_ERR_CHECK_RETURN( storeMetadataInfo(i->second, *reloc.ptrData) ); - - metadataStream.closeStruct(); - } //i - } - - // Init header - - BinaryHeader hdr; - - hdr.magic = Magic; - hdr.type = BINARY_TYPE_PLAIN; - hdr.version = Version; - hdr.numObjects = static_cast(nobjs); - hdr.fileLength = 0; - hdr.dictOffset = 0; - hdr.dataOffset = 0; - hdr.relocOffset = 0; - hdr.metadataOffset = 0; - - hdr.archType = static_cast(mPlatform.archType); - hdr.compilerType = static_cast(mPlatform.compilerType); - hdr.compilerVer = mPlatform.compilerVer; - hdr.osType = static_cast(mPlatform.osType); - hdr.osVer = mPlatform.osVer; - - hdr.numMetadata = numMetadata; - hdr.alignment = 0; - - BinaryHeaderExt ext; - memset(&ext, 0, sizeof(ext)); - memcpy(&ext.vcsSafetyFlags, VCS_SAFETY_FLAGS, 4); - - // Resulting stream - - PlatformOutputStream joinStream(targetParams, mTraits, dict); - - // Merge header - - joinStream.storeBytes(reinterpret_cast(&hdr), sizeof(hdr)); - joinStream.storeBytes(reinterpret_cast(&ext), sizeof(ext)); - joinStream.align(16); - - // Merge dictionary - - uint32_t dictOffset = joinStream.size(); - joinStream.mergeDict(); - - // Merge data - - uint32_t dataOffset = 0; - { - joinStream.align(joinStream.getTargetABI().aligns.pointer); - dataOffset = joinStream.size(); - - //Create object table - for(uint32_t i = 0; i < nobjs; ++i) - { - dataStreams[i].flatten(); - - Reloc &reloc = joinStream.storePtr(RELOC_ABS_REF, dataStreams[i].alignment()); - reloc.ptrData->merge(dataStreams[i]); - - //This was requested for faster peeking of contained assets - joinStream.storeStringPtr(objs[i]->className()); - joinStream.storeStringPtr(objs[i]->name()); - - //UE3 was once using this - joinStream.storeNullPtr(); - } - - joinStream.flatten(); //Merge all data-related pointers - } - - // Merge metadata - - uint32_t metadataOffset = 0; - if( doMetadata ) - { - metadataOffset = joinStream.merge(metadataStream); - joinStream.flatten(); //Merge all metadata-related pointers - } - - // Merge relocation data - - uint32_t relocOffset = joinStream.writeRelocs(); - - // Update offsets in header - - void *data = joinStream.getData(); - - BinaryHeader &hdrFinal = *reinterpret_cast(data); - hdrFinal.fileLength = joinStream.size(); - hdrFinal.dictOffset = dictOffset; - hdrFinal.dataOffset = dataOffset; - hdrFinal.metadataOffset = metadataOffset; - hdrFinal.relocOffset = relocOffset; - hdrFinal.alignment = joinStream.alignment(); - - BinaryHeaderExt &extFinal = *reinterpret_cast((char *)data + sizeof(BinaryHeader)); - - //Make platform-independent - hdrFinal.canonize(); - extFinal.canonize(); - - // Write data to stream - - if( stream.tellWrite() % joinStream.alignment() ) - { - NV_PARAM_TRAITS_WARNING( - mTraits, - "Input stream is unaligned, " - "you will not be able to inplace deserialize it " - "without copying to intermediate buffer" - ); - } - - NV_BOOL_ERR_CHECK_RETURN( - joinStream.size() == stream.write(data, joinStream.size()), - Serializer::ERROR_STREAM_ERROR ); - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType BinSerializer::storeMetadataInfo(const Definition *def, PlatformOutputStream &s) -{ - s.beginStruct(s.getTargetABI().getMetaInfoAlignment()); - - //type - s.storeSimple((uint32_t)def->type()); - - //arraySize - s.storeSimple(TYPE_ARRAY == def->type() ? (int32_t)def->arraySize() : -1); - - //shortName - s.storeStringPtr(def->name()); - - //structName - s.storeStringPtr(def->structName()); - - //alignment - s.storeSimple(def->alignment()); - - //padding - s.storeSimple(def->padding()); - - //numChildren - s.storeSimple(def->numChildren()); - - //children - for(int32_t i = 0; i < def->numChildren(); ++i) - { - Reloc &childrenReloc = s.storePtr(RELOC_ABS_RAW, s.getTargetABI().getMetaInfoAlignment()); - NV_ERR_CHECK_RETURN( storeMetadataInfo(def->child(i), *childrenReloc.ptrData) ); - } - - //numHints - s.storeSimple(def->numHints()); - - //hints - for(int32_t i = 0; i < def->numHints(); ++i) - { - const Hint *hint = def->hint(i); - - s.beginStruct(s.getTargetABI().getHintAlignment()); - - s.storeSimple((uint32_t)hint->type()); - s.storeStringPtr(hint->name()); - - s.beginStruct(s.getTargetABI().getHintValueAlignment()); - switch( hint->type() ) - { - case TYPE_U64: - s.storeSimple(hint->asUInt()); - break; - case TYPE_F64: - s.storeSimple(hint->asFloat()); - break; - case TYPE_STRING: - s.storeStringPtr(hint->asString()); - break; - -NV_PARAMETRIZED_LINAL_DATATYPE_LABELS -NV_PARAMETRIZED_REF_DATATYPE_LABELS -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS -NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS - case TYPE_F32: - case TYPE_U32: case TYPE_U16: case TYPE_U8: - case TYPE_I64: case TYPE_I32: case TYPE_I16: case TYPE_I8: case TYPE_BOOL: - default: - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_DATA_TYPE; - } - s.align(s.getTargetABI().getHintValueSize()); - s.closeStruct(); - - s.closeStruct(); - } - - //numEnumVals - s.storeSimple(def->numEnumVals()); - - //enumVals - for(int32_t i = 0; i < def->numEnumVals(); ++i) - s.storeStringPtr(def->enumVal(i)); - - //numRefVariantVals - s.storeSimple(def->numRefVariants()); - - //refVariants - for(int32_t i = 0; i < def->numRefVariants(); ++i) - s.storeStringPtr(def->refVariantVal(i)); - - s.closeStruct(); - - return Serializer::ERROR_NONE; -} - -//Store array of arbitrary type (slow version) -Serializer::ErrorType BinSerializer::storeArraySlow(Handle &handle, PlatformOutputStream &s) -{ - int32_t size; - NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size), Serializer::ERROR_INVALID_ARRAY ); - - const Interface &obj = *handle.getConstInterface(); - for(int32_t i = 0; i < size; ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( storeBinaryData(obj, handle, s) ); - handle.popIndex(); - } - - return Serializer::ERROR_NONE; -} - -//Print binary data for part of NvParameterized object addressed by handle -Serializer::ErrorType BinSerializer::storeBinaryData(const Interface &obj, Handle &handle, PlatformOutputStream &res, bool isRootObject) -{ - bool isObject = !handle.numIndexes(); - - if( isObject ) - res.storeObjHeader(obj); - - const Definition *pd = handle.parameterDefinition(); - - bool doNotSerialize = 0 != pd->hint("DONOTSERIALIZE"), - isDynamicArray = pd->type() == TYPE_ARRAY && !pd->arraySizeIsFixed(); - - // Alignment in dynamic array means alignment of dynamic memory - // so we do not insert it here - if( pd->alignment() && !isDynamicArray ) - res.align(pd->alignment()); - - //Dynamic arrays are special because we need some of their fields for correct inplace deserialization - if( doNotSerialize && !isDynamicArray ) - { - //Simply skip bytes - res.align(res.getTargetAlignment(pd)); - res.skipBytes(res.getTargetSize(pd)); - - return Serializer::ERROR_NONE; - } - - switch( pd->type() ) - { - case TYPE_ARRAY: - { - if( pd->arraySizeIsFixed() ) - { - res.beginArray(pd); - storeArraySlow(handle, res); - res.closeArray(); - } - else - { - res.beginStruct(pd); //Dynamic arrays are implemented as structs - - bool isEmpty = false; - if( doNotSerialize ) - isEmpty = true; - else - { - for(int32_t i = 0; i < pd->arrayDimension(); ++i) - { - int32_t size = 0; - NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size, i), Serializer::ERROR_INVALID_ARRAY ); - - if( 0 == size ) - { - isEmpty = true; - break; - } - } - } - - const Definition *elemPd = pd; - for(int32_t i = 0; i < pd->arrayDimension(); ++i) - elemPd = elemPd->child(0); - - //Pointer-to-data - Reloc *reloc = 0; - if( isEmpty ) - res.storeNullPtr(); - else - { - reloc = &res.storePtr(RELOC_ABS_RAW, elemPd); - if( pd->alignment() ) - reloc->ptrData->setAlignment(physx::PxMax(reloc->ptrData->alignment(), pd->alignment())); - } - - //isAllocated - res.storeSimple(false); - - //elementSize - res.storeSimple(res.getTargetSize(elemPd)); - - //arraySizes - const Definition *subArrayPd = pd; - res.beginArray(res.getTargetABI().getAlignment()); - for(int32_t dim = 0; dim < pd->arrayDimension(); ++dim) - { - // Store size of static dimensions even if doNotSerialize is on - int32_t size = 0; - if( !doNotSerialize || subArrayPd->arraySizeIsFixed() ) - NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size, dim), Serializer::ERROR_INVALID_ARRAY ); - - res.storeSimple(size); - - NV_BOOL_ERR_CHECK_RETURN( 1 == subArrayPd->numChildren(), Serializer::ERROR_UNKNOWN ); - subArrayPd = subArrayPd->child(0); - } - res.closeArray(); - - //Data - if( !isEmpty ) - { - reloc->ptrData->beginArray(elemPd); - - int32_t size = -1; - NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size), Serializer::ERROR_INVALID_ARRAY ); - - const Definition *child = pd->child(0); - switch( child->type() ) - { -# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name: \ - { \ - reloc->ptrData->storeSimpleArray(handle); \ - break; \ - } -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_STRUCT: - if( IsSimpleStruct(child) ) - { - //Fast path for simple structs - reloc->ptrData->storeSimpleStructArray(handle); - break; - } - - //Else fall through to default, includes TYPE_MAT34 case -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS -NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS -NV_PARAMETRIZED_STRING_DATATYPE_LABELS -NV_PARAMETRIZED_REF_DATATYPE_LABELS -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS - case TYPE_ARRAY: - default: - storeArraySlow(handle, *reloc->ptrData); - break; - } - - reloc->ptrData->closeArray(); - } - - res.closeStruct(); - } - break; - } - - case TYPE_STRUCT: - { - uint32_t oldSize = isObject ? res.beginObject(obj, isRootObject, pd) : res.beginStruct(pd); - - for(int32_t i = 0; i < pd->numChildren(); ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( storeBinaryData(obj, handle, res) ); - handle.popIndex(); - } - - //Empty structs are at least 1 char long - if( res.size() == oldSize ) - res.storeSimple((uint8_t)0); - - if( isObject ) - res.closeObject(); - else - res.closeStruct(); - - break; - } - - case TYPE_STRING: - { - const char *s = 0; - handle.getParamString(s); - - res.beginString(); - - //buf - res.storeStringPtr(s); - - //isAllocated - res.storeSimple(false); - - res.closeString(); - - break; - } - - case TYPE_ENUM: - { - const char *s = 0; - handle.getParamEnum(s); - - res.storeStringPtr(s); - - break; - } - - case TYPE_REF: - { - Interface *refObj = 0; - handle.getParamRef(refObj); - - if( !refObj ) - res.storeNullPtr(); - else if( pd->isIncludedRef() ) - { - Handle refHandle(*refObj, ""); - NV_BOOL_ERR_CHECK_RETURN( refHandle.isValid(), Serializer::ERROR_UNKNOWN ); - - Reloc &reloc = res.storePtr(RELOC_ABS_REF, 16); //16 for safety - NV_ERR_CHECK_RETURN( storeBinaryData(*refObj, refHandle, *reloc.ptrData, false) ); - } - else //Named reference - { - Reloc &reloc = res.storePtr(RELOC_ABS_REF, 16); //16 for safety - reloc.ptrData->storeObjHeader(*refObj, false); - reloc.ptrData->beginObject(*refObj, false, 0); - reloc.ptrData->closeObject(); //Named references are instances of NvParameters => no additional fields - } - - break; - } - - case TYPE_POINTER: - { - res.storeNullPtr(); - break; - } - - -# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name: \ - { \ - c_type val; \ - NV_PARAM_ERR_CHECK_RETURN( handle.getParam##type_name(val), Serializer::ERROR_INVALID_VALUE ); \ - res.storeSimple(val); \ - break; \ - } -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_MAT34: - { - float val[12]; - NV_PARAM_ERR_CHECK_RETURN( handle.getParamMat34Legacy(val), Serializer::ERROR_INVALID_VALUE ); - res.storeSimple(val, 12); - break; - } - -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - DEBUG_ASSERT(0 && "Unknown type"); - return Serializer::ERROR_INVALID_DATA_TYPE; - } - - return Serializer::ERROR_NONE; -} - -#endif - -//Read NvParameterized object data -Serializer::ErrorType BinSerializer::readObject(Interface *&obj, PlatformInputStream &data) -{ - ObjHeader objHdr; - NV_ERR_CHECK_WARN_RETURN( data.readObjHeader(objHdr), "Failed to deserialize object header" ); - Releaser releaseClassName((void *)objHdr.className, mTraits), - releaseName((void *)objHdr.name, mTraits), - releaseChecksum((void *)objHdr.checksum, mTraits); - - if( !objHdr.isIncluded ) - { - void *buf = mTraits->alloc(sizeof(NvParameters)); - NV_BOOL_ERR_CHECK_RETURN( buf, Serializer::ERROR_MEMORY_ALLOCATION_FAILURE ); - - obj = PX_PLACEMENT_NEW(buf, NvParameters)(mTraits); - obj->setClassName(objHdr.className); - - if( objHdr.name ) - obj->setName(objHdr.name); - - //We do not want objHdr.verify() here - } - else - { - NV_BOOL_ERR_CHECK_RETURN( objHdr.className, Serializer::ERROR_OBJECT_CREATION_FAILED ); - - obj = mTraits->createNvParameterized(objHdr.className, objHdr.version); - NV_BOOL_ERR_CHECK_RETURN( obj, Serializer::ERROR_OBJECT_CREATION_FAILED ); - - if( objHdr.name ) - obj->setName(objHdr.name); - - NV_ERR_CHECK_RETURN( verifyObjectHeader(objHdr, obj, mTraits) ); - - Handle handle(*obj, ""); - NV_BOOL_ERR_CHECK_RETURN( handle.isValid(), Serializer::ERROR_UNKNOWN ); - - NV_ERR_CHECK_RETURN( data.pushPos(objHdr.dataOffset) ); - NV_ERR_CHECK_RETURN( readBinaryData(handle, data) ); - data.popPos(); - } - - return Serializer::ERROR_NONE; -} - -//Read binary data of NvParameterized object addressed by handle -Serializer::ErrorType BinSerializer::readBinaryData(Handle &handle, PlatformInputStream &data) -{ - const Definition *pd = handle.parameterDefinition(); - - bool isDynamicArray = TYPE_ARRAY == pd->type() && !pd->arraySizeIsFixed(); - - // See comment in storeBinaryData - if( pd->alignment() && !isDynamicArray ) - data.align(pd->alignment()); - - if( pd->hint("DONOTSERIALIZE") ) - { - //Simply skip DONOTSERIALIZE - data.align(data.getTargetAlignment(pd)); - NV_ERR_CHECK_RETURN( data.skipBytes(data.getTargetSize(pd)) ); - return Serializer::ERROR_NONE; - } - - switch( pd->type() ) - { - case TYPE_ARRAY: - { - if( pd->arraySizeIsFixed() ) - { - data.beginArray(pd); - for(int32_t i = 0; i < pd->arraySize(); ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( readBinaryData(handle, data) ); - handle.popIndex(); - } - data.closeArray(); - } - else - { - data.beginStruct(pd); //Dynamic arrays are implemented as structs - - uint32_t elemOff; - NV_ERR_CHECK_RETURN( data.readPtr(elemOff) ); - - bool isAllocated; - NV_ERR_CHECK_RETURN( data.read(isAllocated) ); - - int32_t elementSize; - NV_ERR_CHECK_RETURN( data.read(elementSize) ); //elementSize - - data.beginStruct(data.getTargetABI().aligns.i32); //Start array of sizes - - int32_t arraySize; - NV_ERR_CHECK_RETURN( data.read(arraySize) ); //We need only the first size - - const Definition *subArrayPd = pd->child(0); - for(int32_t dim = 1; dim < pd->arrayDimension(); ++dim) - { - int32_t size; - NV_ERR_CHECK_RETURN( data.read(size) ); - - // We do not support nested dynamic arrays - if( subArrayPd->arraySizeIsFixed() ) - NV_BOOL_ERR_CHECK_RETURN( size == subArrayPd->arraySize(), Serializer::ERROR_INVALID_ARRAY ); - - subArrayPd = subArrayPd->child(0); - } - data.closeStruct(); //End array of sizes - - NV_PARAM_ERR_CHECK_RETURN( handle.resizeArray(arraySize), Serializer::ERROR_INVALID_ARRAY ); - - if( elemOff ) - { - // Check alignment - uint32_t align = pd->alignment(); - if( align && elemOff % align ) { - char longName[256]; - handle.getLongName(longName, sizeof(longName)); - NV_PARAM_TRAITS_WARNING( - mTraits, - "%s: array is unaligned, " - "you will not be able to inplace deserialize it " - "without copying to intermediate buffer.", - longName - ); - } - - NV_ERR_CHECK_RETURN( data.pushPos(elemOff) ); - - switch( pd->child(0)->type() ) - { -# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name: \ - { \ - NV_ERR_CHECK_RETURN( data.readSimpleArray(handle) ); \ - break; \ - } -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_STRUCT: - { - const Definition *child = pd->child(0); - if( IsSimpleStruct(child) ) - { - //Fast path for simple structs - NV_ERR_CHECK_RETURN( data.readSimpleStructArray(handle) ); - break; - } - - //Else fall through to default, including TYPE_MAT34 case - } - -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS -NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS -NV_PARAMETRIZED_STRING_DATATYPE_LABELS -NV_PARAMETRIZED_REF_DATATYPE_LABELS -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS -case TYPE_ARRAY: - default: - NV_ERR_CHECK_RETURN( readArraySlow(handle, data) ); - break; - } - - data.popPos(); - } - - data.closeStruct(); - } - break; - } - - case TYPE_STRUCT: - { - uint32_t oldPos = data.getPos(); - - data.beginStruct(pd); - for(int32_t i = 0; i < pd->numChildren(); ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( readBinaryData(handle, data) ); - handle.popIndex(); - } - - //Empty structs are at least 1 char long - if( data.getPos() == oldPos ) - { - uint8_t tmp; - NV_ERR_CHECK_RETURN( data.read(tmp) ); - } - - data.closeStruct(); - - break; - } - - case TYPE_STRING: - { - data.beginString(); - - uint32_t off; - NV_ERR_CHECK_RETURN( data.readPtr(off) ); - - const char *s; - NV_ERR_CHECK_RETURN( data.readString(off, s) ); - - NV_PARAM_ERR_CHECK_RETURN( handle.setParamString(s), Serializer::ERROR_INVALID_VALUE ); - mTraits->free((char *)s); - - bool isAllocated; - NV_ERR_CHECK_RETURN( data.read(isAllocated) ); - - data.closeString(); - - break; - } - - case TYPE_ENUM: - { - uint32_t off; - NV_ERR_CHECK_RETURN( data.readPtr(off) ); - - const char *s; - NV_ERR_CHECK_RETURN( data.readString(off, s) ); - - NV_BOOL_ERR_CHECK_RETURN( s, Serializer::ERROR_INVALID_VALUE ); - NV_PARAM_ERR_CHECK_RETURN( handle.setParamEnum(s), Serializer::ERROR_INVALID_VALUE ); - - mTraits->free((char *)s); - - break; - } - - case TYPE_REF: - { - uint32_t objPos; - NV_ERR_CHECK_RETURN( data.readPtr(objPos) ); - - Interface *refObj = 0; - - if( objPos ) - { - NV_ERR_CHECK_RETURN( data.pushPos(objPos) ); - NV_ERR_CHECK_RETURN( readObject(refObj, data) ); - data.popPos(); - } - - if( refObj && (-1 == handle.parameterDefinition()->refVariantValIndex(refObj->className())) ) - { - char longName[256]; - handle.getLongName(longName, sizeof(longName)); - NV_PARAM_TRAITS_WARNING( - mTraits, - "%s: setting reference of invalid class %s", - longName, - refObj->className() - ); - } - - NV_PARAM_ERR_CHECK_RETURN( handle.setParamRef(refObj), Serializer::ERROR_INVALID_REFERENCE ); - - break; - } - - case TYPE_POINTER: - { - void *tmp; - NV_ERR_CHECK_RETURN( data.read(tmp) ); - break; - } - - -# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name: \ - { \ - c_type val; \ - NV_ERR_CHECK_RETURN(data.read(val)); \ - NV_PARAM_ERR_CHECK_RETURN( handle.setParam##type_name(val), Serializer::ERROR_INVALID_VALUE ); \ - break; \ - } -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_MAT34: - { - float val[12]; - for (int k = 0; k < 12; ++k) - { - NV_ERR_CHECK_RETURN(data.read(val[k])); - } - NV_PARAM_ERR_CHECK_RETURN( handle.setParamMat34Legacy(val), Serializer::ERROR_INVALID_VALUE ); - break; - } - -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - DEBUG_ASSERT(0 && "Unknown type"); - return Serializer::ERROR_INVALID_DATA_TYPE; - } - - return Serializer::ERROR_NONE; -} - -bool isBinaryFormat(physx::PxFileBuf &stream) -{ - uint32_t magic; - stream.peek(&magic, 4); - return Canonize(magic) == BinSerializer::Magic; -} - -Serializer::ErrorType peekBinaryPlatform(physx::PxFileBuf &stream, SerializePlatform &platform) -{ - BinaryHeader hdr; - BinaryHeaderExt ext; - NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); - NV_ERR_CHECK_RETURN( hdr.getPlatform(platform) ); - return Serializer::ERROR_NONE; -} - -} // namespace NvParameterized +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +/* + Binary serialization is very complex and error-prone + process. Ensuring that it works properly is _critically_ + important for the engine. + + Before you do any significant changes to this code + please get familiar with C/C++ object layouts. + You may find these links helpful: + + * APEX binary file format + https://wiki.nvidia.com/engwiki/index.php/PhysX/APEX/architecture/design/File_Formats + (may not be up-to-date) + + * C++ data alignment and portability + http://www.codesynthesis.com/~boris/blog/2009/04/06/cxx-data-alignment-portability/ + + * Data structure alignment + http://en.wikipedia.org/wiki/Data_structure_alignment + + * About Data Alignment + http://msdn.microsoft.com/en-us/library/ms253949%28v=VS.80%29.aspx + + * Types and Storage + http://msdn.microsoft.com/en-us/library/02c56cw3.aspx + + * Jan Gray's article in "C++: Under the Hood" + http://www.openrce.org/articles/files/jangrayhood.pdf + + * Windows Data Alignment on IPF, x86, and x64 + http://msdn.microsoft.com/en-us/library/aa290049%28VS.71%29.aspx + + * GCC alignment in classes gotcha + https://ps3.scedev.net/forums/thread/41593/ + + * all messages in thread http://compilers.iecc.com/comparch/article/94-08-119 + + * Memory Layout for Multiple and Virtual Inheritance + http://www.phpcompiler.org/articles/virtualinheritance.html + + * The "Empty Member" C++ Optimization + http://www.cantrip.org/emptyopt.html + + You may also want to see examples of existing ABI + for various platforms: + + * Agner Fog's Calling conventions for different C++ compilers + and operating systems, + http://www.agner.org/optimize/calling_conventions.pdf + + * Itanium C++ ABI Data Layout + http://www.codesourcery.com/public/cxx-abi/abi.html#layout + + * Introduction to Mac OS X ABI Function Call Guide + http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/LowLevelABI/000-Introduction/introduction.html + + After you implement you changes be sure to check that ALL + NvParameterized unit tests + * Test/MediaTest + * Test/RandomClasses + * Test/ParamRandomTest + run without errors on ALL supported platforms: + * Win32 + * Win64 + * PS3 + * XBOX 360 + (in future we may also have Mac, Tegra, Linux on PC, etc.). + + If you need to add new platform to this list, be sure to + analyze it's ABI with ABIDumper + (//sw/nvidia/shared/general/ABIDumper) and check whether + it requires special changes in current serialization code + (Mac does). + + If you ever implement new features be sure to cover them + in random schema generator + NvParameterized/scripts/RandomSchema.pl, generate a bunch + (10 at least) of new random schemas for Test/RandomClasses + and add them to p4 (and verify that they work on all + platforms!). +*/ + +#include + +#include "PsArray.h" +#include "PsHash.h" +#include "PsHashMap.h" + +#include "NvParameters.h" +#include "nvparameterized/NvParamUtils.h" +#include "NvTraitsInternal.h" + +#include "BinaryHelper.h" + +#include "PlatformABI.h" +#include "PlatformInputStream.h" +#include "PlatformOutputStream.h" + +#include "BinSerializer.h" + +namespace NvParameterized +{ + +// Verify that file header is ok +Serializer::ErrorType BinSerializer::verifyFileHeader( + const BinaryHeader &hdr, + const BinaryHeaderExt *ext, + uint32_t dataLen ) const +{ + NV_BOOL_ERR_CHECK_WARN_RETURN( BinSerializer::Magic == hdr.magic, Serializer::ERROR_INVALID_MAGIC, "Invalid APB file: magic number does not match: %x", hdr.magic ); + NV_BOOL_ERR_CHECK_WARN_RETURN( (uint32_t)BINARY_TYPE_PLAIN == hdr.type, Serializer::ERROR_INVALID_FILE_FORMAT, "Invalid APB file: unknown file format: %d", hdr.type ); + + NV_BOOL_ERR_CHECK_WARN_RETURN( + BinVersions::WithExtendedHeader == hdr.version || BinVersions::WithAlignment == hdr.version, + Serializer::ERROR_INVALID_FILE_VERSION, "Invalid APB header: unexpected version: %x", hdr.version ); + + // Verify offsets + NV_BOOL_ERR_CHECK_WARN_RETURN( hdr.fileLength <= dataLen + && hdr.dataOffset < hdr.fileLength + && hdr.relocOffset < hdr.fileLength + && hdr.dictOffset < hdr.fileLength + && hdr.metadataOffset < hdr.fileLength, + Serializer::ERROR_INVALID_INTERNAL_PTR, + "Invalid APB file: section offsets do not match file length" ); + + if( ext ) + { + NV_BOOL_ERR_CHECK_WARN_RETURN( + 0 == memcmp((const char *)&ext->vcsSafetyFlags, VCS_SAFETY_FLAGS, 4), + Serializer::ERROR_INVALID_CHAR, + "Invalid APB file: perhaps your editor inserts redundant carriage returns?" + ); + } + + return Serializer::ERROR_NONE; +} + +// Peeks APB header from stream +static Serializer::ErrorType peekFileHeader(physx::PxFileBuf &stream, BinaryHeader &hdr, BinaryHeaderExt &ext, bool doDecanonize = true) +{ + NV_BOOL_ERR_CHECK_RETURN( + sizeof(BinaryHeader) == stream.peek(&hdr, sizeof(BinaryHeader)), + Serializer::ERROR_INVALID_FILE_FORMAT ); + + if( hdr.version >= BinVersions::WithExtendedHeader ) + { + uint32_t fileOff = stream.tellRead(); + + stream.seekRead(fileOff + sizeof(BinaryHeader)); + NV_BOOL_ERR_CHECK_RETURN( + sizeof(BinaryHeaderExt) == stream.peek(&ext, sizeof(BinaryHeaderExt)), + Serializer::ERROR_INVALID_FILE_FORMAT ); + + stream.seekRead(fileOff); + } + + if( doDecanonize ) + hdr.decanonize(); + + return Serializer::ERROR_NONE; +} + +// Extract platform ABI from file header +Serializer::ErrorType BinSerializer::getPlatformInfo( + BinaryHeader &hdr, + BinaryHeaderExt *ext, + PlatformABI &abi ) const +{ + //Difference between these versions is not important for non-inplace serializer + if( hdr.version == BinVersions::Initial || hdr.version == BinVersions::AllRefsCounted ) + hdr.version = BinVersions::WithAlignment; + + NV_ERR_CHECK_RETURN( verifyFileHeader(hdr, ext, hdr.fileLength) ); + + SerializePlatform platform; + NV_ERR_CHECK_WARN_RETURN(hdr.getPlatform(platform), "Invalid platform"); + + NV_ERR_CHECK_WARN_RETURN( PlatformABI::GetPredefinedABI(platform, abi), "Unknown platform" ); + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::peekInplaceAlignment(physx::PxFileBuf& stream, uint32_t& align) +{ + BinaryHeader hdr; + BinaryHeaderExt ext; + NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext, false) ); + align = Canonize(hdr.alignment); + return Serializer::ERROR_NONE; +} + +// Verify that object matches its header +Serializer::ErrorType BinSerializer::verifyObjectHeader(const ObjHeader &hdr, const Interface *obj, Traits *traits) const +{ + DEBUG_ASSERT(obj); + NV_BOOL_ERR_CHECK_WARN_RETURN( + obj->version() == hdr.version, + Serializer::ERROR_UNKNOWN, + "Invalid object: version does not match object header" ); + + PX_UNUSED(traits); + + uint32_t bits = UINT32_MAX; + const uint32_t *checksum = obj->checksum(bits); + + if( !DoIgnoreChecksum(*obj) || hdr.version != obj->version() ) + { + if( bits != 32 * hdr.checksumSize ) + NV_PARAM_TRAITS_WARNING( + traits, + "Schema checksum is different for object of class %s and version %u, asset may be corrupted", + hdr.className, (unsigned)hdr.version + ); + else + { + for(uint32_t i = 0; i < hdr.checksumSize; ++i) + if( checksum[i] != hdr.checksum[i] ) + { + NV_PARAM_TRAITS_WARNING( + traits, + "Schema checksum is different for object of class %s and version %u, asset may be corrupted", + hdr.className, (unsigned)hdr.version + ); + break; + } + } + } + + return Serializer::ERROR_NONE; +} + +#if 0 +//TODO: this is just for tests, remove it after metadata works +static void DumpDefinition(const Definition *def, const char *className, uint32_t version, uint32_t off = 0) +{ + char *tab = (char *)::malloc(off + 1); + memset(tab, ' ', off); + tab[off] = 0; + + if( className ) + printf("%sClass %s:%d\n", tab, className, version); + + printf("%sDefinition at 0x%p:\n", tab, def); + printf("%s name = %s\n", tab, def->name()); + printf("%s type = %s\n", tab, typeToStr(def->type())); + printf("%s align = %d\n", tab, def->alignment()); + printf("%s pad = %d\n", tab, def->padding()); + + printf("%s %d hints:\n", tab, def->numHints()); + for(uint32_t i = 0; i < def->numHints(); ++i) + { + const Hint *hint = def->hint(i); + + printf("%s %s => ", tab, hint->name()); + switch( hint->type() ) + { + case TYPE_U64: + printf("%llu", hint->asUInt()); + break; + case TYPE_F64: + printf("%f", hint->asFloat()); + break; + case TYPE_STRING: + printf("\"%s\"", hint->asString()); + break; + default: + DEBUG_ALWAYS_ASSERT(); + } + printf("\n"); + } + + printf("%s %d enums: ", tab, def->numEnumVals()); + for(uint32_t i = 0; i < def->numEnumVals(); ++i) + printf("\"%s\", ", def->enumVal(i)); + printf("\n"); + + printf("%s %d refVariants: ", tab, def->numRefVariants()); + for(uint32_t i = 0; i < def->numRefVariants(); ++i) + printf("\"%s\", ", def->refVariantVal(i)); + printf("\n"); + + printf("%s %d children:\n", tab, def->numChildren()); + for(uint32_t i = 0; i < def->numChildren(); ++i) + { + printf("%sChild %d:\n", tab, i); + DumpDefinition(def->child(i), 0, 0, off + 1); + } + + ::free(tab); + + fflush(stdout); +} +#endif + +Serializer::ErrorType BinSerializer::peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects) +{ + BinaryHeader hdr; + BinaryHeaderExt ext; + NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext, false) ); + + return peekNumObjectsInplace((const void *)&hdr, sizeof(hdr), numObjects); +} + +Serializer::ErrorType BinSerializer::peekNumObjectsInplace(const void *data, uint32_t dataLen, uint32_t &numObjects) +{ + NV_BOOL_ERR_CHECK_RETURN( dataLen >= sizeof(BinaryHeader), Serializer::ERROR_INVALID_FILE_FORMAT ); + numObjects = static_cast(Canonize( ((const BinaryHeader *)data)->numObjects)); + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::peekClassNames(physx::PxFileBuf &stream, char **classNames, uint32_t &numClassNames) +{ + BinaryHeader hdr; + BinaryHeaderExt ext; + NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); + + PlatformABI targetParams; + NV_ERR_CHECK_RETURN(getPlatformInfo( + hdr, + hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, + targetParams + )); + + PlatformInputStream objectTable(stream, targetParams, mTraits); + objectTable.skipBytes(hdr.dataOffset); + + numClassNames = physx::PxMin(numClassNames, (uint32_t)hdr.numObjects); + for(uint32_t i = 0; i < numClassNames; ++i) + { + uint32_t tmp; + NV_ERR_CHECK_RETURN( objectTable.readPtr(tmp) ); // Pointer to object data + + uint32_t classNameOff; + NV_ERR_CHECK_RETURN( objectTable.readPtr(classNameOff) ); // Pointer to className + + const char *className; + NV_ERR_CHECK_RETURN( objectTable.readString(classNameOff, className) ); + classNames[i] = mTraits->strdup(className); //User will call Traits::strfree + mTraits->free((void *)className); + + NV_ERR_CHECK_RETURN( objectTable.readPtr(tmp) ); // Pointer to name + NV_ERR_CHECK_RETURN( objectTable.readPtr(tmp) ); // Pointer to filename + } + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::readMetadataInfo(const BinaryHeader &hdr, PlatformInputStream &s, DefinitionImpl *def) +{ + PX_PLACEMENT_NEW(def, DefinitionImpl)(*mTraits, false); + + s.beginStruct(s.getTargetABI().getMetaInfoAlignment()); + + //type + uint32_t type; + NV_ERR_CHECK_RETURN( s.read(type) ); + NV_BOOL_ERR_CHECK_WARN_RETURN( type < TYPE_LAST, Serializer::ERROR_INVALID_DATA_TYPE, "Unknown data type: %d", (int)type); + + //arraySize + int32_t arraySize; + NV_ERR_CHECK_RETURN( s.read(arraySize) ); + + //shortName + uint32_t nameOff; + NV_ERR_CHECK_RETURN( s.readPtr(nameOff) ); + + const char *name; + NV_ERR_CHECK_RETURN( s.readString(nameOff, name) ); //NOTE: we do not release name because DefinitionImpl does not copy it + + //structName + uint32_t structNameOff; + NV_ERR_CHECK_RETURN( s.readPtr(structNameOff) ); + + const char *structName; + NV_ERR_CHECK_RETURN( s.readString(structNameOff, structName) ); //NOTE: we do not release name because DefinitionImpl does not copy it + + // We do not have metadata for older formats without alignment + NV_BOOL_ERR_CHECK_WARN_RETURN( hdr.version >= BinVersions::WithAlignment, Serializer::ERROR_INVALID_FILE_VERSION, "Unable to deserialize metadata: file format does not support it" ); + + //alignment + uint32_t alignment; + NV_ERR_CHECK_RETURN( s.read(alignment) ); + + //padding + uint32_t padding; + NV_ERR_CHECK_RETURN( s.read(padding) ); + + def->init(name, (DataType)type, structName); + def->setArraySize(arraySize); + if( alignment ) def->setAlignment(alignment); + if( padding ) def->setPadding(padding); + + //numChildren + uint32_t numChildren; + NV_ERR_CHECK_RETURN( s.read(numChildren) ); + + //children + for(uint32_t i = 0; i < numChildren; ++i) + { + DefinitionImpl *childDef = (DefinitionImpl *)mTraits->alloc(sizeof(DefinitionImpl)); + + uint32_t off; + NV_ERR_CHECK_RETURN( s.readPtr(off) ); + + NV_ERR_CHECK_RETURN( s.pushPos(off) ); + NV_ERR_CHECK_RETURN( readMetadataInfo(hdr, s, childDef) ); + s.popPos(); + + def->addChild(childDef); + } + + //numHints + uint32_t numHints; + NV_ERR_CHECK_RETURN( s.read(numHints) ); + + //hints + for(uint32_t i = 0; i < numHints; ++i) + { + HintImpl *hint = (HintImpl *)mTraits->alloc(sizeof(HintImpl)); + PX_PLACEMENT_NEW(hint, HintImpl)(); + + s.beginStruct(s.getTargetABI().getHintAlignment()); + + //type + uint32_t hintType; + NV_ERR_CHECK_RETURN( s.read(hintType) ); + + //name + uint32_t hintNameOff; + NV_ERR_CHECK_RETURN( s.readPtr(hintNameOff) ); + + const char *hintName; + NV_ERR_CHECK_RETURN( s.readString(hintNameOff, hintName) ); + Releaser releaseName((void *)hintName, mTraits); + + //val + s.beginStruct(s.getTargetABI().getHintValueAlignment()); + switch( hintType ) + { + case TYPE_U64: + { + uint64_t val; + NV_ERR_CHECK_RETURN( s.read(val) ); + hint->init(hintName, val, false); + + break; + } + case TYPE_F64: + { + double val; + NV_ERR_CHECK_RETURN( s.read(val) ); + hint->init(hintName, val, false); + + break; + } + case TYPE_STRING: + { + uint32_t off; + NV_ERR_CHECK_RETURN( s.readPtr(off) ); + + const char *val; + NV_ERR_CHECK_RETURN( s.readString(off, val) ); + Releaser releaseVal((void *)val, mTraits); + + hint->init(hintName, val, false); + + break; + } + default: + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_DATA_TYPE; + } + s.align(s.getTargetABI().getHintValueSize()); + s.closeStruct(); + + s.closeStruct(); + + def->addHint(hint); + } //i + + //numEnumVals + uint32_t numEnumVals; + NV_ERR_CHECK_RETURN( s.read(numEnumVals) ); + + //enumVals + for(uint32_t i = 0; i < numEnumVals; ++i) + { + uint32_t off; + NV_ERR_CHECK_RETURN( s.readPtr(off) ); + + const char *val; + NV_ERR_CHECK_RETURN( s.readString(off, val) ); + Releaser releaseVal((void *)val, mTraits); + + def->addEnumVal(val); + } + + //numRefVariants + uint32_t numRefVariants; + NV_ERR_CHECK_RETURN( s.read(numRefVariants) ); + + //refVariants + for(uint32_t i = 0; i < numRefVariants; ++i) + { + uint32_t off; + NV_ERR_CHECK_RETURN( s.readPtr(off) ); + + const char *val; + NV_ERR_CHECK_RETURN( s.readString(off, val) ); + Releaser releaseVal((void *)val, mTraits); + + def->addRefVariantVal(val); + } + + s.closeStruct(); + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::deserializeMetadata(physx::PxFileBuf &stream, DeserializedMetadata &desData) +{ + BinaryHeader hdr; + BinaryHeaderExt ext; + NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); + NV_ERR_CHECK_RETURN(verifyFileHeader( + hdr, + hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, + hdr.fileLength + )); + + PlatformABI targetParams; + NV_ERR_CHECK_RETURN(getPlatformInfo( + hdr, + hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, + targetParams + )); + + PlatformInputStream s(stream, targetParams, mTraits); + s.skipBytes(hdr.metadataOffset); + + uint32_t numMetadata = hdr.numMetadata; + + desData.init(mTraits, numMetadata); + + for(uint32_t i = 0; i < numMetadata; ++i) + { + uint32_t classNameOff; + NV_ERR_CHECK_RETURN( s.readPtr(classNameOff) ); + + const char *className; + NV_ERR_CHECK_RETURN( s.readString(classNameOff, className) ); + + uint32_t version; + NV_ERR_CHECK_RETURN( s.read(version) ); + + uint32_t entryOff; + NV_ERR_CHECK_RETURN( s.readPtr(entryOff) ); + + s.pushPos(entryOff); + + DefinitionImpl *def = (DefinitionImpl *)mTraits->alloc(sizeof(DefinitionImpl)); + NV_ERR_CHECK_WARN_RETURN( readMetadataInfo(hdr, s, def), "Failed to read metadata info" ); + +// DumpDefinition(def, className, version); + + desData[i].def = def; + desData[i].version = version; + desData[i].className = className; + + s.popPos(); + } + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::internalDeserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &res, bool & /*doesNeedUpdate*/) +{ + NV_BOOL_ERR_CHECK_WARN_RETURN( + PlatformABI::VerifyCurrentPlatform(), + Serializer::ERROR_INVALID_PLATFORM, + "Current platform is not supported, aborting" ); + + NV_BOOL_ERR_CHECK_RETURN( BinaryHeader::CheckAlignment(), Serializer::ERROR_INVALID_PLATFORM ); + + BinaryHeader hdr; + BinaryHeaderExt ext; + NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); + + PlatformABI abi; + NV_ERR_CHECK_RETURN(getPlatformInfo( + hdr, + hdr.version >= BinVersions::WithExtendedHeader ? &ext : 0, + abi + )); + + uint32_t fileOff = stream.tellRead(); + + PlatformInputStream data(stream, abi, mTraits); + NV_ERR_CHECK_RETURN( data.skipBytes(hdr.dataOffset) ); + + res.init(mTraits, static_cast(hdr.numObjects)); + for(uint32_t i = 0; i < static_cast(hdr.numObjects); ++i) + { + uint32_t objOff; + NV_ERR_CHECK_RETURN( data.readPtr(objOff) ); + + if( !objOff ) + res[i] = 0; + else + { + NV_ERR_CHECK_RETURN( data.pushPos(objOff) ); + + Serializer::ErrorType error = readObject(res[i], data); + if( Serializer::ERROR_NONE != error ) + { + for(uint32_t j = 0; j < i; ++j) //Last object was destroyed in readObject + res[j]->destroy(); + + res.init(0, 0); + + return error; + } + + data.popPos(); + } + + uint32_t tmp; + NV_ERR_CHECK_RETURN( data.readPtr(tmp) ); // className + NV_ERR_CHECK_RETURN( data.readPtr(tmp) ); // name + NV_ERR_CHECK_RETURN( data.readPtr(tmp) ); // filename + } //i + + stream.seekRead(fileOff + hdr.fileLength); //Goto end of stream + + return Serializer::ERROR_NONE; +} + +static BinaryReloc *getRelocationTable(const BinaryHeader &hdr, char *start, uint32_t &nrelocs) +{ + char *ptrTable = start + hdr.relocOffset; + nrelocs = *reinterpret_cast(ptrTable); + + ptrTable += PlatformABI::align(4, GetAlignment::value); + + return reinterpret_cast(ptrTable); //Alignment is ok +} + +Serializer::ErrorType BinSerializer::internalDeserializeInplace(void *mdata, uint32_t dataLen, Serializer::DeserializedData &res, bool & doesNeedUpdate) +{ + doesNeedUpdate = false; + + NV_BOOL_ERR_CHECK_WARN_RETURN( + PlatformABI::VerifyCurrentPlatform(), + Serializer::ERROR_INVALID_PLATFORM, + "Current platform is not supported, aborting" ); + + char *start = (char *)mdata; + + //Header + BinaryHeader &hdr = *reinterpret_cast(start); + hdr.decanonize(); //Make platform-dependent + + //Extended header + BinaryHeaderExt *ext = hdr.version >= BinVersions::WithExtendedHeader + ? reinterpret_cast(start + sizeof(BinaryHeader)) + : 0; + if( ext ) ext->decanonize(); + + //This particular updates can be done on the fly + //Probably there is no need to set isUpdated because updates can be done on the fly + + if( hdr.version == BinVersions::Initial ) + NV_ERR_CHECK_WARN_RETURN( updateInitial2AllCounted(hdr, start), "Failed to update binary asset from 1.0 to 1.1" ); + + if( hdr.version == BinVersions::AllRefsCounted ) + NV_ERR_CHECK_WARN_RETURN( updateAllCounted2WithAlignment(hdr, start), "Failed to update binary asset from 1.1 to 1.2" ); + + NV_ERR_CHECK_RETURN( verifyFileHeader(hdr, ext, dataLen) ); + + NV_BOOL_ERR_CHECK_RETURN( IsAligned(mdata, hdr.alignment), Serializer::ERROR_UNALIGNED_MEMORY); + + //Verify platform + SerializePlatform filePlatform; + NV_ERR_CHECK_WARN_RETURN( hdr.getPlatform(filePlatform), "Unknown platform" ); + NV_BOOL_ERR_CHECK_WARN_RETURN( + GetCurrentPlatform() == filePlatform, + Serializer::ERROR_INVALID_PLATFORM, + "Failed to inplace deserialize: platforms do not match" ); + + //Fix pointers + + uint32_t nrelocs; + BinaryReloc *relocs = getRelocationTable(hdr, start, nrelocs); + + //Using refOffs-array causes a memory allocation hence it's bad. + //But we have to fix all pointers prior to calling finishNvParameterized(). + //Basically we have 3 opportunities: + // - reorder relocs s.t. NvParameterized-objects go after all other relocs (strings, etc.) + // (but this limits our binary file format + it turns out to be tricky to implement) + // - walk through array once again + // (but this may have a significant time penalty) + // - reuse space in relocation table to store offsets of references + // (this sounds nice and easy enough!) + // - or maybe just process relocations in reverse order + // (this one should be the fastest but once again this limits our format) + //For now we just keep the dynamic array as it seems to be pretty fast. + + physx::shdfnd::Array refOffs((Traits::Allocator(mTraits))); + refOffs.reserve(nrelocs / 10); + + for(uint32_t i = 0; i < nrelocs; ++i) + { + BinaryReloc &reloc = relocs[i]; + + NV_BOOL_ERR_CHECK_RETURN( + reloc.type < static_cast(RELOC_LAST), + Serializer::ERROR_INVALID_RELOC_TYPE ); + + switch( reloc.type ) + { + case uint32_t(RELOC_ABS_RAW): + //Raw data, do nothing + break; + case uint32_t(RELOC_ABS_REF): + //Reference, init later + refOffs.pushBack(reloc.off); + break; + default: + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_INTERNAL_PTR; + } + + char *&ptr = *reinterpret_cast(start + reloc.off); + + size_t off = reinterpret_cast(ptr); //size_t == uintptr_t + NV_BOOL_ERR_CHECK_RETURN( off < dataLen, Serializer::ERROR_INVALID_INTERNAL_PTR ); + + ptr = start + off; + } + + uint32_t *refCount = reinterpret_cast(&hdr.numObjects); + + //Init references (vtables and stuff) + for(uint32_t i = 0; i < refOffs.size(); ++i) + { + char *&p = *reinterpret_cast(start + refOffs[i]); + + const ObjHeader &objHdr = *reinterpret_cast(p); + + const char *className = objHdr.className; + NV_BOOL_ERR_CHECK_RETURN( className, Serializer::ERROR_INVALID_INTERNAL_PTR ); + + p += objHdr.dataOffset; + + if( !objHdr.isIncluded ) + { + Interface *obj = PX_PLACEMENT_NEW(p, NvParameters)(mTraits, start, reinterpret_cast(refCount)); + PX_UNUSED(obj); + + //We do not want objHdr.verify() here + } + else + { + Interface *obj = mTraits->finishNvParameterized(className, objHdr.version, p, start, reinterpret_cast(refCount)); + NV_BOOL_ERR_CHECK_RETURN( obj, Serializer::ERROR_OBJECT_CREATION_FAILED ); + NV_ERR_CHECK_RETURN( verifyObjectHeader(objHdr, obj, mTraits) ); + + if( objHdr.version != mTraits->getCurrentVersion(className) ) + doesNeedUpdate = true; + } //if( !objHdr.isIncluded ) + } //i + + // Table of root references + ObjectTableEntry *objectTable = reinterpret_cast(start + hdr.dataOffset); //At start of data section + + //Init results + res.init(mTraits, static_cast(hdr.numObjects)); + for(uint32_t i = 0; i < static_cast(hdr.numObjects); ++i) + res[i] = objectTable[i].obj; + + *refCount = refOffs.size(); //Release after all inplace references are destroyed + + // Conversion will be done after deserialization to avoid releasing inplace memory if all objects are destroyed + //(otherwise we may have data corruption) + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::updateAllCounted2WithAlignment(BinaryHeader &hdr, char * /*start*/) +{ + hdr.version = BinVersions::WithAlignment; + hdr.alignment = 8; + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::updateInitial2AllCounted(BinaryHeader &hdr, char *start) +{ + // versionAllRefsCounted counts all references instead of just top-level references; + // to achieve this we simply set mDoDeallocateSelf to true in all references + + uint32_t nrelocs; + BinaryReloc *relocs = getRelocationTable(hdr, start, nrelocs); + + for(uint32_t i = 0; i < nrelocs; ++i) + { + BinaryReloc &reloc = relocs[i]; + + if( reloc.type != static_cast(RELOC_ABS_REF) ) + continue; + + size_t targetOff = *reinterpret_cast(start + reloc.off); //size_t == uintptr_t + + const ObjHeader &objHdr = *reinterpret_cast(start + targetOff); + + targetOff += objHdr.dataOffset; //Points to start of NvParameters + +#if PX_PS4 == 1 +#pragma GCC diagnostic ignored "-Wunused-private-field" +#endif + // MyNvParameters has the same layout as NvParameters + class MyNvParameters + { + void *vtable; + void *mParameterizedTraits; + void *mSerializationCb; + void *mCbUserData; + void *mBuffer; + void *mRefCount; + void *mName; + void *mClassName; + bool mDoDeallocateSelf; + bool mDoDeallocateName; + bool mDoDeallocateClassName; + + public: + void setDoDeallocateSelf() { mDoDeallocateSelf = true; } + }; +#if PX_PS4 == 1 +#pragma GCC diagnostic warning "-Wunused-private-field" +#endif + MyNvParameters *pAsNvParameters = reinterpret_cast(start + targetOff); + pAsNvParameters->setDoDeallocateSelf(); + } + + hdr.version = BinVersions::AllRefsCounted; + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::readArraySlow(Handle &handle, PlatformInputStream &s) +{ + int32_t n; + NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(n), Serializer::ERROR_INVALID_ARRAY ); + + for(int32_t i = 0; i < n; ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( readBinaryData(handle, s) ); + handle.popIndex(); + } + + return Serializer::ERROR_NONE; +} + +static bool IsSimpleStruct(const Definition *pd) +{ + // Empty structs are special + if( 0 == pd->numChildren() ) + return false; + + for(int32_t i = 0; i < pd->numChildren(); ++i) + { + if (pd->child(i)->type() == TYPE_STRING || pd->child(i)->type() == TYPE_ENUM || pd->child(i)->type() == TYPE_ARRAY || + pd->child(i)->type() == TYPE_REF || pd->child(i)->type() == TYPE_STRUCT + ) + { + return false; + } + } + + return true; +} + +#ifndef WITHOUT_APEX_SERIALIZATION + +Serializer::ErrorType BinSerializer::internalSerialize(physx::PxFileBuf &stream, const Interface **objs, uint32_t nobjs, bool doMetadata) +{ + NV_BOOL_ERR_CHECK_WARN_RETURN( + PlatformABI::VerifyCurrentPlatform(), + Serializer::ERROR_INVALID_PLATFORM , + "Current platform is not supported, aborting" ); + + NV_BOOL_ERR_CHECK_RETURN( BinaryHeader::CheckAlignment(), Serializer::ERROR_INVALID_PLATFORM ); + + PlatformABI targetParams; + NV_ERR_CHECK_WARN_RETURN( PlatformABI::GetPredefinedABI(mPlatform, targetParams), "Unknown platform" ); + NV_BOOL_ERR_CHECK_WARN_RETURN( + targetParams.isNormal(), + Serializer::ERROR_INVALID_PLATFORM, + "Target platform is not supported, aborting" ); + + PlatformABI curParams; + NV_ERR_CHECK_WARN_RETURN( PlatformABI::GetPredefinedABI(GetCurrentPlatform(), curParams), "Unknown platform" ); + NV_BOOL_ERR_CHECK_RETURN( curParams.isNormal(), Serializer::ERROR_INVALID_PLATFORM ); + + Dictionary dict(mTraits); //Dictionary is updated in other routines + + // Compute object data + + typedef physx::shdfnd::Array StreamArray; + StreamArray dataStreams((Traits::Allocator(mTraits))); + dataStreams.reserve(nobjs); + for(uint32_t i = 0; i < nobjs; ++i) + { + Handle handle(*objs[i], ""); + NV_BOOL_ERR_CHECK_RETURN( handle.isValid(), Serializer::ERROR_UNKNOWN ); + + dataStreams.pushBack(PlatformOutputStream(targetParams, mTraits, dict)); + dataStreams.back().setAlignment(16); // 16 for safety + + NV_ERR_CHECK_WARN_RETURN( storeBinaryData(*objs[i], handle, dataStreams.back()), "Failed to serialize data for object %d", i ); + } + + // Compute metadata + + PlatformOutputStream metadataStream(targetParams, mTraits, dict); + metadataStream.setAlignment(16); // 16 for safety + uint32_t numMetadata = 0; + if( doMetadata ) + { + typedef physx::shdfnd::Pair VersionedClass; + typedef physx::shdfnd::HashMap, Traits::Allocator> MapClass2Def; + MapClass2Def mapClass2Def((Traits::Allocator(mTraits))); + + //We track all classes that were saved to avoid duplicate metadata info + class MyRefCallback: public ReferenceInterface + { + MapClass2Def &mapClass2Def; + + //Silence warnings on unable to generate assignment operator + void operator =(MyRefCallback) {} + public: + MyRefCallback(MapClass2Def &mapClass2Def_): mapClass2Def(mapClass2Def_) {} + + void referenceCallback(Handle &handle) + { + Interface *iface; + handle.getParamRef(iface); + if( iface ) + mapClass2Def[ VersionedClass(iface->className(), iface->version()) ] = iface->rootParameterDefinition(); + } + } cb(mapClass2Def); + + for(uint32_t i = 0; i < nobjs; ++i) + { + if( !objs[i] ) + continue; + + mapClass2Def[ VersionedClass(objs[i]->className(), objs[i]->version()) ] = objs[i]->rootParameterDefinition(); + getReferences(*objs[i], cb, false, true, true); + } + + numMetadata = mapClass2Def.size(); + + for(MapClass2Def::Iterator i = mapClass2Def.getIterator(); !i.done(); ++i) + { + metadataStream.beginStruct(targetParams.getMetaEntryAlignment()); + + metadataStream.storeStringPtr(i->first.first); //className + metadataStream.storeSimple(i->first.second); //classVersion + + //info + Reloc &reloc = metadataStream.storePtr(RELOC_ABS_RAW, targetParams.getMetaInfoAlignment()); + NV_ERR_CHECK_RETURN( storeMetadataInfo(i->second, *reloc.ptrData) ); + + metadataStream.closeStruct(); + } //i + } + + // Init header + + BinaryHeader hdr; + + hdr.magic = Magic; + hdr.type = BINARY_TYPE_PLAIN; + hdr.version = Version; + hdr.numObjects = static_cast(nobjs); + hdr.fileLength = 0; + hdr.dictOffset = 0; + hdr.dataOffset = 0; + hdr.relocOffset = 0; + hdr.metadataOffset = 0; + + hdr.archType = static_cast(mPlatform.archType); + hdr.compilerType = static_cast(mPlatform.compilerType); + hdr.compilerVer = mPlatform.compilerVer; + hdr.osType = static_cast(mPlatform.osType); + hdr.osVer = mPlatform.osVer; + + hdr.numMetadata = numMetadata; + hdr.alignment = 0; + + BinaryHeaderExt ext; + memset(&ext, 0, sizeof(ext)); + memcpy(&ext.vcsSafetyFlags, VCS_SAFETY_FLAGS, 4); + + // Resulting stream + + PlatformOutputStream joinStream(targetParams, mTraits, dict); + + // Merge header + + joinStream.storeBytes(reinterpret_cast(&hdr), sizeof(hdr)); + joinStream.storeBytes(reinterpret_cast(&ext), sizeof(ext)); + joinStream.align(16); + + // Merge dictionary + + uint32_t dictOffset = joinStream.size(); + joinStream.mergeDict(); + + // Merge data + + uint32_t dataOffset = 0; + { + joinStream.align(joinStream.getTargetABI().aligns.pointer); + dataOffset = joinStream.size(); + + //Create object table + for(uint32_t i = 0; i < nobjs; ++i) + { + dataStreams[i].flatten(); + + Reloc &reloc = joinStream.storePtr(RELOC_ABS_REF, dataStreams[i].alignment()); + reloc.ptrData->merge(dataStreams[i]); + + //This was requested for faster peeking of contained assets + joinStream.storeStringPtr(objs[i]->className()); + joinStream.storeStringPtr(objs[i]->name()); + + //UE3 was once using this + joinStream.storeNullPtr(); + } + + joinStream.flatten(); //Merge all data-related pointers + } + + // Merge metadata + + uint32_t metadataOffset = 0; + if( doMetadata ) + { + metadataOffset = joinStream.merge(metadataStream); + joinStream.flatten(); //Merge all metadata-related pointers + } + + // Merge relocation data + + uint32_t relocOffset = joinStream.writeRelocs(); + + // Update offsets in header + + void *data = joinStream.getData(); + + BinaryHeader &hdrFinal = *reinterpret_cast(data); + hdrFinal.fileLength = joinStream.size(); + hdrFinal.dictOffset = dictOffset; + hdrFinal.dataOffset = dataOffset; + hdrFinal.metadataOffset = metadataOffset; + hdrFinal.relocOffset = relocOffset; + hdrFinal.alignment = joinStream.alignment(); + + BinaryHeaderExt &extFinal = *reinterpret_cast((char *)data + sizeof(BinaryHeader)); + + //Make platform-independent + hdrFinal.canonize(); + extFinal.canonize(); + + // Write data to stream + + if( stream.tellWrite() % joinStream.alignment() ) + { + NV_PARAM_TRAITS_WARNING( + mTraits, + "Input stream is unaligned, " + "you will not be able to inplace deserialize it " + "without copying to intermediate buffer" + ); + } + + NV_BOOL_ERR_CHECK_RETURN( + joinStream.size() == stream.write(data, joinStream.size()), + Serializer::ERROR_STREAM_ERROR ); + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType BinSerializer::storeMetadataInfo(const Definition *def, PlatformOutputStream &s) +{ + s.beginStruct(s.getTargetABI().getMetaInfoAlignment()); + + //type + s.storeSimple((uint32_t)def->type()); + + //arraySize + s.storeSimple(TYPE_ARRAY == def->type() ? (int32_t)def->arraySize() : -1); + + //shortName + s.storeStringPtr(def->name()); + + //structName + s.storeStringPtr(def->structName()); + + //alignment + s.storeSimple(def->alignment()); + + //padding + s.storeSimple(def->padding()); + + //numChildren + s.storeSimple(def->numChildren()); + + //children + for(int32_t i = 0; i < def->numChildren(); ++i) + { + Reloc &childrenReloc = s.storePtr(RELOC_ABS_RAW, s.getTargetABI().getMetaInfoAlignment()); + NV_ERR_CHECK_RETURN( storeMetadataInfo(def->child(i), *childrenReloc.ptrData) ); + } + + //numHints + s.storeSimple(def->numHints()); + + //hints + for(int32_t i = 0; i < def->numHints(); ++i) + { + const Hint *hint = def->hint(i); + + s.beginStruct(s.getTargetABI().getHintAlignment()); + + s.storeSimple((uint32_t)hint->type()); + s.storeStringPtr(hint->name()); + + s.beginStruct(s.getTargetABI().getHintValueAlignment()); + switch( hint->type() ) + { + case TYPE_U64: + s.storeSimple(hint->asUInt()); + break; + case TYPE_F64: + s.storeSimple(hint->asFloat()); + break; + case TYPE_STRING: + s.storeStringPtr(hint->asString()); + break; + +NV_PARAMETRIZED_LINAL_DATATYPE_LABELS +NV_PARAMETRIZED_REF_DATATYPE_LABELS +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS +NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS + case TYPE_F32: + case TYPE_U32: case TYPE_U16: case TYPE_U8: + case TYPE_I64: case TYPE_I32: case TYPE_I16: case TYPE_I8: case TYPE_BOOL: + default: + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_DATA_TYPE; + } + s.align(s.getTargetABI().getHintValueSize()); + s.closeStruct(); + + s.closeStruct(); + } + + //numEnumVals + s.storeSimple(def->numEnumVals()); + + //enumVals + for(int32_t i = 0; i < def->numEnumVals(); ++i) + s.storeStringPtr(def->enumVal(i)); + + //numRefVariantVals + s.storeSimple(def->numRefVariants()); + + //refVariants + for(int32_t i = 0; i < def->numRefVariants(); ++i) + s.storeStringPtr(def->refVariantVal(i)); + + s.closeStruct(); + + return Serializer::ERROR_NONE; +} + +//Store array of arbitrary type (slow version) +Serializer::ErrorType BinSerializer::storeArraySlow(Handle &handle, PlatformOutputStream &s) +{ + int32_t size; + NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size), Serializer::ERROR_INVALID_ARRAY ); + + const Interface &obj = *handle.getConstInterface(); + for(int32_t i = 0; i < size; ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( storeBinaryData(obj, handle, s) ); + handle.popIndex(); + } + + return Serializer::ERROR_NONE; +} + +//Print binary data for part of NvParameterized object addressed by handle +Serializer::ErrorType BinSerializer::storeBinaryData(const Interface &obj, Handle &handle, PlatformOutputStream &res, bool isRootObject) +{ + bool isObject = !handle.numIndexes(); + + if( isObject ) + res.storeObjHeader(obj); + + const Definition *pd = handle.parameterDefinition(); + + bool doNotSerialize = 0 != pd->hint("DONOTSERIALIZE"), + isDynamicArray = pd->type() == TYPE_ARRAY && !pd->arraySizeIsFixed(); + + // Alignment in dynamic array means alignment of dynamic memory + // so we do not insert it here + if( pd->alignment() && !isDynamicArray ) + res.align(pd->alignment()); + + //Dynamic arrays are special because we need some of their fields for correct inplace deserialization + if( doNotSerialize && !isDynamicArray ) + { + //Simply skip bytes + res.align(res.getTargetAlignment(pd)); + res.skipBytes(res.getTargetSize(pd)); + + return Serializer::ERROR_NONE; + } + + switch( pd->type() ) + { + case TYPE_ARRAY: + { + if( pd->arraySizeIsFixed() ) + { + res.beginArray(pd); + storeArraySlow(handle, res); + res.closeArray(); + } + else + { + res.beginStruct(pd); //Dynamic arrays are implemented as structs + + bool isEmpty = false; + if( doNotSerialize ) + isEmpty = true; + else + { + for(int32_t i = 0; i < pd->arrayDimension(); ++i) + { + int32_t size = 0; + NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size, i), Serializer::ERROR_INVALID_ARRAY ); + + if( 0 == size ) + { + isEmpty = true; + break; + } + } + } + + const Definition *elemPd = pd; + for(int32_t i = 0; i < pd->arrayDimension(); ++i) + elemPd = elemPd->child(0); + + //Pointer-to-data + Reloc *reloc = 0; + if( isEmpty ) + res.storeNullPtr(); + else + { + reloc = &res.storePtr(RELOC_ABS_RAW, elemPd); + if( pd->alignment() ) + reloc->ptrData->setAlignment(physx::PxMax(reloc->ptrData->alignment(), pd->alignment())); + } + + //isAllocated + res.storeSimple(false); + + //elementSize + res.storeSimple(res.getTargetSize(elemPd)); + + //arraySizes + const Definition *subArrayPd = pd; + res.beginArray(res.getTargetABI().getAlignment()); + for(int32_t dim = 0; dim < pd->arrayDimension(); ++dim) + { + // Store size of static dimensions even if doNotSerialize is on + int32_t size = 0; + if( !doNotSerialize || subArrayPd->arraySizeIsFixed() ) + NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size, dim), Serializer::ERROR_INVALID_ARRAY ); + + res.storeSimple(size); + + NV_BOOL_ERR_CHECK_RETURN( 1 == subArrayPd->numChildren(), Serializer::ERROR_UNKNOWN ); + subArrayPd = subArrayPd->child(0); + } + res.closeArray(); + + //Data + if( !isEmpty ) + { + reloc->ptrData->beginArray(elemPd); + + int32_t size = -1; + NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(size), Serializer::ERROR_INVALID_ARRAY ); + + const Definition *child = pd->child(0); + switch( child->type() ) + { +# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name: \ + { \ + reloc->ptrData->storeSimpleArray(handle); \ + break; \ + } +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_STRUCT: + if( IsSimpleStruct(child) ) + { + //Fast path for simple structs + reloc->ptrData->storeSimpleStructArray(handle); + break; + } + + //Else fall through to default, includes TYPE_MAT34 case +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS +NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS +NV_PARAMETRIZED_STRING_DATATYPE_LABELS +NV_PARAMETRIZED_REF_DATATYPE_LABELS +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS + case TYPE_ARRAY: + default: + storeArraySlow(handle, *reloc->ptrData); + break; + } + + reloc->ptrData->closeArray(); + } + + res.closeStruct(); + } + break; + } + + case TYPE_STRUCT: + { + uint32_t oldSize = isObject ? res.beginObject(obj, isRootObject, pd) : res.beginStruct(pd); + + for(int32_t i = 0; i < pd->numChildren(); ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( storeBinaryData(obj, handle, res) ); + handle.popIndex(); + } + + //Empty structs are at least 1 char long + if( res.size() == oldSize ) + res.storeSimple((uint8_t)0); + + if( isObject ) + res.closeObject(); + else + res.closeStruct(); + + break; + } + + case TYPE_STRING: + { + const char *s = 0; + handle.getParamString(s); + + res.beginString(); + + //buf + res.storeStringPtr(s); + + //isAllocated + res.storeSimple(false); + + res.closeString(); + + break; + } + + case TYPE_ENUM: + { + const char *s = 0; + handle.getParamEnum(s); + + res.storeStringPtr(s); + + break; + } + + case TYPE_REF: + { + Interface *refObj = 0; + handle.getParamRef(refObj); + + if( !refObj ) + res.storeNullPtr(); + else if( pd->isIncludedRef() ) + { + Handle refHandle(*refObj, ""); + NV_BOOL_ERR_CHECK_RETURN( refHandle.isValid(), Serializer::ERROR_UNKNOWN ); + + Reloc &reloc = res.storePtr(RELOC_ABS_REF, 16); //16 for safety + NV_ERR_CHECK_RETURN( storeBinaryData(*refObj, refHandle, *reloc.ptrData, false) ); + } + else //Named reference + { + Reloc &reloc = res.storePtr(RELOC_ABS_REF, 16); //16 for safety + reloc.ptrData->storeObjHeader(*refObj, false); + reloc.ptrData->beginObject(*refObj, false, 0); + reloc.ptrData->closeObject(); //Named references are instances of NvParameters => no additional fields + } + + break; + } + + case TYPE_POINTER: + { + res.storeNullPtr(); + break; + } + + +# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name: \ + { \ + c_type val; \ + NV_PARAM_ERR_CHECK_RETURN( handle.getParam##type_name(val), Serializer::ERROR_INVALID_VALUE ); \ + res.storeSimple(val); \ + break; \ + } +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_MAT34: + { + float val[12]; + NV_PARAM_ERR_CHECK_RETURN( handle.getParamMat34Legacy(val), Serializer::ERROR_INVALID_VALUE ); + res.storeSimple(val, 12); + break; + } + +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + DEBUG_ASSERT(0 && "Unknown type"); + return Serializer::ERROR_INVALID_DATA_TYPE; + } + + return Serializer::ERROR_NONE; +} + +#endif + +//Read NvParameterized object data +Serializer::ErrorType BinSerializer::readObject(Interface *&obj, PlatformInputStream &data) +{ + ObjHeader objHdr; + NV_ERR_CHECK_WARN_RETURN( data.readObjHeader(objHdr), "Failed to deserialize object header" ); + Releaser releaseClassName((void *)objHdr.className, mTraits), + releaseName((void *)objHdr.name, mTraits), + releaseChecksum((void *)objHdr.checksum, mTraits); + + if( !objHdr.isIncluded ) + { + void *buf = mTraits->alloc(sizeof(NvParameters)); + NV_BOOL_ERR_CHECK_RETURN( buf, Serializer::ERROR_MEMORY_ALLOCATION_FAILURE ); + + obj = PX_PLACEMENT_NEW(buf, NvParameters)(mTraits); + obj->setClassName(objHdr.className); + + if( objHdr.name ) + obj->setName(objHdr.name); + + //We do not want objHdr.verify() here + } + else + { + NV_BOOL_ERR_CHECK_RETURN( objHdr.className, Serializer::ERROR_OBJECT_CREATION_FAILED ); + + obj = mTraits->createNvParameterized(objHdr.className, objHdr.version); + NV_BOOL_ERR_CHECK_RETURN( obj, Serializer::ERROR_OBJECT_CREATION_FAILED ); + + if( objHdr.name ) + obj->setName(objHdr.name); + + NV_ERR_CHECK_RETURN( verifyObjectHeader(objHdr, obj, mTraits) ); + + Handle handle(*obj, ""); + NV_BOOL_ERR_CHECK_RETURN( handle.isValid(), Serializer::ERROR_UNKNOWN ); + + NV_ERR_CHECK_RETURN( data.pushPos(objHdr.dataOffset) ); + NV_ERR_CHECK_RETURN( readBinaryData(handle, data) ); + data.popPos(); + } + + return Serializer::ERROR_NONE; +} + +//Read binary data of NvParameterized object addressed by handle +Serializer::ErrorType BinSerializer::readBinaryData(Handle &handle, PlatformInputStream &data) +{ + const Definition *pd = handle.parameterDefinition(); + + bool isDynamicArray = TYPE_ARRAY == pd->type() && !pd->arraySizeIsFixed(); + + // See comment in storeBinaryData + if( pd->alignment() && !isDynamicArray ) + data.align(pd->alignment()); + + if( pd->hint("DONOTSERIALIZE") ) + { + //Simply skip DONOTSERIALIZE + data.align(data.getTargetAlignment(pd)); + NV_ERR_CHECK_RETURN( data.skipBytes(data.getTargetSize(pd)) ); + return Serializer::ERROR_NONE; + } + + switch( pd->type() ) + { + case TYPE_ARRAY: + { + if( pd->arraySizeIsFixed() ) + { + data.beginArray(pd); + for(int32_t i = 0; i < pd->arraySize(); ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( readBinaryData(handle, data) ); + handle.popIndex(); + } + data.closeArray(); + } + else + { + data.beginStruct(pd); //Dynamic arrays are implemented as structs + + uint32_t elemOff; + NV_ERR_CHECK_RETURN( data.readPtr(elemOff) ); + + bool isAllocated; + NV_ERR_CHECK_RETURN( data.read(isAllocated) ); + + int32_t elementSize; + NV_ERR_CHECK_RETURN( data.read(elementSize) ); //elementSize + + data.beginStruct(data.getTargetABI().aligns.i32); //Start array of sizes + + int32_t arraySize; + NV_ERR_CHECK_RETURN( data.read(arraySize) ); //We need only the first size + + const Definition *subArrayPd = pd->child(0); + for(int32_t dim = 1; dim < pd->arrayDimension(); ++dim) + { + int32_t size; + NV_ERR_CHECK_RETURN( data.read(size) ); + + // We do not support nested dynamic arrays + if( subArrayPd->arraySizeIsFixed() ) + NV_BOOL_ERR_CHECK_RETURN( size == subArrayPd->arraySize(), Serializer::ERROR_INVALID_ARRAY ); + + subArrayPd = subArrayPd->child(0); + } + data.closeStruct(); //End array of sizes + + NV_PARAM_ERR_CHECK_RETURN( handle.resizeArray(arraySize), Serializer::ERROR_INVALID_ARRAY ); + + if( elemOff ) + { + // Check alignment + uint32_t align = pd->alignment(); + if( align && elemOff % align ) { + char longName[256]; + handle.getLongName(longName, sizeof(longName)); + NV_PARAM_TRAITS_WARNING( + mTraits, + "%s: array is unaligned, " + "you will not be able to inplace deserialize it " + "without copying to intermediate buffer.", + longName + ); + } + + NV_ERR_CHECK_RETURN( data.pushPos(elemOff) ); + + switch( pd->child(0)->type() ) + { +# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name: \ + { \ + NV_ERR_CHECK_RETURN( data.readSimpleArray(handle) ); \ + break; \ + } +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_STRUCT: + { + const Definition *child = pd->child(0); + if( IsSimpleStruct(child) ) + { + //Fast path for simple structs + NV_ERR_CHECK_RETURN( data.readSimpleStructArray(handle) ); + break; + } + + //Else fall through to default, including TYPE_MAT34 case + } + +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS +NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS +NV_PARAMETRIZED_STRING_DATATYPE_LABELS +NV_PARAMETRIZED_REF_DATATYPE_LABELS +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS +case TYPE_ARRAY: + default: + NV_ERR_CHECK_RETURN( readArraySlow(handle, data) ); + break; + } + + data.popPos(); + } + + data.closeStruct(); + } + break; + } + + case TYPE_STRUCT: + { + uint32_t oldPos = data.getPos(); + + data.beginStruct(pd); + for(int32_t i = 0; i < pd->numChildren(); ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( readBinaryData(handle, data) ); + handle.popIndex(); + } + + //Empty structs are at least 1 char long + if( data.getPos() == oldPos ) + { + uint8_t tmp; + NV_ERR_CHECK_RETURN( data.read(tmp) ); + } + + data.closeStruct(); + + break; + } + + case TYPE_STRING: + { + data.beginString(); + + uint32_t off; + NV_ERR_CHECK_RETURN( data.readPtr(off) ); + + const char *s; + NV_ERR_CHECK_RETURN( data.readString(off, s) ); + + NV_PARAM_ERR_CHECK_RETURN( handle.setParamString(s), Serializer::ERROR_INVALID_VALUE ); + mTraits->free((char *)s); + + bool isAllocated; + NV_ERR_CHECK_RETURN( data.read(isAllocated) ); + + data.closeString(); + + break; + } + + case TYPE_ENUM: + { + uint32_t off; + NV_ERR_CHECK_RETURN( data.readPtr(off) ); + + const char *s; + NV_ERR_CHECK_RETURN( data.readString(off, s) ); + + NV_BOOL_ERR_CHECK_RETURN( s, Serializer::ERROR_INVALID_VALUE ); + NV_PARAM_ERR_CHECK_RETURN( handle.setParamEnum(s), Serializer::ERROR_INVALID_VALUE ); + + mTraits->free((char *)s); + + break; + } + + case TYPE_REF: + { + uint32_t objPos; + NV_ERR_CHECK_RETURN( data.readPtr(objPos) ); + + Interface *refObj = 0; + + if( objPos ) + { + NV_ERR_CHECK_RETURN( data.pushPos(objPos) ); + NV_ERR_CHECK_RETURN( readObject(refObj, data) ); + data.popPos(); + } + + if( refObj && (-1 == handle.parameterDefinition()->refVariantValIndex(refObj->className())) ) + { + char longName[256]; + handle.getLongName(longName, sizeof(longName)); + NV_PARAM_TRAITS_WARNING( + mTraits, + "%s: setting reference of invalid class %s", + longName, + refObj->className() + ); + } + + NV_PARAM_ERR_CHECK_RETURN( handle.setParamRef(refObj), Serializer::ERROR_INVALID_REFERENCE ); + + break; + } + + case TYPE_POINTER: + { + void *tmp; + NV_ERR_CHECK_RETURN( data.read(tmp) ); + break; + } + + +# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name: \ + { \ + c_type val; \ + NV_ERR_CHECK_RETURN(data.read(val)); \ + NV_PARAM_ERR_CHECK_RETURN( handle.setParam##type_name(val), Serializer::ERROR_INVALID_VALUE ); \ + break; \ + } +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_MAT34: + { + float val[12]; + for (int k = 0; k < 12; ++k) + { + NV_ERR_CHECK_RETURN(data.read(val[k])); + } + NV_PARAM_ERR_CHECK_RETURN( handle.setParamMat34Legacy(val), Serializer::ERROR_INVALID_VALUE ); + break; + } + +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + DEBUG_ASSERT(0 && "Unknown type"); + return Serializer::ERROR_INVALID_DATA_TYPE; + } + + return Serializer::ERROR_NONE; +} + +bool isBinaryFormat(physx::PxFileBuf &stream) +{ + uint32_t magic; + stream.peek(&magic, 4); + return Canonize(magic) == BinSerializer::Magic; +} + +Serializer::ErrorType peekBinaryPlatform(physx::PxFileBuf &stream, SerializePlatform &platform) +{ + BinaryHeader hdr; + BinaryHeaderExt ext; + NV_ERR_CHECK_RETURN( peekFileHeader(stream, hdr, ext) ); + NV_ERR_CHECK_RETURN( hdr.getPlatform(platform) ); + return Serializer::ERROR_NONE; +} + +} // namespace NvParameterized diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/BinaryHelper.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/BinaryHelper.cpp old mode 100644 new mode 100755 index e3fff8e..b80a4db --- a/sdk/extensions/import/apexmodules/NvParameterized/src/BinaryHelper.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/BinaryHelper.cpp @@ -1,123 +1,123 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include -#include - -#include "BinaryHelper.h" - -namespace NvParameterized -{ - -void dumpBytes(const char *data, uint32_t nbytes) -{ - printf("Total = %d bytes\n", nbytes); - - for(uint32_t i = 0; i < nbytes; i += 16) - { - printf("%08x: ", i); - - //Print bytes - for(uint32_t j = i; j < i + 16; ++j) - { - if( nbytes < j ) - { - //Pad with whites - for(; j < i + 16; ++j) - printf(" "); - - break; - } - - unsigned char c = static_cast(data[j]); - printf("%02x ", c); - } - - //Print chars - for(uint32_t j = i; j < i + 16; ++j) - { - if( nbytes < j ) - break; - - unsigned char c = static_cast(data[j]); - printf("%c", isprint(c) ? c : '.'); - } - - printf("\n"); - } -} - -void Dictionary::setOffset(const char *s, uint32_t off) -{ - for(uint32_t i = 0; i < entries.size(); ++i) - if( 0 == strcmp(s, entries[i].s) ) - { - entries[i].offset = off; - return; - } - - PX_ASSERT(0 && "String not found"); -} - -uint32_t Dictionary::getOffset(const char *s) const -{ - for(uint32_t i = 0; i < entries.size(); ++i) - if( 0 == strcmp(s, entries[i].s) ) - return entries[i].offset; - - PX_ASSERT(0 && "String not found"); - return (uint32_t)-1; -} - -void Dictionary::serialize(StringBuf &res) const -{ - res.append(Canonize(entries.size())); - - for(uint32_t i = 0; i < entries.size(); ++i) - { - const char *s = entries[i].s; - res.appendBytes(s, 1 + (uint32_t)strlen(s)); - } -} - -uint32_t Dictionary::put(const char *s) -{ - PX_ASSERT(s && "NULL in dictionary"); - - for(uint32_t i = 0; i < entries.size(); ++i) - if( 0 == strcmp(s, entries[i].s) ) - return i; - - Entry e = {s, 0}; - entries.pushBack(e); - return entries.size() - 1; -} - +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include +#include + +#include "BinaryHelper.h" + +namespace NvParameterized +{ + +void dumpBytes(const char *data, uint32_t nbytes) +{ + printf("Total = %d bytes\n", nbytes); + + for(uint32_t i = 0; i < nbytes; i += 16) + { + printf("%08x: ", i); + + //Print bytes + for(uint32_t j = i; j < i + 16; ++j) + { + if( nbytes < j ) + { + //Pad with whites + for(; j < i + 16; ++j) + printf(" "); + + break; + } + + unsigned char c = static_cast(data[j]); + printf("%02x ", c); + } + + //Print chars + for(uint32_t j = i; j < i + 16; ++j) + { + if( nbytes < j ) + break; + + unsigned char c = static_cast(data[j]); + printf("%c", isprint(c) ? c : '.'); + } + + printf("\n"); + } +} + +void Dictionary::setOffset(const char *s, uint32_t off) +{ + for(uint32_t i = 0; i < entries.size(); ++i) + if( 0 == strcmp(s, entries[i].s) ) + { + entries[i].offset = off; + return; + } + + PX_ASSERT(0 && "String not found"); +} + +uint32_t Dictionary::getOffset(const char *s) const +{ + for(uint32_t i = 0; i < entries.size(); ++i) + if( 0 == strcmp(s, entries[i].s) ) + return entries[i].offset; + + PX_ASSERT(0 && "String not found"); + return (uint32_t)-1; +} + +void Dictionary::serialize(StringBuf &res) const +{ + res.append(Canonize(entries.size())); + + for(uint32_t i = 0; i < entries.size(); ++i) + { + const char *s = entries[i].s; + res.appendBytes(s, 1 + (uint32_t)strlen(s)); + } +} + +uint32_t Dictionary::put(const char *s) +{ + PX_ASSERT(s && "NULL in dictionary"); + + for(uint32_t i = 0; i < entries.size(); ++i) + if( 0 == strcmp(s, entries[i].s) ) + return i; + + Entry e = {s, 0}; + entries.pushBack(e); + return entries.size() - 1; +} + } \ No newline at end of file diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterized.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterized.cpp old mode 100644 new mode 100755 index 76feef2..e84b0e4 --- a/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterized.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterized.cpp @@ -1,5960 +1,5960 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#include -#include -#include -#include -#include - -#if PX_VC && !PX_PS4 -#pragma warning(disable:4996 4310) -#endif - -#include "PsAsciiConversion.h" - -#include "nvparameterized/NvParameterized.h" - -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#include "PsString.h" - - -namespace NvParameterized -{ - -#define NV_ERR_CHECK_RETURN(x) if(x!=ERROR_NONE) return(x); -#define NV_BOOL_RETURN(x) if((x)!=ERROR_NONE) return(false); - -#define DEBUG_ASSERT(x) -//#define DEBUG_ASSERT(x) PX_ASSERT(x) - -char Spog[] = "test"; - -#define COND_DUP(str) (mStaticAllocation) ? (char *)(str) : local_strdup(str) - -template -void swap(T& a, T&b) -{ - T tmp = b; - b = a; - a = tmp; -} - - -int32_t local_strcmp(const char* s1, const char* s2) -{ - return physx::shdfnd::strcmp(s1, s2); -} - -int32_t local_stricmp(const char* s1, const char* s2) -{ - return physx::shdfnd::stricmp(s1, s2); -} - -int32_t local_sprintf_s( char * _DstBuf, size_t _DstSize, const char * _Format, ...) -{ - if ( _DstBuf == NULL || _Format == NULL ) - { - return -1; - } - - va_list arg; - va_start( arg, _Format ); - int32_t r = physx::shdfnd::vsnprintf( _DstBuf, _DstSize, _Format, arg ); - va_end(arg); - - return r; -} - - -static PX_INLINE void* allocAligned(NvParameterized::Traits* t, uint32_t size, uint32_t align) -{ - void* buf = t->alloc(size, align); - if( (size_t)buf & (align - 1) ) - { - t->free(buf); - return 0; - } - - return buf; -} - -static PX_INLINE double RandomF64() -{ - return (double)rand() / RAND_MAX; -} - -static PX_INLINE float RandomF32() -{ - return (float)RandomF64(); -} - -static PX_INLINE uint32_t RandomIdx(uint32_t m, uint32_t M) -{ - return uint32_t(m + RandomF64() * (M - m) + 0.99); // FIXME: round -} - -static PX_INLINE physx::PxVec2 RandomVec2() -{ - return physx::PxVec2(RandomF32(), RandomF32()); -} - -static PX_INLINE physx::PxVec3 RandomVec3() -{ - return physx::PxVec3(RandomF32(), RandomF32(), RandomF32()); -} - -static PX_INLINE physx::PxVec4 RandomVec4() -{ - return physx::PxVec4(RandomF32(), RandomF32(), RandomF32(), RandomF32()); -} - -static PX_INLINE physx::PxQuat RandomQuat() -{ - return physx::PxQuat(RandomF32(), RandomF32(), RandomF32(), RandomF32()); -} - -static PX_INLINE uint32_t RandomU32() -{ - return (uint32_t)rand(); -} - -static PX_INLINE uint64_t RandomU64() -{ - uint32_t u32s[2]; - u32s[0] = RandomU32(); - u32s[1] = RandomU32(); - - return *(uint64_t*)&u32s[0]; -} - -static PX_INLINE bool notEqual(const char *a, const char *b) -{ - if(a == NULL && b == NULL) - return(false); - - return (a == NULL && b != NULL) - || (a != NULL && b == NULL) - || 0 != strcmp(a, b); -} - -static PX_INLINE bool notEqual(uint8_t a,uint8_t b) -{ - return a!=b; -} -static PX_INLINE bool notEqual(uint16_t a,uint16_t b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(uint32_t a,uint32_t b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(uint64_t a,uint64_t b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(int8_t a,int8_t b) -{ - return a!=b; -} -static PX_INLINE bool notEqual(int16_t a,int16_t b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(int32_t a,int32_t b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(int64_t a,int64_t b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(float a,float b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(float (&a)[12],float (&b)[12]) -{ - return a[0] != b[0] || a[1] != b[1] || a[2] != b[2] || - a[3] != b[3] || a[4] != b[4] || a[5] != b[5] || - a[6] != b[6] || a[7] != b[7] || a[8] != b[8] || - a[9] != b[9] || a[10] != b[10] || a[11] != b[11]; -} - -static PX_INLINE bool notEqual(double a,double b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(bool a,bool b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(const physx::PxVec2 &a,const physx::PxVec2 &b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(const physx::PxVec3 &a,const physx::PxVec3 &b) -{ - return a!=b; -} - -static PX_INLINE bool notEqual(const physx::PxVec4 &a,const physx::PxVec4 &b) -{ - return a!=b; -} - -// This was formerly in the NvQuat.h file but was removed due to other code bases requiring it to be gone -static PX_INLINE bool operator!=( const physx::PxQuat& a, const physx::PxQuat& b ) -{ - return a.x != b.x - || a.y != b.y - || a.z != b.z - || a.w != b.w; -} - -static PX_INLINE bool notEqual(const physx::PxQuat &a,physx::PxQuat &b) -{ - return a != b; -} - -static PX_INLINE bool notEqual(const physx::PxMat33 &a,physx::PxMat33 &b) -{ - const float *qa = a.front(); - const float *qb = b.front(); - return qa[0] != qb[0] || qa[1] != qb[1] || qa[2] != qb[2] || qa[3] != qb[3] || - qa[4] != qb[4] || qa[5] != qb[5] || qa[6] != qb[6] || qa[7] != qb[7] || - qa[8] != qb[8]; -} - -static PX_INLINE bool notEqual(const physx::PxMat44 &a,physx::PxMat44 &b) -{ - return a.column0.w != b.column0.w || a.column0.x != b.column0.x || a.column0.y != b.column0.y || a.column0.z != b.column0.z || - a.column1.w != b.column1.w || a.column1.x != b.column1.x || a.column1.y != b.column1.y || a.column1.z != b.column1.z || - a.column2.w != b.column2.w || a.column2.x != b.column2.x || a.column2.y != b.column2.y || a.column2.z != b.column2.z || - a.column3.w != b.column3.w || a.column3.x != b.column3.x || a.column3.y != b.column3.y || a.column3.z != b.column3.z; -} - -static PX_INLINE bool notEqual(const physx::PxBounds3 &a,const physx::PxBounds3 &b) -{ - return a.minimum != b.minimum || a.maximum != b.maximum; -} - -static PX_INLINE bool notEqual(const physx::PxTransform &a,const physx::PxTransform &b) -{ - return a.p != b.p || a.q != b.q; -} - -#define CHECK_FINITE(t) { \ - const t* _fs = (const t*)&val; \ - for(size_t _j = 0; _j < sizeof(val) / sizeof(t); ++_j) \ - { \ - if( physx::PxIsFinite(_fs[_j]) ) continue; \ - char _longName[256]; \ - handle.getLongName(_longName, sizeof(_longName)); \ - NV_PARAM_TRAITS_WARNING(mParameterizedTraits, "%s: setting non-finite floating point value", _longName); \ - break; \ - } \ -} - -#define CHECK_FINITE_ARRAY(t) { \ - for(int32_t _i = 0; _i < int32_t(n); ++_i) \ - { \ - const t* _fs = (const t*)(&array[_i]); \ - for(size_t _j = 0; _j < sizeof(array[0]) / sizeof(t); ++_j) \ - { \ - if( physx::PxIsFinite(_fs[_j]) ) continue; \ - char _longName[256]; \ - handle.getLongName(_longName, sizeof(_longName)); \ - NV_PARAM_TRAITS_WARNING(mParameterizedTraits, "%s[%d]: setting non-finite floating point value", _longName, (int)_i); \ - break; \ - } \ - } \ -} - -#define CHECK_F32_FINITE \ - CHECK_FINITE(float) - -#define CHECK_F32_FINITE_ARRAY \ - CHECK_FINITE_ARRAY(float) - -#define CHECK_F64_FINITE \ - CHECK_FINITE(double) - -#define CHECK_F64_FINITE_ARRAY \ - CHECK_FINITE_ARRAY(double) - -//****************************************************************************** -//*** Local functions -//****************************************************************************** - -#if 0 -static void *local_malloc(uint32_t bytes) -{ - return(NV_ALLOC(bytes, NV_DEBUG_EXP("NvParameterized::local_malloc"))); -} - -static void *local_realloc(void *buf, uint32_t bytes) -{ - return(GetApexAllocator()->realloc(buf, bytes)); -} - -static void local_free(void *buf) -{ - NV_FREE(buf); -} -#else - -static void *local_malloc(uint32_t bytes) -{ - return(malloc(bytes)); -} - -static void *local_realloc(void *buf, uint32_t bytes) -{ - return(realloc(buf, bytes)); -} - -static void local_free(void *buf) -{ - free(buf); -} - -#endif - -static char *local_strdup(const char *str) -{ - if(str == NULL) - return NULL; - - uint32_t len = (uint32_t)strlen(str); - - char *result = (char *)local_malloc(sizeof(char) * (len + 1)); - physx::shdfnd::strlcpy(result, len+1, str); - return result; -} - -static void local_strncpy(char *dst, const char *src, uint32_t n) -{ - physx::shdfnd::strlcpy(dst, n, src); -} - - -static void local_strncat(char *dst, const char *src, uint32_t n) -{ - PX_UNUSED(n); - physx::shdfnd::strlcat(dst, strlen(dst) + strlen(src) + 1,src); -} - -static int32_t safe_strcmp(const char *str1, const char *str2) -{ - if( str1 != NULL && str2 != NULL ) - return strcmp(str1, str2); - else if( str1 == NULL && str2 == NULL ) - return 0; - else - return -1; -} - -void *dupBuf(void *buf, uint32_t n) -{ - PX_ASSERT(buf != NULL); - PX_ASSERT(n > 0); - - void *Ret = local_malloc(n); - physx::intrinsics::memCopy(Ret, buf, n); - - return(Ret); -} - -DataType strToType(const char *str) -{ -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - if(!strcmp(str, #type_name)) \ - return(TYPE_##enum_name); - -# include "nvparameterized/NvParameterized_types.h" - - if(!strcmp(str, "Pointer")) - return(TYPE_POINTER); - - if(!strcmp(str, "Mat34")) - return(TYPE_MAT34); - - return(TYPE_UNDEFINED); -} - -const char *typeToStr(DataType type) -{ - switch(type) - { - -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name : \ - return(#type_name); -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_MAT34: - return "Mat34"; - - case TYPE_POINTER: - return "Pointer"; - -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - return NULL; - } -} - -//****************************************************************************** -//*** class HintImpl -//****************************************************************************** - -HintImpl::HintImpl() -{ - mStaticAllocation = true; -} - -HintImpl::HintImpl(const char *name, uint64_t value) -{ - PX_ASSERT(name != NULL); - - init(name, value); -} - -HintImpl::HintImpl(const char *name, double value) -{ - PX_ASSERT(name != NULL); - - init(name, value); -} - -HintImpl::HintImpl(const char *name, const char *value) -{ - PX_ASSERT(name != NULL); - PX_ASSERT(value != NULL); - - init(name, value); -} - -HintImpl::~HintImpl() -{ - cleanup(); -} - -void HintImpl::init(const char *name, uint64_t value, bool static_allocation) -{ - PX_ASSERT(name != NULL); - - mStaticAllocation = static_allocation; - mType = TYPE_U64; - mName = COND_DUP(name); - mUIntValue = value; -} - -void HintImpl::init(const char *name, double value, bool static_allocation) -{ - PX_ASSERT(name != NULL); - - mStaticAllocation = static_allocation; - mType = TYPE_F64; - mName = COND_DUP(name); - mFloatValue = value; -} - -void HintImpl::init(const char *name, const char *value, bool static_allocation) -{ - PX_ASSERT(name != NULL); - PX_ASSERT(value != NULL); - - mStaticAllocation = static_allocation; - mType = TYPE_STRING; - mName = COND_DUP(name); - mStringValue = COND_DUP(value); -} - -void HintImpl::cleanup(void) -{ - PX_ASSERT(mName != NULL); - - if(!mStaticAllocation) - { - local_free(mName); - - if(type() == TYPE_STRING) - { - PX_ASSERT(mStringValue != NULL); - local_free(mStringValue); - } - } -} - -bool HintImpl::setAsUInt(uint64_t v) -{ - bool ret = false; - PX_ASSERT(type() == TYPE_U64); - if ( type() == TYPE_U64 ) - { - mUIntValue = v; - ret = true; - } - return ret; -} - -uint64_t HintImpl::asUInt(void) const -{ - PX_ASSERT(type() == TYPE_U64); - return(mUIntValue); -} - -double HintImpl::asFloat(void) const -{ - PX_ASSERT(type() == TYPE_U64 || type() == TYPE_F64); - return(type() == TYPE_U64 ? static_cast(mUIntValue) : mFloatValue); -} - -const char *HintImpl::asString(void)const -{ - PX_ASSERT(type() == TYPE_STRING); - return(mStringValue); -} - - -//****************************************************************************** -//*** class Handle -//****************************************************************************** - - - -//****************************************************************************** -//*** class DefinitionImpl -//****************************************************************************** - -void DefinitionImpl::setDefaults(void) -{ - mName = NULL; - - mLongName = NULL; - mLongNameAllocated = false; - - mStructName = NULL; - - mType = TYPE_UNDEFINED; - - mArraySize = 0; - - mParent = NULL; - - mNumChildren = 0; - mChildren = NULL; - - mNumHints = 0; - mHints = NULL; - - mEnumVals = NULL; - mNumEnumVals = 0; - - mNumRefVariants = 0; - mRefVariantVals = NULL; - - mNumDynamicHandleIndices = 0; - mDynamicHandleIndices = NULL; - - mAlign = mPad = 0; -} - -DefinitionImpl::DefinitionImpl(Traits &traits, bool staticAlloc) -{ - mStaticAllocation = staticAlloc; - mTraits = &traits; - setDefaults(); -} - -DefinitionImpl::DefinitionImpl(const char *name, DataType t, const char *structName, Traits &traits, bool staticAlloc) -{ - mStaticAllocation = staticAlloc; - mTraits = &traits; - mLongNameAllocated = false; - init(name, t, structName, false); -} - - -DefinitionImpl::~DefinitionImpl() -{ - cleanup(); -} - -void DefinitionImpl::setAlignment(uint32_t align) -{ - mAlign = align; -} - -uint32_t DefinitionImpl::alignment(void) const -{ - return mAlign; -} - -void DefinitionImpl::setPadding(uint32_t pad) -{ - mPad = pad; -} - -uint32_t DefinitionImpl::padding(void) const -{ - return mPad; -} - -void DefinitionImpl::init(const char *name, DataType t, const char *structName, bool static_allocation) -{ - PX_UNUSED( static_allocation ); - - cleanup(); - - mName = name; - mLongName = name; - mStructName = structName; - - PX_ASSERT(t != TYPE_UNDEFINED); - mType = t; -} - -void DefinitionImpl::destroy(void) -{ - PX_ASSERT( !mStaticAllocation ); - - if( !mStaticAllocation ) - { - this->~DefinitionImpl(); - mTraits->free(this); - } -} - -void DefinitionImpl::cleanup(void) -{ - if(!mStaticAllocation) - { - if( mStructName ) - mTraits->free((void *)mStructName); - - mTraits->free((void *)mName); - - if(mChildren != NULL) - { - for(int32_t i=0; i < mNumChildren; ++i) - mChildren[i]->destroy(); - - local_free(mChildren); - } - - if(mHints != NULL) - { - for(int32_t i=0; i < mNumHints; ++i) - { - mHints[i]->cleanup(); - mTraits->free(mHints[i]); - } - - local_free(mHints); - } - - if(mEnumVals != NULL) - { - for(int32_t i = 0; i < mNumEnumVals; ++i) - local_free(mEnumVals[i]); - - local_free(mEnumVals); - } - - if(mRefVariantVals != NULL) - { - for(int32_t i = 0; i < mNumRefVariants; ++i) - local_free(mRefVariantVals[i]); - - local_free(mRefVariantVals); - } - } - - if(mLongNameAllocated && mLongName) - { - mTraits->strfree( (char *)mLongName ); - mLongName = NULL; - mLongNameAllocated = false; - } - - setDefaults(); -} - -const Definition *DefinitionImpl::root(void) const -{ - const Definition *root = this; - while(root->parent() != NULL) - root = root->parent(); - - return(root); -} - -int32_t DefinitionImpl::arrayDimension(void) const -{ - PX_ASSERT(type() == TYPE_ARRAY); - - int32_t Dim = 0; - const Definition *Cur = this; - for(;Cur->type() == TYPE_ARRAY; Cur = Cur->child(0)) - { - PX_ASSERT(Cur != NULL); - Dim++; - } - - return(Dim); -} - -int32_t DefinitionImpl::arraySize(int32_t dimension) const -{ - PX_ASSERT(type() == TYPE_ARRAY); - PX_ASSERT(dimension >= 0); - PX_ASSERT(dimension < arrayDimension()); - - const Definition *Cur = this; - for(int32_t i=0; i < dimension; ++i) - Cur = Cur->child(0); - - if(Cur->type() != TYPE_ARRAY) - return(-1); - - const DefinitionImpl *pd = static_cast(Cur); - - return( pd->mArraySize); -} - -bool DefinitionImpl::arraySizeIsFixed(void) const -{ - PX_ASSERT(type() == TYPE_ARRAY); - return(mArraySize > 0); -} - -bool DefinitionImpl::setArraySize(int32_t size) -{ - PX_ASSERT(size >= -1); - - if(size < 0) - return(false); - - mArraySize = size; - - return(true); -} - -bool DefinitionImpl::isIncludedRef(void) const -{ - const Hint *h = hint("INCLUDED"); - return h && h->type() == TYPE_U64 && h->asUInt(); -} - -int32_t DefinitionImpl::numChildren(void) const -{ - return(mNumChildren); -} - -const Definition * DefinitionImpl::child(int32_t index) const -{ - PX_ASSERT(index >= 0); - PX_ASSERT(index < numChildren()); - PX_ASSERT(type() == TYPE_STRUCT || type() == TYPE_ARRAY); - - if(index < 0 || index >= numChildren()) - return(NULL); - - return(mChildren[index]); -} - -const Definition * DefinitionImpl::child(const char *name, int32_t &index) const -{ - PX_ASSERT(name); - PX_ASSERT(type() == TYPE_STRUCT); - - int32_t i; - for(i=0; i < numChildren(); ++i) - if(!strcmp(mChildren[i]->name(), name)) - { - index = i; - return(mChildren[i]); - } - - return(NULL); -} - - -#define PUSH_TO_ARRAY(val, array, obj_type, num_var) \ - num_var++; \ - if(array == NULL) \ - array = (obj_type *)local_malloc(sizeof(obj_type)); \ - else \ - array = (obj_type *)local_realloc(array, num_var * sizeof(obj_type)); \ - PX_ASSERT(array != NULL); \ - array[num_var-1] = val; - - -static char *GenLongName(char *dst, - uint32_t n, - const char *parent_long_name, - DataType parent_type, - const char *child_name) -{ - local_strncpy(dst, parent_long_name, n); - - switch(parent_type) - { - case TYPE_STRUCT: - if(parent_long_name[0]) - local_strncat(dst, ".", n); - local_strncat(dst, child_name, n); - break; - - case TYPE_ARRAY: - local_strncat(dst, "[]", n); - break; - - NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS - default: - PX_ASSERT((void *)"Shouldn't be here!" == NULL); - break; - } - - return(dst); -} - -#define SET_ARRAY(type, src_array_var, dst_array_var, num_var) \ - PX_ASSERT(src_array_var != NULL); \ - PX_ASSERT(n > 0); \ - if(mStaticAllocation) \ - { \ - dst_array_var = (type *)src_array_var; \ - num_var = n; \ - } \ - else \ - { \ - PX_ASSERT(dst_array_var == NULL); \ - dst_array_var = (type *)dupBuf(src_array_var, sizeof(type) * n); \ - num_var = n; \ - } - -void DefinitionImpl::setChildren(Definition **children, int32_t n) -{ - SET_ARRAY(Definition *, children, mChildren, mNumChildren); - - char tmpStr[MAX_NAME_LEN]; - - for(int32_t i=0; i < n; ++i) - { - Definition *_child = children[i]; - DefinitionImpl *child = static_cast< DefinitionImpl *>(_child); - - PX_ASSERT(child->parent() == NULL); // Only one parent allowed - - GenLongName(tmpStr, - MAX_NAME_LEN, - mLongName, - type(), - child->mName); - - child->mLongName = mTraits->strdup( tmpStr ); - child->mLongNameAllocated = true; - - PX_ASSERT( child != this ); - child->mParent = this; - } -} - -void DefinitionImpl::addChild(Definition *_child) -{ - PX_ASSERT(_child != NULL); - PX_ASSERT(!mStaticAllocation); - - DefinitionImpl *child = static_cast< DefinitionImpl *>(_child); - PX_ASSERT(child->mParent == NULL); // Only one parent allowed - - char tmpStr[MAX_NAME_LEN]; - - GenLongName(tmpStr, - MAX_NAME_LEN, - mLongName, - type(), - child->mName); - - child->mLongName = mTraits->strdup( tmpStr ); - child->mLongNameAllocated = true; - - PX_ASSERT( child != this ); - child->mParent = this; - PUSH_TO_ARRAY(_child, mChildren, Definition *, mNumChildren) -} - - -int32_t DefinitionImpl::numHints(void) const -{ - return(mNumHints); -} - -const Hint *DefinitionImpl::hint(int32_t index) const -{ - PX_ASSERT(index >= 0); - PX_ASSERT(index < numHints()); - - if( index >= numHints() ) - { - return(NULL); - } - - return(mHints[index]); -} - -const Hint *DefinitionImpl::hint(const char *name) const -{ - PX_ASSERT(name != NULL); - - for(int32_t i=0; i < numHints(); ++i) - if(!strcmp(mHints[i]->name(), name)) - return(mHints[i]); - - return(NULL); -} - -void DefinitionImpl::setHints(const Hint **hints, int32_t n) -{ - SET_ARRAY(HintImpl *, hints, mHints, mNumHints); -} - -void DefinitionImpl::addHint(Hint *_hint) -{ - PX_ASSERT(_hint != NULL); - HintImpl *hint = static_cast< HintImpl *>(_hint); - PUSH_TO_ARRAY(hint, mHints, HintImpl *, mNumHints) -} - -int32_t DefinitionImpl::numEnumVals(void) const -{ - return(mNumEnumVals); -} - -int32_t DefinitionImpl::enumValIndex( const char * enum_val ) const -{ - if(!enum_val) - return(-1); - - for(int32_t i=0; i < numEnumVals(); ++i) - { - if( !strcmp( enumVal(i), enum_val ) ) - { - return(i); - } - } - - return(-1); -} - -const char *DefinitionImpl::enumVal(int32_t index) const -{ - PX_ASSERT(index >= 0); - PX_ASSERT(index < numEnumVals()); - - return(mEnumVals[index]); -} - -void DefinitionImpl::setEnumVals(const char **enum_vals, int32_t n) -{ - SET_ARRAY(char *, enum_vals, mEnumVals, mNumEnumVals); -} - -void DefinitionImpl::addEnumVal(const char *enum_val) -{ - PX_ASSERT(enum_val != NULL); - - char *NewEnumVal = COND_DUP(enum_val); - PUSH_TO_ARRAY(NewEnumVal, mEnumVals, char *, mNumEnumVals) -} - -int32_t DefinitionImpl::refVariantValIndex( const char * ref_val ) const -{ - if(!ref_val) - return(-1); - - for(int32_t i=0; i < numRefVariants(); ++i) - { - if( !strcmp( refVariantVal(i), ref_val ) ) - { - return(i); - } - } - - return(-1); -} - -int32_t DefinitionImpl::numRefVariants(void) const -{ - return(mNumRefVariants); -} - -const char *DefinitionImpl::refVariantVal(int32_t index) const -{ - PX_ASSERT(index >= 0); - PX_ASSERT(index < numRefVariants()); - - return(mRefVariantVals[index]); -} - -void DefinitionImpl::setRefVariantVals(const char **ref_vals, int32_t n) -{ - SET_ARRAY(char *, ref_vals, mRefVariantVals, mNumRefVariants); -} - -void DefinitionImpl::addRefVariantVal(const char *ref_val) -{ - PX_ASSERT(ref_val != NULL); - - char *NewEnumVal = COND_DUP(ref_val); - PUSH_TO_ARRAY(NewEnumVal, mRefVariantVals, char *, mNumRefVariants) -} - -void DefinitionImpl::setDynamicHandleIndicesMap(const uint8_t *indices, uint32_t numIndices) -{ - mNumDynamicHandleIndices = numIndices; - mDynamicHandleIndices = indices; -} - -const uint8_t * DefinitionImpl::getDynamicHandleIndicesMap(uint32_t &outNumIndices) const -{ - outNumIndices = mNumDynamicHandleIndices; - return mDynamicHandleIndices; -} - -bool DefinitionImpl::isSimpleType(bool simpleStructs, bool simpleStrings) const -{ - switch(mType) - { - case TYPE_STRUCT: - if( !simpleStructs ) - return false; - - for(int32_t i = 0; i < mNumChildren; ++i) - { - if( !mChildren[i]->isSimpleType(simpleStructs, simpleStrings) ) - return false; - } - - return true; - - case TYPE_ARRAY: - case TYPE_REF: - return false; - - NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS - default: - PX_ASSERT( mNumChildren == 0 ); - return true; - } -} - -//****************************************************************************** -//*** class NvParameterized -//****************************************************************************** - -NvParameters::NvParameters(Traits *traits, void *buf, int32_t *refCount) -{ - mParameterizedTraits = traits; - - if( buf ) - { - mBuffer = buf; - mRefCount = refCount; - - //Values of other fields are already deserialized - } - else - { - mName = mClassName = NULL; - mDoDeallocateName = mDoDeallocateClassName = mDoDeallocateSelf = true; - - mSerializationCb = NULL; - mCbUserData = NULL; - - mBuffer = NULL; - mRefCount = NULL; - - //Other fields are used only for inplace objects => skip them - } -} - -NvParameters::~NvParameters() -{ - if( mClassName && mDoDeallocateClassName ) - { - mParameterizedTraits->strfree( const_cast(mClassName) ); - mClassName = NULL; - } - - if( mName && mDoDeallocateName ) - { - mParameterizedTraits->strfree( const_cast(mName) ); - mName = NULL; - } -} - -// placement delete -void NvParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - void *buf = mBuffer; - int32_t *refCount = mRefCount; - NvParameterized::Traits *traits = mParameterizedTraits; - - this->~NvParameters(); - - destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -void NvParameters::destroy(NvParameters *obj, NvParameterized::Traits *traits, bool doDeallocateSelf, int32_t *refCount, void *buf) -{ - if( !doDeallocateSelf ) - return; - - if( !refCount ) //Ordinary object? - { - traits->free(obj); - return; - } - - //Inplace object => callback client - - traits->onInplaceObjectDestroyed(buf, obj); - if( !traits->decRefCount(refCount) ) - traits->onAllInplaceObjectsDestroyed(buf); -} - - -uint16_t NvParameters::getMajorVersion(void) const -{ - uint16_t major = version() >> 16; - return major; -} - -uint16_t NvParameters::getMinorVersion(void) const -{ - uint16_t minor = version() & 0xffff; - return minor; -} - -void NvParameters::initRandom(void) -{ - Handle handle(*this, ""); - initRandom(handle); -} - -void NvParameters::initRandom(NvParameterized::Handle& handle) -{ - NvParameterized::ErrorType error; - - const Definition* pd = handle.parameterDefinition(); - switch( pd->type() ) - { - case TYPE_STRUCT: - { - for(int32_t i = 0; i < pd->numChildren(); ++i) - { - handle.set(i); - initRandom(handle); - handle.popIndex(); - } - - break; - } - - case TYPE_ARRAY: - { - if (!pd->arraySizeIsFixed()) - { - error = handle.resizeArray(int32_t(10 * (double)rand() / RAND_MAX)); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - } - - int32_t size; - error = handle.getArraySize(size); - PX_ASSERT(error == ERROR_NONE); - - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - - for(int32_t i = 0; i < size; ++i) - { - handle.set(i); - initRandom(handle); - handle.popIndex(); - } - - break; - } - - case TYPE_REF: - { - if (!pd->numRefVariants()) - break; // Can't do anything without refVariants-hint - - PX_ASSERT(pd->numRefVariants() > 0); - uint32_t refIdx = RandomIdx(0U, pd->numRefVariants() - 1U); - const char* className = pd->refVariantVal(static_cast(refIdx)); - if( mParameterizedTraits->doesFactoryExist(className) ) { - error = initParamRef(handle, className, true); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - - NvParameterized::Interface* obj = NULL; - error = handle.getParamRef(obj); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - } - - break; - } - - case TYPE_BOOL: - error = handle.setParamBool( 0 == RandomU32() % 2 ); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_STRING: - { - char s[10]; - int32_t len = (int32_t)( (size_t)rand() % sizeof(s) ); - for(int32_t i = 0; i < len; ++i) - s[i] = 'a' + rand() % ('z' - 'a'); - s[len] = 0; - - error = handle.setParamString(s); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - } - - case TYPE_ENUM: - { - uint32_t enumIdx = RandomIdx(0U, static_cast(pd->numEnumVals()-1)); - error = handle.setParamEnum(pd->enumVal(static_cast(enumIdx))); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - } - - case TYPE_I8: - error = handle.setParamI8((int8_t)(RandomU32() & 0xff)); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_U8: - error = handle.setParamU8((uint8_t)(RandomU32() & 0xff)); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_I16: - error = handle.setParamI16((int16_t)(RandomU32() & 0xffff)); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_U16: - error = handle.setParamU16((uint16_t)(RandomU32() & 0xffff)); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_I32: - error = handle.setParamI32((int32_t)RandomU32()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_U32: - error = handle.setParamU32((uint32_t)RandomU32()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_I64: - error = handle.setParamI64((int64_t)RandomU64()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_U64: - error = handle.setParamU64(RandomU64()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_F32: - error = handle.setParamF32(RandomF32()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_F64: - error = handle.setParamF64(RandomF64()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_VEC2: - error = handle.setParamVec2(RandomVec2()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_VEC3: - error = handle.setParamVec3(RandomVec3()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_VEC4: - error = handle.setParamVec4(RandomVec4()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_QUAT: - error = handle.setParamQuat(RandomQuat()); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_MAT33: - error = handle.setParamMat33(physx::PxMat33(RandomVec3(), RandomVec3(), RandomVec3())); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_BOUNDS3: - error = handle.setParamBounds3(physx::PxBounds3(RandomVec3(), RandomVec3())); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_MAT44: - error = handle.setParamMat44(physx::PxMat44(RandomVec4(), RandomVec4(), RandomVec4(), RandomVec4())); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - - case TYPE_MAT34: - { - float f[12] = { RandomF32(), RandomF32(), RandomF32(), RandomF32(), - RandomF32(), RandomF32(), RandomF32(), RandomF32(), - RandomF32(), RandomF32(), RandomF32(), RandomF32() }; - error = handle.setParamMat34Legacy(f); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - } - - case TYPE_POINTER: - // We can't init pointers :( - break; - - case TYPE_TRANSFORM: - { - // PxTransform asserts if the quat isn't "sane" - physx::PxQuat q; - do { - q = RandomQuat(); - } while (!q.isSane()); - - error = handle.setParamTransform(physx::PxTransform(RandomVec3(),q)); - DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); - break; - } - NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - PX_ALWAYS_ASSERT(); - } - - PX_UNUSED(error); // Make compiler happy -} - -void NvParameters::setClassName(const char *name) -{ - if(mParameterizedTraits) - { - if( mClassName ) - { - if( !strcmp( mClassName, name ) ) - return; - - if( mDoDeallocateClassName ) - mParameterizedTraits->strfree( const_cast(mClassName) ); - } - - mClassName = mParameterizedTraits->strdup(name); - } - else - { - mClassName = name; - } - - mDoDeallocateClassName = true; -} - -void NvParameters::setName(const char *name) -{ - if(mParameterizedTraits) - { - if( mName ) - { - if( !strcmp( mName, name ) ) - return; - - if( mDoDeallocateName ) - mParameterizedTraits->strfree( const_cast(mName) ); - } - - mName = mParameterizedTraits->strdup(name); - } - else - { - mName = name; - } - - mDoDeallocateName = true; -} - -void NvParameters::setSerializationCallback(SerializationCallback *cb, void *userData) -{ - mSerializationCb = cb; - mCbUserData = userData; -} - -ErrorType NvParameters::callPreSerializeCallback() const -{ - if(mSerializationCb) - { - mSerializationCb->preSerialize(mCbUserData); - } - - Handle handle(*this); - - NV_ERR_CHECK_RETURN( getParameterHandle("", handle) ); - - return callPreSerializeCallback(handle); -} - -int32_t NvParameters::numParameters(void) -{ - return(rootParameterDefinition()->numChildren()); -} - -const Definition *NvParameters::parameterDefinition(int32_t index) -{ - return(rootParameterDefinition()->child(index)); -} - -const Definition *NvParameters::rootParameterDefinition(void) -{ - return(getParameterDefinitionTree()); -} - -const Definition *NvParameters::rootParameterDefinition(void) const -{ - return(getParameterDefinitionTree()); -} - -ErrorType NvParameters::getParameterHandle(const char *long_name, Handle &handle) const -{ - ErrorType result = ERROR_NONE; - - PX_ASSERT( handle.getConstInterface() == this ); - - if( rootParameterDefinition() == NULL ) - { - handle.reset(); - result = (ERROR_INVALID_CALL_ON_NAMED_REFERENCE); - } - else - { - result = handle.set(this,rootParameterDefinition(), long_name); - } - - PX_ASSERT(result == ERROR_NONE); - - return result; -} - -ErrorType NvParameters::getParameterHandle(const char *long_name, Handle &handle) -{ - ErrorType result = ERROR_NONE; - - PX_ASSERT( handle.getConstInterface() == this ); - - if( rootParameterDefinition() == NULL ) - { - handle.reset(); - result = (ERROR_INVALID_CALL_ON_NAMED_REFERENCE); - } - else - { - result = handle.set(this,rootParameterDefinition(), long_name); - } - - PX_ASSERT(result == ERROR_NONE); - - return result; -} - -#ifndef NV_CHECKED -# define CHECK_HANDLE -# define CHECK_IS_SIMPLE_ARRAY(type_enum_name) -#else -# define CHECK_HANDLE \ - { \ - ErrorType result = checkParameterHandle(handle); \ - PX_ASSERT(result == ERROR_NONE); \ - if(result != ERROR_NONE) \ - return(result); \ - } -# define CHECK_IS_SIMPLE_ARRAY(type_enum_name) \ - { \ - PX_ASSERT(offset >= 0);\ - PX_ASSERT(n >= 0);\ - if(handle.parameterDefinition()->type() != TYPE_ARRAY) \ - {\ - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_NOT_AN_ARRAY");\ - return(ERROR_NOT_AN_ARRAY); \ - }\ - if(handle.parameterDefinition()->child(0)->type() != TYPE_##type_enum_name) \ - {\ - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED");\ - return(ERROR_CAST_FAILED); \ - }\ - int32_t arraySize; \ - ErrorType error; \ - if((error = getArraySize(handle, arraySize)) != ERROR_NONE) \ - {\ - PX_ASSERT(error == ERROR_NONE); \ - return(error); \ - }\ - if( offset + n > arraySize) \ - {\ - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_ARRAY_IS_TOO_SMALL");\ - return(ERROR_ARRAY_IS_TOO_SMALL); \ - }\ - } -#endif - -template ErrorType rawGetParam(const Handle &handle,Type &val,const NvParameters *parent) -{ - size_t offset; - void *ptr=NULL; - parent->getVarPtr(handle, ptr, offset); - if ( ptr == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); - return ERROR_TYPE_NOT_SUPPORTED; - } - Type *var = (Type *)((char *)ptr); - val = *var; - return(ERROR_NONE); -} - -template ErrorType rawSetParam(const Handle &handle,const Type &val,NvParameters *parent) -{ - size_t offset; - void *ptr=NULL; - parent->getVarPtr(handle, ptr, offset); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - Type *Var = (Type *)((char *)ptr); - *Var = val; - return(ERROR_NONE); -} - -template ErrorType rawGetParamArray(const Handle &handle,Type *array, int32_t n, int32_t offset,const NvParameters *parent) -{ - int32_t size; - NV_ERR_CHECK_RETURN(handle.getArraySize(size)); - if( size < offset + n ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - if( n ) - { - Handle memberHandle(handle); - NV_ERR_CHECK_RETURN(memberHandle.set(offset)); - - size_t tmp; - void *ptr=NULL; - parent->getVarPtr(memberHandle, ptr, tmp); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - physx::intrinsics::memCopy(array, ptr, n * sizeof(Type)); - } - - return(ERROR_NONE); -} - -template ErrorType rawSetParamArray(const Handle &handle, const Type *array, int32_t n, int32_t offset,NvParameters *parent) -{ - int32_t size; - NV_ERR_CHECK_RETURN(handle.getArraySize(size)); - if( size < offset + n ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - if( n ) - { - Handle memberHandle(handle); - NV_ERR_CHECK_RETURN(memberHandle.set(offset)); - - size_t tmp; - void *ptr=NULL; - parent->getVarPtr(memberHandle, ptr, tmp); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - physx::intrinsics::memCopy(ptr, array, n * sizeof(Type)); - } - - return(ERROR_NONE); -} - -//****************************************************************************** -//*** Bool -//****************************************************************************** - -ErrorType NvParameters::getParamBool(const Handle &handle, bool &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_BOOL) - { - return rawGetParamBool(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamBool(const Handle &handle, bool val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_BOOL) - { - return rawSetParamBool(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(BOOL) - return(rawGetParamBoolArray(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(BOOL) - return(rawSetParamBoolArray(handle, array, n, offset)); -} - -//****************************************************************************** -//*** String -//****************************************************************************** - -ErrorType NvParameters::getParamString(const Handle &handle, const char *&val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_ENUM) - { - return rawGetParamEnum(handle, val); - } - - if(handle.parameterDefinition()->type() == TYPE_STRING) - { - return rawGetParamString(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamString(const Handle &handle, const char *val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_STRING) - { - return rawSetParamString(handle, val); - } - - if(handle.parameterDefinition()->type() == TYPE_ENUM) - { - return rawSetParamEnum(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::rawGetParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset) const -{ - Handle memberHandle(handle); - for(int32_t i=0; i < n; ++i) - { - ErrorType error; - if((error = memberHandle.set(i + offset)) != ERROR_NONE) - { - PX_ASSERT(error == ERROR_NONE); - return(error); - } - - const char * tmp; - if((error = rawGetParamString(memberHandle, tmp)) != ERROR_NONE) - { - PX_ASSERT(error == ERROR_NONE); - return(error); - } - - array[i] = const_cast(tmp); - memberHandle.popIndex(); - } - return(ERROR_NONE); -} - - -ErrorType NvParameters::getParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(STRING) - return(rawGetParamStringArray(handle, array, n, offset)); -} - -ErrorType NvParameters::rawSetParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset) -{ - Handle memberHandle(handle); - for(int32_t i=0; i < n; ++i) - { - ErrorType error; - if((error = memberHandle.set(i + offset)) != ERROR_NONE) - { - PX_ASSERT(error == ERROR_NONE); - return(error); - } - - if((error = rawSetParamString(memberHandle, array[i] )) != ERROR_NONE) - { - PX_ASSERT(error == ERROR_NONE); - return(error); - } - - memberHandle.popIndex(); - } - return(ERROR_NONE); -} - -ErrorType NvParameters::setParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(STRING) - return(rawSetParamStringArray(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Enum -//****************************************************************************** - -ErrorType NvParameters::getParamEnum(const Handle &handle, const char *&val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_STRING) - { - return rawGetParamString(handle, val); - } - - if(handle.parameterDefinition()->type() == TYPE_ENUM) - { - return rawGetParamEnum(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -// returns the actual enum string from the ParameterDefintion object, which should be good for the liftetime -// of the DefinitionImpl object. Returns NULL if no such enum exists. -static const char* getEnumString(const Handle &handle, const char* str) -{ - PX_ASSERT(str != NULL); - - const Definition* paramDef = handle.parameterDefinition(); - PX_ASSERT(paramDef != NULL); - PX_ASSERT(paramDef->type() == TYPE_ENUM); - - for (int32_t i = 0; i < paramDef->numEnumVals(); ++i) - if(!strcmp(paramDef->enumVal(i), str)) - return(paramDef->enumVal(i)); - - return(NULL); -} - -ErrorType NvParameters::setParamEnum(const Handle &handle, const char *val) -{ - CHECK_HANDLE - - val = getEnumString(handle, val); - if(val == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_ENUM_VAL"); - return(ERROR_INVALID_ENUM_VAL); - } - - if(handle.parameterDefinition()->type() == TYPE_ENUM) - { - return rawSetParamEnum(handle, val); - } - - if(handle.parameterDefinition()->type() == TYPE_STRING) - { - return rawSetParamString(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::rawGetParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset) const -{ - Handle memberHandle(handle); - for(int32_t i=0; i < n; ++i) - { - ErrorType error; - if((error = memberHandle.set(i + offset)) != ERROR_NONE) - return(error); - const char * tmp; - if((error = rawGetParamEnum(memberHandle, tmp)) != ERROR_NONE) - return(error); - array[i] = const_cast(tmp); - memberHandle.popIndex(); - } - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSetParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset) -{ - Handle memberHandle(handle); - for(int32_t i=0; i < n; ++i) - { - ErrorType error; - if((error = memberHandle.set(i + offset)) != ERROR_NONE) - return(error); - if((error = rawSetParamEnum(memberHandle, array[i])) != ERROR_NONE) - return(error); - memberHandle.popIndex(); - } - return(ERROR_NONE); -} - -ErrorType NvParameters::getParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(ENUM) - return(rawGetParamEnumArray(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(ENUM) - return(rawSetParamEnumArray(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Ref -//****************************************************************************** - -ErrorType NvParameters::initParamRef(const Handle &handle, const char *inChosenRefStr, bool doDestroyOld) -{ - CHECK_HANDLE - - NvParameterized::Interface *param = NULL; - const char *chosenRefStr = inChosenRefStr; - - // create NvParam object (depends on if it's included or not) - const Hint *hint = handle.parameterDefinition()->hint("INCLUDED"); - if (hint && hint->type() != TYPE_U64) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_INCLUDE_HINT"); - return(ERROR_INVALID_REFERENCE_INCLUDE_HINT); - } - - if (hint != NULL && hint->asUInt() == 1) - { - // included - - if (chosenRefStr == 0 && handle.parameterDefinition()->numRefVariants() > 1) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_VALUE"); - return(ERROR_INVALID_REFERENCE_VALUE); - } - - for (int32_t i = 0; i < handle.parameterDefinition()->numRefVariants(); i++) - { - if (!strcmp(handle.parameterDefinition()->refVariantVal(i), chosenRefStr)) - { - // create an object of type chosenRefStr, somehow - param = mParameterizedTraits->createNvParameterized(chosenRefStr); - if (!param) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_OBJECT_CONSTRUCTION_FAILED"); - return ERROR_OBJECT_CONSTRUCTION_FAILED; - } - - return setParamRef(handle, param, doDestroyOld); - } - } - // PH: debug hint - // If you land here, you should compare chosenRefStr and handle.mParameterDefinition.mRefVariantVals - // to see why it couldn't find anything, and then fix the .pl - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_VALUE"); - return(ERROR_INVALID_REFERENCE_VALUE); - } - else - { - // not included, just create generic NvParameterized - param = NV_PARAM_PLACEMENT_NEW(mParameterizedTraits->alloc(sizeof(NvParameters)), NvParameters)(mParameterizedTraits); - if (!param) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_OBJECT_CONSTRUCTION_FAILED"); - return ERROR_OBJECT_CONSTRUCTION_FAILED; - } - - if (chosenRefStr == 0) - { - param->setClassName(handle.parameterDefinition()->refVariantVal(0)); - } - else - { - bool found = false; - for (int32_t i = 0; i < handle.parameterDefinition()->numRefVariants(); i++) - { - if (!strcmp(handle.parameterDefinition()->refVariantVal(i), chosenRefStr)) - { - param->setClassName(handle.parameterDefinition()->refVariantVal(i)); - found = true; - break; - } - } - if ( !found ) - { - // ensure that we free this memory that we've allocated - mParameterizedTraits->free(param); - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_VALUE"); - return(ERROR_INVALID_REFERENCE_VALUE); - } - } - return setParamRef(handle, param, doDestroyOld); - } -} - -ErrorType NvParameters::getParamRef(const Handle &handle, NvParameterized::Interface *&val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_REF) - { - return rawGetParamRef(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamRef(const Handle &handle, NvParameterized::Interface *val, bool doDestroyOld) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_REF) - { - if (doDestroyOld) - { - NvParameterized::Interface *param = NULL; - - getParamRef(handle, param); - if(param) - { - param->destroy(); - param = NULL; - } - } - return rawSetParamRef(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::rawGetParamRefArray(const Handle &handle, NvParameterized::Interface **array, int32_t n, int32_t offset) const -{ - Handle memberHandle(handle); - for(int32_t i=0; i < n; ++i) - { - ErrorType error; - if((error = memberHandle.set(i + offset)) != ERROR_NONE) - return(error); - NvParameterized::Interface * tmp; - if((error = rawGetParamRef(memberHandle, tmp)) != ERROR_NONE) - return(error); - array[i] = tmp; - memberHandle.popIndex(); - } - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSetParamRefArray(const Handle &handle,NvParameterized::Interface **array, int32_t n, int32_t offset) -{ - Handle memberHandle(handle); - for(int32_t i=0; i < n; ++i) - { - ErrorType error; - if((error = memberHandle.set(i + offset)) != ERROR_NONE) - return(error); - if((error = rawSetParamRef(memberHandle, array[i])) != ERROR_NONE) - return(error); - memberHandle.popIndex(); - } - - return(ERROR_NONE); -} - -ErrorType NvParameters::getParamRefArray(const Handle &handle, NvParameterized::Interface * *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(REF) - return(rawGetParamRefArray(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamRefArray(const Handle &handle, /*const*/ NvParameterized::Interface **array, int32_t n, int32_t offset, bool doDestroyOld) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(REF) - - Handle memberHandle(handle); - for(int32_t i = 0; i < n; ++i) - { - ErrorType error; - if((error = memberHandle.set(i + offset)) != ERROR_NONE) - { - return(error); - } - - if((error = setParamRef(memberHandle, array[i]), doDestroyOld) != ERROR_NONE) - { - return(error); - } - memberHandle.popIndex(); - } - return(ERROR_NONE); -} - -//****************************************************************************** -//*** I8 -//****************************************************************************** - -ErrorType NvParameters::getParamI8(const Handle &handle, int8_t &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I8) - { - return rawGetParamI8(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamI8(const Handle &handle, int8_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I8) - { - return rawSetParamI8(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I8) - return(rawGetParamI8Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamI8Array(const Handle &handle, const int8_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I8) - return(rawSetParamI8Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** I16 -//****************************************************************************** - -ErrorType NvParameters::getParamI16(const Handle &handle, int16_t &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I8) - { - int8_t tmp; - ErrorType result = rawGetParamI8(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int16_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_I16) - { - return rawGetParamI16(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamI16(const Handle &handle, int16_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I16) - { - return rawSetParamI16(handle, val); - } - if(handle.parameterDefinition()->type() == TYPE_I8) - { - return rawSetParamI8(handle, (int8_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawSetParamU8(handle, (uint8_t)val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I16) - return(rawGetParamI16Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamI16Array(const Handle &handle, const int16_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I16) - return(rawSetParamI16Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** I32 -//****************************************************************************** - -ErrorType NvParameters::getParamI32(const Handle &handle, int32_t &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I8) - { - int8_t tmp; - ErrorType result = rawGetParamI8(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int32_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_I16) - { - int16_t tmp; - ErrorType result = rawGetParamI16(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int32_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_I32) - { - int32_t tmp; - ErrorType result = rawGetParamI32(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int32_t)tmp; - return(ERROR_NONE); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamI32(const Handle &handle, int32_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I32) - { - return rawSetParamI32(handle, val); - } - if(handle.parameterDefinition()->type() == TYPE_I16) - { - return rawSetParamI16(handle, (int16_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_U16) - { - return rawSetParamU16(handle, (uint16_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_I8) - { - return rawSetParamI8(handle, (int8_t) val); - } - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawSetParamU8(handle, (uint8_t) val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I32) - return(rawGetParamI32Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamI32Array(const Handle &handle, const int32_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I32) - return(rawSetParamI32Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** I64 -//****************************************************************************** - -ErrorType NvParameters::getParamI64(const Handle &handle, int64_t &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I8) - { - int8_t tmp; - ErrorType result = rawGetParamI8(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int64_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_I16) - { - int16_t tmp; - ErrorType result = rawGetParamI16(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int64_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_I32) - { - int32_t tmp; - ErrorType result = rawGetParamI32(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int64_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_I64) - { - int64_t tmp; - ErrorType result = rawGetParamI64(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (int64_t)tmp; - return(ERROR_NONE); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamI64(const Handle &handle, int64_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_I64) - { - return rawSetParamI64(handle, val); - } - if(handle.parameterDefinition()->type() == TYPE_U32) - { - return rawSetParamU32(handle, (uint32_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_I32) - { - return rawSetParamI32(handle, (int32_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_I16) - { - return rawSetParamI16(handle, (int16_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_U16) - { - return rawSetParamU16(handle, (uint16_t) val); - } - if(handle.parameterDefinition()->type() == TYPE_I8) - { - return rawSetParamI8(handle, (int8_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawSetParamU8(handle, (uint8_t)val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I64) - return(rawGetParamI64Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamI64Array(const Handle &handle, const int64_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(I64) - return(rawSetParamI64Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** U8 -//****************************************************************************** - -ErrorType NvParameters::getParamU8(const Handle &handle, uint8_t &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawGetParamU8(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamU8(const Handle &handle, uint8_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawSetParamU8(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamU8Array(const Handle &handle, const uint8_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U8) - return(rawSetParamU8Array(handle, array, n, offset)); -} - - -//****************************************************************************** -//*** U16 -//****************************************************************************** - -ErrorType NvParameters::getParamU16(const Handle &handle, uint16_t &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_U8) - { - uint8_t tmp; - ErrorType result = rawGetParamU8(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint16_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_U16) - { - uint16_t tmp; - ErrorType result = rawGetParamU16(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint16_t)tmp; - return(ERROR_NONE); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamU16(const Handle &handle, uint16_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_U16) - { - return rawSetParamU16(handle, val); - } - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawSetParamU8(handle, (uint8_t)val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U16) - return(rawGetParamU16Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U16) - return(rawSetParamU16Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** U32 -//****************************************************************************** - -ErrorType NvParameters::getParamU32(const Handle &handle, uint32_t &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_U8) - { - uint8_t tmp; - ErrorType result = rawGetParamU8(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint32_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_U16) - { - uint16_t tmp; - ErrorType result = rawGetParamU16(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint32_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_U32) - { - uint32_t tmp; - ErrorType result = rawGetParamU32(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint32_t)tmp; - return(ERROR_NONE); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamU32(const Handle &handle, uint32_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_U32) - { - return rawSetParamU32(handle, val); - } - if(handle.parameterDefinition()->type() == TYPE_U16) - { - return rawSetParamU16(handle, (uint16_t)val); - } - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawSetParamU8(handle, (uint8_t)val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U32) - return(rawGetParamU32Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U32) - return(rawSetParamU32Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** U64 -//****************************************************************************** - -ErrorType NvParameters::getParamU64(const Handle &handle, uint64_t &val) const -{ - CHECK_HANDLE - - if (handle.parameterDefinition()->type() == TYPE_BOOL) - { - bool tmp; - ErrorType result = rawGetParamBool(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if (result != ERROR_NONE) - return(result); - val = (uint64_t)tmp; - return(ERROR_NONE); - } - - if (handle.parameterDefinition()->type() == TYPE_U8) - { - uint8_t tmp; - ErrorType result = rawGetParamU8(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint64_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_U16) - { - uint16_t tmp; - ErrorType result = rawGetParamU16(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint64_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_U32) - { - uint32_t tmp; - ErrorType result = rawGetParamU32(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint64_t)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_U64) - { - uint64_t tmp; - ErrorType result = rawGetParamU64(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (uint64_t)tmp; - return(ERROR_NONE); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamU64(const Handle &handle, uint64_t val) -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_U64) - { - return rawSetParamU64(handle, val); - } - - if(handle.parameterDefinition()->type() == TYPE_U32) - { - return rawSetParamU32(handle, (uint32_t)val); - } - - if(handle.parameterDefinition()->type() == TYPE_U16) - { - return rawSetParamU16(handle, (uint16_t)val); - } - - if(handle.parameterDefinition()->type() == TYPE_U8) - { - return rawSetParamU8(handle, (uint8_t)val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U64) - return(rawGetParamU64Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U64) - return(rawSetParamU64Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** F32 -//****************************************************************************** - -ErrorType NvParameters::getParamF32(const Handle &handle, float &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_F32) - { - return rawGetParamF32(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamF32(const Handle &handle, float val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_F32) - { - return rawSetParamF32(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(F32) - return(rawGetParamF32Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(F32) - CHECK_F32_FINITE_ARRAY - return(rawSetParamF32Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** F64 -//****************************************************************************** - -ErrorType NvParameters::getParamF64(const Handle &handle, double &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_F32) - { - float tmp; - ErrorType result = rawGetParamF32(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (double)tmp; - return(ERROR_NONE); - } - - if(handle.parameterDefinition()->type() == TYPE_F64) - { - double tmp; - ErrorType result = rawGetParamF64(handle, tmp); - PX_ASSERT(result == ERROR_NONE); - - if(result != ERROR_NONE) - return(result); - val = (double)tmp; - return(ERROR_NONE); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamF64(const Handle &handle, double val) -{ - CHECK_HANDLE - CHECK_F64_FINITE - - if(handle.parameterDefinition()->type() == TYPE_F64) - { - return rawSetParamF64(handle, val); - } - else if(handle.parameterDefinition()->type() == TYPE_F32) - { - return rawSetParamF32(handle, (float)val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::setParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(F64) - CHECK_F64_FINITE_ARRAY - return(rawSetParamF64Array(handle, array, n, offset)); -} - -/** -# When shrinking a dynamic array, the array may contain dynamically allocated Refs or Strings. -# It may also contain Structs that contain these items, we'll call them all "dynamic parameters". -# -# To handle this, we generate, for every dynamic array with dynamic parameters, handle indices in -# the Parameter Definition that help the NvParameters::rawResizeArray() method find these parameters -# and destroy them quickly (without having to recursively traverse the parameters). -# -# The handle indices are layed out like this for the following struct: -# [ handleDepth0, 3, handleDepth1, 5 ] - handleDepth0 = handleDepth1 = 1 -# struct myStruct { -# float a; -# float b; -# float c; -# string myString; -# float a; -# ref myRef; -# } -# -# You can see that myString and myRef are the only two dynamically allocated members that need -# to be destroyed, so only their indices appear in the list. -# -# Note: Currently, we only support 1D arrays with dynamic parameters in the top most struct. -# array[i].myString is supported -# array[i].structa.myString is supported -# array[i].structa.structb.myString is NOT supported -*/ -ErrorType NvParameters::releaseDownsizedParameters(const Handle &handle, int newSize, int oldSize) -{ - // if downsizing array, release dynamic parameters - // for now, just do 1D arrays - if( newSize >= oldSize ) - { - return ERROR_NONE; - } - - uint32_t numIndices=0; - Handle tmpHandle(handle); - - const uint8_t *hIndices = tmpHandle.parameterDefinition()->getDynamicHandleIndicesMap(numIndices); - - if( numIndices ) - { - // from array[new_size] to array[old_size] - for( int i=newSize; itype(); - if( type == TYPE_STRING ) - { - tmpHandle.setParamString( NULL ); - } - else if( type == TYPE_REF ) - { - NvParameterized::Interface * paramPtr = 0; - tmpHandle.getParamRef( paramPtr ); - if( paramPtr ) - { - paramPtr->destroy(); - tmpHandle.setParamRef( NULL ); - } - } - else if( type == TYPE_ENUM ) - { - // nothing to do on a downsize - } - else - { - PX_ASSERT( 0 && "Invalid dynamically allocated type defined in Definition handle list" ); - } - - // reset the handle - if( indexDepth > 0 ) - { - tmpHandle.popIndex( indexDepth ); - } - } - - tmpHandle.popIndex(); - } - } - - return ERROR_NONE; -} - - - -/** -# When growing a dynamic array, the array may contain Enums or Structs that contain enums. -# -# To handle this, we generate, for every dynamic array with enums, handle indices in -# the Parameter Definition that help the NvParameters::rawResizeArray() method find these parameters -# and initialized them quickly (without having to recursively traverse the parameters). -# -# Note: Currently, we only support 1D arrays with enums in the top most struct. -# array[i].enumA is supported -# array[i].structa.enumA is supported -# array[i].structa.structb.enumA is NOT supported -*/ -ErrorType NvParameters::initNewResizedParameters(const Handle &handle, int newSize, int oldSize) -{ - // if downsizing array, release dynamic parameters - // for now, just do 1D arrays - if( newSize <= oldSize ) - { - return ERROR_NONE; - } - - uint32_t numIndices=0; - Handle tmpHandle(handle); - - const uint8_t *hIndices = tmpHandle.parameterDefinition()->getDynamicHandleIndicesMap(numIndices); - - if( numIndices ) - { - // from array[new_size] to array[old_size] - for( int i=oldSize; itype(); - if( type == TYPE_STRING || type == TYPE_REF ) - { - // nothing to do on an array growth - } - else if( type == TYPE_ENUM ) - { - // this is not the default value, but that's not available from here - // we could possibly store the enum default values, or just always make them first - tmpHandle.setParamEnum( tmpHandle.parameterDefinition()->enumVal(0) ); - } - else if( type == TYPE_ARRAY ) - { - // FIXME: we do not fully support arrays here, this is just a brain-dead stub - - const Definition *pd = 0; - for(pd = tmpHandle.parameterDefinition(); pd->type() == TYPE_ARRAY; pd = pd->child(0)) - { - PX_ASSERT( pd->numChildren() == 1 ); - } - - if( pd->type() != TYPE_STRING && pd->type() != TYPE_REF ) - PX_ASSERT( 0 && "Invalid dynamically allocated type defined in Definition handle list" ); - } - else - { - PX_ASSERT( 0 && "Invalid dynamically allocated type defined in Definition handle list" ); - } - - // reset the handle - if( indexDepth > 0 ) - { - tmpHandle.popIndex( indexDepth ); - } - } - - tmpHandle.popIndex(); - } - } - - return ERROR_NONE; -} - -ErrorType NvParameters::rawResizeArray(const Handle &handle, int new_size) -{ - size_t offset; - ErrorType ret; - void *ptr=NULL; - - Handle arrayRootHandle(handle); - - // We should consider storing alignment in dynamic array struct at some point - uint32_t align = arrayRootHandle.parameterDefinition()->alignment(); - if( 0 == align ) - align = 8; // Default alignment - - int dimension = 0; - - while(arrayRootHandle.parameterDefinition()->parent() && - arrayRootHandle.parameterDefinition()->parent()->type() == TYPE_ARRAY) - { - arrayRootHandle.popIndex(); - dimension++; - } - - getVarPtr(arrayRootHandle, ptr, offset); - if ( ptr == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); - return ERROR_TYPE_NOT_SUPPORTED; - } - - DummyDynamicArrayStruct *dynArray = (DummyDynamicArrayStruct *)ptr; - int old_size = dynArray->arraySizes[0]; - - releaseDownsizedParameters(handle, new_size, old_size); - - ret = resizeArray(mParameterizedTraits, - dynArray->buf, - dynArray->arraySizes, - arrayRootHandle.parameterDefinition()->arrayDimension(), - dimension, - new_size, - dynArray->isAllocated, - dynArray->elementSize, - align, - dynArray->isAllocated); - - initNewResizedParameters(handle, new_size, old_size); - - return ret; -} - -ErrorType NvParameters::rawGetArraySize(const Handle &array_handle, int &size, int dimension) const -{ - size_t offset; - void *ptr=NULL; - getVarPtr(array_handle, ptr, offset); - if ( ptr == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); - return ERROR_TYPE_NOT_SUPPORTED; - } - - DummyDynamicArrayStruct *dynArray = (DummyDynamicArrayStruct *)ptr; - size = dynArray->arraySizes[dimension]; - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSwapArrayElements(const Handle &array_handle, unsigned int firstElement, unsigned int secondElement) -{ - size_t offset = 0; - void* ptr = NULL; - Handle arrayRootHandle(array_handle); - - getVarPtr(arrayRootHandle, ptr, offset); - if ( ptr == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); - return ERROR_TYPE_NOT_SUPPORTED; - } - - DummyDynamicArrayStruct* dynArray = reinterpret_cast(ptr); - - const int elementSize = dynArray->elementSize; - - char tempDataStack[64]; - void* tempData = tempDataStack; - - void* tempDataHeap = NULL; - PX_ASSERT(elementSize > 0); - PX_ASSERT(sizeof(elementSize) <= sizeof(uint32_t)); - if (elementSize > 64) - { - tempDataHeap = mParameterizedTraits->alloc(static_cast(elementSize)); - tempData = tempDataHeap; - } - - char* firstPtr = (char*)dynArray->buf + elementSize * firstElement; - char* secondPtr = (char*)dynArray->buf + elementSize * secondElement; - - physx::intrinsics::memCopy(tempData, firstPtr, static_cast(elementSize)); - physx::intrinsics::memCopy(firstPtr, secondPtr, static_cast(elementSize)); - physx::intrinsics::memCopy(secondPtr, tempData, static_cast(elementSize)); - - if (tempDataHeap != NULL) - { - mParameterizedTraits->free(tempDataHeap); - } - - return(ERROR_NONE); -} - -#define ARRAY_HANDLE_CHECKS \ - if(!array_handle.isValid()) \ - { \ - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE");\ - return(ERROR_INVALID_PARAMETER_HANDLE); \ - }\ - if(array_handle.parameterDefinition()->type() != TYPE_ARRAY) \ - {\ - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_NOT_AN_ARRAY"); \ - return(ERROR_NOT_AN_ARRAY); \ - } - - -ErrorType NvParameters::resizeArray(const Handle &array_handle, int32_t new_size) -{ - ARRAY_HANDLE_CHECKS - - if(new_size < 0) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_ARRAY_SIZE"); - return(ERROR_INVALID_ARRAY_SIZE); - } - - if(array_handle.parameterDefinition()->arraySizeIsFixed()) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_ARRAY_SIZE_IS_FIXED"); - return(ERROR_ARRAY_SIZE_IS_FIXED); - } - - return(rawResizeArray(array_handle, new_size)); -} - -ErrorType NvParameters::swapArrayElements(const Handle &array_handle, uint32_t firstElement, uint32_t secondElement) -{ - ARRAY_HANDLE_CHECKS; - - if (firstElement == secondElement) - return(ERROR_NONE); - - int array_size = 0; - rawGetArraySize(array_handle, array_size, 0); - - if (array_size < 1) - return(ERROR_NONE); - - if (firstElement >= (unsigned int)array_size) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - if (secondElement >= (unsigned int)array_size) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - // well, maybe swapping will work on fixed size arrays as well... - if (array_handle.parameterDefinition()->arraySizeIsFixed()) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_ARRAY_SIZE_IS_FIXED"); - return(ERROR_ARRAY_SIZE_IS_FIXED); - } - - return rawSwapArrayElements(array_handle, firstElement, secondElement); -} - -ErrorType NvParameters:: - getArraySize(const Handle &array_handle, int32_t &size, int32_t dimension) const -{ - ARRAY_HANDLE_CHECKS - - if(dimension < 0 || dimension >= array_handle.parameterDefinition()->arrayDimension()) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_ARRAY_DIMENSION"); - return(ERROR_INVALID_ARRAY_DIMENSION); - } - - if(array_handle.parameterDefinition()->arraySizeIsFixed()) - { - size = array_handle.parameterDefinition()->arraySize(dimension); - return(ERROR_NONE); - } - - return(rawGetArraySize(array_handle, size, dimension)); -} - -ErrorType NvParameters::callPreSerializeCallback(Handle& handle) const -{ - const Definition* def = handle.parameterDefinition(); - if (def->type() == TYPE_REF) - { - // don't preSerialize Named References - const Hint *hint = def->hint("INCLUDED"); - if( hint && - hint->type() == TYPE_U64 && - hint->asUInt() == 1 ) - { - // included - NvParameterized::Interface* ref = NULL; - NV_ERR_CHECK_RETURN( getParamRef(handle, ref) ); - if( ref ) - { - NV_ERR_CHECK_RETURN( ref->callPreSerializeCallback() ); - } - } - } - else if (def->type() == TYPE_ARRAY) - { - int32_t arraySize = 0; - getArraySize(handle, arraySize); - - for (int32_t i = 0; i < arraySize; i++) - { - handle.set(i); - - NV_ERR_CHECK_RETURN( callPreSerializeCallback(handle) ); - - handle.popIndex(); - } - } - else if (def->type() == TYPE_STRUCT) - { - const int32_t numChildren = def->numChildren(); - - for (int32_t childIndex = 0; childIndex < numChildren; childIndex++) - { - handle.set(childIndex); - - NV_ERR_CHECK_RETURN( callPreSerializeCallback(handle) ); - - handle.popIndex(); - } - } - - return ERROR_NONE; -} - -ErrorType NvParameters::checkParameterHandle(const Handle &handle) const -{ - PX_ASSERT( handle.getConstInterface() ); - PX_ASSERT( handle.getConstInterface() == this ); - - if (!handle.isValid()) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE"); - return(ERROR_INVALID_PARAMETER_HANDLE); - } - - if (handle.getConstInterface() == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_HANDLE_MISSING_INTERFACE_POINTER"); - return(ERROR_HANDLE_MISSING_INTERFACE_POINTER); - } - - if (handle.getConstInterface() != this ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_HANDLE_INVALID_INTERFACE_POINTER"); - return(ERROR_HANDLE_INVALID_INTERFACE_POINTER); - } - - if(handle.parameterDefinition()->root() != rootParameterDefinition()) - { - return(ERROR_PARAMETER_HANDLE_DOES_NOT_MATCH_CLASS); - } - - - const Definition *ptr = rootParameterDefinition(); - for(int32_t i=0; i < handle.numIndexes(); ++i) - { - PX_ASSERT(ptr != NULL); - - switch(ptr->type()) - { - case TYPE_STRUCT: - if(handle.index(i) >= ptr->numChildren()) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - ptr = ptr->child(handle.index(i)); - break; - - case TYPE_ARRAY: - { - int32_t size = ptr->arraySize(); - Handle tmpHandle(handle); - tmpHandle.popIndex(handle.numIndexes() - i); - - if(size <= 0) - if(getArraySize(tmpHandle, size) != ERROR_NONE) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - if(handle.index(i) >= size) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - ptr = ptr->child(0); - } - break; - - NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS - default: - PX_ALWAYS_ASSERT(); - ptr = NULL; - } - } - - return(ERROR_NONE); -} - -ErrorType NvParameters::clone(NvParameterized::Interface *&nullDestObject) const -{ - PX_ASSERT(nullDestObject == NULL ); - nullDestObject = mParameterizedTraits->createNvParameterized(className(), version()); - if( !nullDestObject ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_OBJECT_CONSTRUCTION_FAILED"); - return ERROR_OBJECT_CONSTRUCTION_FAILED; - } - - ErrorType err = nullDestObject->copy(*this); - if( ERROR_NONE != err ) - { - nullDestObject->destroy(); - nullDestObject = NULL; - } - - return err; -} - -ErrorType NvParameters::copy(const NvParameterized::Interface &other, - Handle &thisHandle) -{ - const Definition *paramDef = thisHandle.parameterDefinition(); - ErrorType error = ERROR_NONE; - - if( paramDef->type() == TYPE_STRUCT ) - { - for(int32_t i=0; i < paramDef->numChildren(); ++i) - { - thisHandle.set(i); - error = copy(other, thisHandle); - NV_ERR_CHECK_RETURN(error); - - thisHandle.popIndex(); - } - return(error); - } - else if( paramDef->type() == TYPE_ARRAY ) - { - int32_t thisSize, otherSize; - - error = thisHandle.getArraySize(thisSize); - NV_ERR_CHECK_RETURN(error); - - Handle otherHandle = thisHandle; - otherHandle.setInterface(&other); - error = otherHandle.getArraySize(otherSize); - NV_ERR_CHECK_RETURN(error); - - thisHandle.setInterface(this); - - if(thisSize != otherSize) - { - error = thisHandle.resizeArray(otherSize); - NV_ERR_CHECK_RETURN(error); - thisSize = otherSize; - } - - for(int32_t i=0; i < otherSize; ++i) - { - thisHandle.set(i); - - error = this->copy(other, thisHandle); - NV_ERR_CHECK_RETURN(error); - - thisHandle.popIndex(); - } - return(error); - } - - Handle otherHandle = thisHandle; - otherHandle.setInterface(&other); - switch(paramDef->type()) - { - case TYPE_BOOL: - { - bool otherVal; - error = otherHandle.getParamBool(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamBool(otherVal) ); - } - - case TYPE_I8: - { - int8_t otherVal; - error = otherHandle.getParamI8(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamI8(otherVal) ); - } - - case TYPE_I16 : - { - int16_t otherVal; - error = otherHandle.getParamI16(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamI16(otherVal) ); - } - case TYPE_I32 : - { - int32_t otherVal; - error = otherHandle.getParamI32(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamI32(otherVal) ); - } - case TYPE_I64 : - { - int64_t otherVal; - error = otherHandle.getParamI64(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamI64(otherVal) ); - } - - case TYPE_U8 : - { - uint8_t otherVal; - error = otherHandle.getParamU8(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamU8(otherVal) ); - } - case TYPE_U16 : - { - uint16_t otherVal; - error = otherHandle.getParamU16(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamU16(otherVal) ); - } - case TYPE_U32 : - { - uint32_t otherVal; - error = otherHandle.getParamU32(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamU32(otherVal) ); - } - case TYPE_U64 : - { - uint64_t otherVal; - error = otherHandle.getParamU64(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamU64(otherVal) ); - } - - case TYPE_F32 : - { - float otherVal; - error = otherHandle.getParamF32(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamF32(otherVal) ); - } - case TYPE_F64 : - { - double otherVal; - error = otherHandle.getParamF64(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamF64(otherVal) ); - } - - case TYPE_VEC2 : - { - physx::PxVec2 otherVal; - error = otherHandle.getParamVec2(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamVec2(otherVal) ); - } - case TYPE_VEC3 : - { - physx::PxVec3 otherVal; - error = otherHandle.getParamVec3(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamVec3(otherVal) ); - } - case TYPE_VEC4 : - { - physx::PxVec4 otherVal; - error = otherHandle.getParamVec4(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamVec4(otherVal) ); - } - case TYPE_QUAT : - { - physx::PxQuat otherVal; - error = otherHandle.getParamQuat(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamQuat(otherVal) ); - } - case TYPE_MAT33 : - { - physx::PxMat33 otherVal; - error = otherHandle.getParamMat33(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamMat33(otherVal) ); - } - case TYPE_MAT44 : - { - physx::PxMat44 otherVal; - error = otherHandle.getParamMat44(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamMat44(otherVal) ); - } - case TYPE_MAT34 : - { - float otherVal[12]; - error = otherHandle.getParamMat34Legacy(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamMat34Legacy(otherVal) ); - } - case TYPE_BOUNDS3 : - { - physx::PxBounds3 otherVal; - error = otherHandle.getParamBounds3(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamBounds3(otherVal) ); - } - case TYPE_TRANSFORM : - { - physx::PxTransform otherVal; - error = otherHandle.getParamTransform(otherVal); - NV_ERR_CHECK_RETURN( error ); - return( thisHandle.setParamTransform(otherVal) ); - } - case TYPE_STRING: - { - const char *val1; - error = otherHandle.getParamString(val1); - NV_ERR_CHECK_RETURN(error); - return(thisHandle.setParamString(val1)); - } - - case TYPE_ENUM: - { - const char *val1; - error = otherHandle.getParamEnum(val1); - NV_ERR_CHECK_RETURN(error); - return val1 ? thisHandle.setParamEnum(val1) : ERROR_NONE; - } - - case TYPE_REF: - { - NvParameterized::Interface *thisRef, *otherRef; - error = thisHandle.getParamRef(thisRef); - NV_ERR_CHECK_RETURN(error); - - error = otherHandle.getParamRef(otherRef); - NV_ERR_CHECK_RETURN(error); - - if(thisRef) - { - thisRef->destroy(); - thisHandle.setParamRef(NULL); - } - - if(otherRef) - { - error = thisHandle.initParamRef(otherRef->className(), true); - NV_ERR_CHECK_RETURN(error); - - error = thisHandle.getParamRef(thisRef); - NV_ERR_CHECK_RETURN(error); - - if(thisRef == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_PARAMETER_HANDLE_NOT_INITIALIZED"); - return(ERROR_PARAMETER_HANDLE_NOT_INITIALIZED); - } - - return(thisRef->copy(*otherRef)); - } - } - break; - - case TYPE_POINTER: - //Just don't do anything with pointers - break; - - NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS - default: - PX_ALWAYS_ASSERT(); - break; - } - - return ERROR_NONE; -} - -bool NvParameters::areParamsOK(Handle &handle, Handle *invalidHandles, uint32_t numInvalidHandles, uint32_t &numRemainingHandles) -{ - class Constraints - { - const Hint *min, *max, *multOf, *powOf; - - static int64_t abs(int64_t x) - { - return x >= 0 ? x : -x; - } - - public: - Constraints(const Hint *min_, const Hint *max_, const Hint *multOf_, const Hint *powOf_): - min(min_), max(max_), multOf(multOf_), powOf(powOf_) {} - - bool isOK(uint64_t val) - { - bool res = true; - - if( min ) - res = res && val >= min->asUInt(); - - if( max ) - res = res && val <= max->asUInt(); - - if( multOf ) - res = res && 0 == val % multOf->asUInt(); - - if( powOf ) - { - //TODO: this is too slow - uint64_t base = powOf->asUInt(), acc = 1; - while( acc < val ) - acc *= base; - res = res && acc == base; - } - - return res; - } - - bool isOK(int64_t val) - { - bool res = true; - - if( min ) - res = res && val >= int64_t(min->asUInt()); - - if( max ) - res = res && val <= int64_t(max->asUInt()); - - if( multOf ) - res = res && 0 == val % int64_t(multOf->asUInt()); - - if( powOf ) - { - //TODO: this is too slow - int64_t base = int64_t(powOf->asUInt()), acc = 1; - while( abs(acc) < val ) - acc *= base; - res = res && abs(acc) == base; - } - - return res; - } - - bool isOK(float val) - { - bool res = true; - - if( min ) - res = res && val >= float(min->asFloat()); - - if( max ) - res = res && val <= float(max->asFloat()); - - if( multOf ) - res = res && 0.0f == (float)fmod(val, float(multOf->asFloat())); - - //TODO - if( powOf) - { - PX_ALWAYS_ASSERT(); - return false; - } - - return res; - } - - bool isOK(double val) - { - bool res = true; - - if( min ) - res = res && val >= min->asFloat(); - - if( max ) - res = res && val <= max->asFloat(); - - if( multOf ) - res = res && 0.0f == (float)fmod((float)val, (float)multOf->asFloat()); - - //TODO - if( powOf ) - { - PX_ALWAYS_ASSERT(); - return false; - } - - return res; - } - }; - - bool res = true; - - const Definition *pd = handle.parameterDefinition(); - - Constraints con(pd->hint("min"), pd->hint("max"), pd->hint("multipleOf"), pd->hint("powerOf")); - - switch( pd->type() ) - { - case TYPE_STRUCT: - { - for(int32_t i = 0; i < pd->numChildren(); ++i) - { - handle.set(i); - res &= areParamsOK(handle, invalidHandles, numInvalidHandles, numRemainingHandles); - handle.popIndex(); - } - return res; - } - - case TYPE_ARRAY: - { - int32_t arraySize = -1; - NV_BOOL_RETURN( handle.getArraySize(arraySize) ); - - for(int32_t i=0; i < arraySize; ++i) - { - handle.set(i); - res &= areParamsOK(handle, invalidHandles, numInvalidHandles, numRemainingHandles); - handle.popIndex(); - } - return res; - } - - case TYPE_BOOL: - case TYPE_U8: - case TYPE_U16: - case TYPE_U32: - case TYPE_U64: - { - uint64_t val; - NV_BOOL_RETURN( handle.getParamU64(val) ); - res = con.isOK(val); - if( !res && numRemainingHandles > 0 ) - invalidHandles[numRemainingHandles++ - 1] = handle; - return res; - } - - case TYPE_I8: - case TYPE_I16: - case TYPE_I32: - case TYPE_I64: - { - int64_t val; - NV_BOOL_RETURN( handle.getParamI64(val) ); - res = con.isOK(val); - if( !res && numRemainingHandles > 0 ) - invalidHandles[numRemainingHandles++ - 1] = handle; - return res; - } - - case TYPE_F32: - { - float val = -1; - NV_BOOL_RETURN( handle.getParamF32(val) ); - res = con.isOK(val); - if( !res && numRemainingHandles > 0 ) - invalidHandles[numRemainingHandles++ - 1] = handle; - return res; - } - - case TYPE_F64: - { - double val = -1; - NV_BOOL_RETURN( handle.getParamF64(val) ); - res = con.isOK(val); - if( !res && numRemainingHandles > 0 ) - invalidHandles[numRemainingHandles++ - 1] = handle; - return res; - } - - NV_PARAMETRIZED_NO_AGGREGATE_AND_ARITHMETIC_DATATYPE_LABELS - default: - return true; - } -} - -bool NvParameters::equals(const NvParameterized::Interface &obj, - Handle ¶m_handle, - Handle *handlesOfInequality, - uint32_t numHandlesOfInequality, - bool doCompareNotSerialized) const -{ - const Definition *paramDef = param_handle.parameterDefinition(); - - if (!doCompareNotSerialized && paramDef->hint("DONOTSERIALIZE") ) - return true; - - DataType type = paramDef->type(); - switch(type) - { -#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_ ## enum_name: \ - { \ - c_type a; \ - c_type b; \ - param_handle.setInterface(this); \ - NV_BOOL_RETURN( param_handle.getParam ## type_name(a) ); \ - param_handle.setInterface(&obj); \ - NV_BOOL_RETURN( param_handle.getParam ## type_name(b) ); \ - return !notEqual(a, b); \ - } -#include "nvparameterized/NvParameterized_types.h" - - case TYPE_MAT34: - { - float a[12]; - float b[12]; - param_handle.setInterface(this); - NV_BOOL_RETURN( param_handle.getParamMat34Legacy(a) ); - param_handle.setInterface(&obj); - NV_BOOL_RETURN( param_handle.getParamMat34Legacy(b) ); - return !notEqual(a, b); - } - - case TYPE_REF: - { - NvParameterized::Interface *val1, *val2; - - param_handle.setInterface( this ); - if(param_handle.getParamRef(val1) != ERROR_NONE) - return(false); - - param_handle.setInterface( &obj ); - if(param_handle.getParamRef(val2) != ERROR_NONE) - return(false); - - if(val1 == NULL && val2 == NULL) - return(true); - else if(val1 == NULL || val2 == NULL) - return(false); - - return val2->equals( - *val1, - handlesOfInequality != NULL ? handlesOfInequality+1 : NULL, - numHandlesOfInequality > 0 ? numHandlesOfInequality-1 : 0, - doCompareNotSerialized ); - } - - case TYPE_STRUCT: - for(int32_t i = 0; i < paramDef->numChildren(); ++i) - { - param_handle.set(i); - if (!equals(obj, param_handle, handlesOfInequality, numHandlesOfInequality, doCompareNotSerialized)) - return(false); - param_handle.popIndex(); - } - return(true); - - case TYPE_ARRAY: - { - int32_t arraySize1, arraySize2; - - param_handle.setInterface (this); - if (param_handle.getArraySize(arraySize1) != ERROR_NONE) - return(false); - - param_handle.setInterface (&obj); - if (param_handle.getArraySize(arraySize2) != ERROR_NONE) - return(false); - - if(arraySize1 != arraySize2) - return(false); - - if( arraySize1 > 100 && paramDef->isSimpleType(false, false) ) - { - // Large array of simple types, fast path - - switch( type) - { - NV_PARAMETRIZED_NO_ARITHMETIC_AND_LINAL_DATATYPE_LABELS - NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS - default: - // Fall to slow path, including TYPE_MAT34 case - break; - -#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -#define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_ ## enum_name: { \ - uint32_t byteSize = static_cast(sizeof(c_type)) * arraySize1; \ - c_type *data1 = (c_type *)mParameterizedTraits->alloc(byteSize), \ - *data2 = (c_type *)mParameterizedTraits->alloc(byteSize); \ - \ - param_handle.setInterface(this); \ - NV_BOOL_RETURN(param_handle.getParam ## type_name ## Array(data1, arraySize1)); \ - \ - param_handle.setInterface(&obj); \ - NV_BOOL_RETURN(param_handle.getParam ## type_name ## Array(data2, arraySize2)); \ - \ - int ret = memcmp(data1, data2, byteSize); \ - mParameterizedTraits->free(data1); \ - mParameterizedTraits->free(data2); \ - \ - return ret == 0; \ - } -#include "nvparameterized/NvParameterized_types.h" - } - } - - // Array of aggregates, slow path - - param_handle.setInterface(this); - - for (int32_t i = 0; i < arraySize1; ++i) - { - param_handle.set(i); - if (!equals(obj, param_handle, handlesOfInequality, numHandlesOfInequality, doCompareNotSerialized)) - return(false); - param_handle.popIndex(); - } - - return(true); - } - - case TYPE_POINTER: - return true; - -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - PX_ALWAYS_ASSERT(); - break; - } - - return(false); -} - -ErrorType NvParameters::copy(const NvParameterized::Interface &other) -{ - if (this == &other) - { - return(ERROR_NONE); - } - - if (rootParameterDefinition() != other.rootParameterDefinition()) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_PARAMETER_DEFINITIONS_DO_NOT_MATCH"); - return(ERROR_PARAMETER_DEFINITIONS_DO_NOT_MATCH); - } - - // support empty, named references - if (rootParameterDefinition() == NULL) - { - // the name or className could be NULL, strcmp doesn't like NULL strings... - setClassName(other.className()); - setName(other.name()); - return(ERROR_NONE); - } - else - { - Handle handle (*this); - if (getParameterHandle("", handle) != ERROR_NONE) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE"); - return(ERROR_INVALID_PARAMETER_HANDLE); - } - - return(copy(other, handle)); - } -} - -bool NvParameters::areParamsOK(Handle *invalidHandles, uint32_t numInvalidHandles) -{ - Handle handle(*this); - NV_BOOL_RETURN( getParameterHandle("", handle) ); - - uint32_t numRemainingHandles = numInvalidHandles; - return areParamsOK(handle, invalidHandles, numInvalidHandles, numRemainingHandles); -} - -bool NvParameters::equals(const NvParameterized::Interface &obj, Handle* handleOfInequality, uint32_t numHandlesOfInequality, bool doCompareNotSerialized) const -{ - if( this == &obj ) - return(true); - - if(rootParameterDefinition() != obj.rootParameterDefinition()) - return(false); - - // support empty, named references - if(rootParameterDefinition() == NULL) - { - // the name or className could be NULL, strcmp doesn't like NULL strings... - return 0 == safe_strcmp(name(), obj.name()) && 0 == safe_strcmp(className(), obj.className()); - } - - // This should be a handle that can not set any values! - Handle constHandle(*this); - NV_BOOL_RETURN( getParameterHandle("", constHandle) ); - - bool theSame = equals(obj, constHandle, handleOfInequality, numHandlesOfInequality, doCompareNotSerialized); - - if (!theSame && numHandlesOfInequality > 0) - *handleOfInequality = constHandle; - - return theSame; -} - -ErrorType NvParameters::valueToStr(const Handle &handle, - char *buf, - uint32_t n, - const char *&ret) -{ - PX_ASSERT(buf != NULL); - PX_ASSERT(n > 0); - - if(!handle.isValid()) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE"); - return(ERROR_INVALID_PARAMETER_HANDLE); - } - - const Definition *paramDef = handle.parameterDefinition(); - - ErrorType error = ERROR_TYPE_NOT_SUPPORTED; - - switch(paramDef->type()) - { - case TYPE_VEC2: - { - physx::PxVec2 val; - if ((error = getParamVec2(handle, val)) == ERROR_NONE) - { - char f[2][physx::PxAsc::PxF32StrLen]; - physx::shdfnd::snprintf(buf, n,"%s %s", - physx::PxAsc::valueToStr(val.x, f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.y, f[1], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_VEC3: - { - physx::PxVec3 val; - if ((error = getParamVec3(handle, val)) == ERROR_NONE) - { - char f[3][physx::PxAsc::PxF32StrLen]; - physx::shdfnd::snprintf(buf, n,"%s %s %s", - physx::PxAsc::valueToStr(val.x, f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.y, f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.z, f[2], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_VEC4: - { - physx::PxVec4 val; - if ((error = getParamVec4(handle, val)) == ERROR_NONE) - { - char f[4][physx::PxAsc::PxF32StrLen]; - physx::shdfnd::snprintf(buf, n,"%s %s %s %s", - physx::PxAsc::valueToStr(val.x, f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.y, f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.z, f[2], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.w, f[3], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_QUAT: - { - physx::PxQuat val; - if ((error = getParamQuat(handle, val)) == ERROR_NONE) - { - float quat[4]; - //val.getXYZW(quat); - quat[0] = val.x; quat[1] = val.y; quat[2] = val.z; quat[3] = val.w; - char f[4][physx::PxAsc::PxF32StrLen]; - physx::shdfnd::snprintf(buf, n,"%s %s %s %s", - physx::PxAsc::valueToStr(quat[0], f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(quat[1], f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(quat[2], f[2], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(quat[3], f[3], physx::PxAsc::PxF32StrLen)); - - ret = buf; - } - } - break; - case TYPE_MAT33: - { - physx::PxMat33 val; - if ((error = getParamMat33(handle, val)) == ERROR_NONE) - { - char f[9][physx::PxAsc::PxF32StrLen]; - const float *vals = val.front(); - physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s %s %s", - physx::PxAsc::valueToStr(vals[0], f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[1], f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[2], f[2], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[3], f[3], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[4], f[4], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[5], f[5], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[6], f[6], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[7], f[7], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[8], f[8], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_MAT44: - { - physx::PxMat44 val; - if ((error = getParamMat44(handle, val)) == ERROR_NONE) - { - char f[16][physx::PxAsc::PxF32StrLen]; - const float *vals = val.front(); - physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", - physx::PxAsc::valueToStr(vals[0], f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[1], f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[2], f[2], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[3], f[3], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[4], f[4], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[5], f[5], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[6], f[6], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[7], f[7], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[8], f[8], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[9], f[9], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[10], f[10], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[11], f[11], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[12], f[12], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[13], f[13], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[14], f[14], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[15], f[15], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_MAT34: - { - float vals[12]; - if ((error = getParamMat34Legacy(handle, vals)) == ERROR_NONE) - { - char f[16][physx::PxAsc::PxF32StrLen]; - physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s %s %s %s %s %s", - physx::PxAsc::valueToStr(vals[0], f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[1], f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[2], f[2], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[3], f[3], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[4], f[4], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[5], f[5], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[6], f[6], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[7], f[7], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[8], f[8], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[9], f[9], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[10], f[10], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(vals[11], f[11], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_BOUNDS3: - { - char f[6][physx::PxAsc::PxF32StrLen]; - physx::PxBounds3 val; - if ((error = getParamBounds3(handle, val)) == ERROR_NONE) - { - physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s ", - physx::PxAsc::valueToStr(val.minimum.x, f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.minimum.y, f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.minimum.z, f[2], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.maximum.x, f[3], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.maximum.y, f[4], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.maximum.z, f[5], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_TRANSFORM: - { - char f[7][physx::PxAsc::PxF32StrLen]; - physx::PxTransform val; - if ((error = getParamTransform(handle, val)) == ERROR_NONE) - { - physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s ", - physx::PxAsc::valueToStr(val.q.x, f[0], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.q.y, f[1], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.q.z, f[2], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.q.w, f[3], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.p.x, f[4], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.p.y, f[5], physx::PxAsc::PxF32StrLen), - physx::PxAsc::valueToStr(val.p.z, f[6], physx::PxAsc::PxF32StrLen)); - ret = buf; - } - } - break; - case TYPE_UNDEFINED: - case TYPE_ARRAY: - case TYPE_STRUCT: - break; - case TYPE_STRING: - error = getParamString(handle, ret); - break; - case TYPE_ENUM: - error = getParamEnum(handle, ret); - break; - case TYPE_REF: - { - const Hint *hint = paramDef->hint("INCLUDED"); - if( hint && hint->type() != TYPE_U64 ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_INCLUDE_HINT"); - return(ERROR_INVALID_REFERENCE_INCLUDE_HINT); - } - - if( hint != NULL && hint->asUInt() == 1 ) - { - // included, output the entire struct - } - else - { - //not included, get the "name" from the NvParameterized pointer - NvParameterized::Interface *paramPtr = 0; - ErrorType err = getParamRef(handle, paramPtr); - PX_ASSERT(err == ERROR_NONE); - - if(err != ERROR_NONE) - { - return err; - } - - ret = NULL; - if(paramPtr) - { - ret = paramPtr->name(); - } - } - error = ERROR_NONE; - } - break; - case TYPE_BOOL: - { - bool val; - if ((error = getParamBool(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_I8: - { - int8_t val; - if ((error = getParamI8(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_I16: - { - int16_t val; - if ((error = getParamI16(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_I32: - { - int32_t val; - if ((error = getParamI32(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_I64: - { - int64_t val; - if ((error = getParamI64(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_U8: - { - uint8_t val; - if ((error = getParamU8(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_U16: - { - uint16_t val; - if ((error = getParamU16(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_U32: - { - uint32_t val; - if ((error = getParamU32(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_U64: - { - uint64_t val; - if ((error = getParamU64(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_F32: - { - float val; - if ((error = getParamF32(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - case TYPE_F64: - { - double val; - if ((error = getParamF64(handle, val)) == ERROR_NONE) - { - ret = physx::PxAsc::valueToStr(val, buf, n); - } - } - break; - - // Make compiler happy - case TYPE_POINTER: - case TYPE_LAST: - break; - } - - PX_ASSERT(error == ERROR_NONE); - - return error; -} - -ErrorType NvParameters::strToValue(Handle &handle, const char *str, const char **endptr) // assigns this string to the value -{ - ErrorType ret = ERROR_NONE; - - const Definition *pd = handle.parameterDefinition(); - - switch ( pd->type() ) - { - case TYPE_UNDEFINED: - case TYPE_ARRAY: - case TYPE_STRUCT: ret = ERROR_TYPE_NOT_SUPPORTED; break; - - case TYPE_STRING: ret = setParamString(handle,str); break; - case TYPE_ENUM: ret = setParamEnum(handle,str); break; - case TYPE_REF: ret = ERROR_TYPE_NOT_SUPPORTED; break; - case TYPE_BOOL: ret = setParamBool(handle,physx::PxAsc::strToBool(str, endptr)); break; - case TYPE_I8: ret = setParamI8(handle,physx::PxAsc::strToI8(str, endptr)); break; - case TYPE_I16: ret = setParamI16(handle,physx::PxAsc::strToI16(str, endptr)); break; - case TYPE_I32: ret = setParamI32(handle,physx::PxAsc::strToI32(str, endptr)); break; - case TYPE_I64: ret = setParamI64(handle,physx::PxAsc::strToI64(str, endptr)); break; - case TYPE_U8: ret = setParamU8(handle,physx::PxAsc::strToU8(str, endptr)); break; - case TYPE_U16: ret = setParamU16(handle,physx::PxAsc::strToU16(str, endptr)); break; - case TYPE_U32: ret = setParamU32(handle,physx::PxAsc::strToU32(str, endptr)); break; - case TYPE_U64: ret = setParamU64(handle,physx::PxAsc::strToU64(str, endptr)); break; - case TYPE_F32: ret = setParamF32(handle,physx::PxAsc::strToF32(str, endptr)); break; - case TYPE_F64: ret = setParamF64(handle,physx::PxAsc::strToF64(str, endptr)); break; - case TYPE_VEC2: ret = setParamVec2(handle,getVec2(str, endptr)); break; - case TYPE_VEC3: ret = setParamVec3(handle,getVec3(str, endptr)); break; - case TYPE_VEC4: ret = setParamVec4(handle,getVec4(str, endptr)); break; - case TYPE_QUAT: ret = setParamQuat(handle,getQuat(str, endptr)); break; - case TYPE_MAT33: ret = setParamMat33(handle,getMat33(str, endptr)); break; - case TYPE_MAT34: - { - float f[12]; - getMat34Legacy(str, endptr, f); - ret = setParamMat34Legacy(handle,f); - break; - } - case TYPE_MAT44: ret = setParamMat44(handle,getMat44(str, endptr)); break; - case TYPE_BOUNDS3: ret = setParamBounds3(handle,getBounds3(str, endptr)); break; - case TYPE_TRANSFORM: ret = setParamTransform(handle,getTransform(str, endptr)); break; - -NV_PARAMETRIZED_SERVICE_AND_LAST_DATATYPE_LABELS - default: ret = ERROR_TYPE_NOT_SUPPORTED; break; - } - - PX_ASSERT(ret == ERROR_NONE); - - return ret; -} - -physx::PxVec2 NvParameters::getVec2(const char *str, const char **endptr) -{ - physx::PxVec2 ret(0,0); - physx::PxAsc::strToF32s(&ret.x,2,str,endptr); - - return ret; -} - -physx::PxVec3 NvParameters::getVec3(const char *str, const char **endptr) -{ - physx::PxVec3 ret(0,0,0); - physx::PxAsc::strToF32s(&ret.x,3,str,endptr); - - return ret; -} - -physx::PxVec4 NvParameters::getVec4(const char *str, const char **endptr) -{ - physx::PxVec4 ret(0,0,0,0); - physx::PxAsc::strToF32s(&ret.x,4,str,endptr); - - return ret; -} - -physx::PxQuat NvParameters::getQuat(const char *str, const char **endptr) -{ - physx::PxQuat ret; - //ret.identity(); - float quat[4]; - //ret.getXYZW(quat); - physx::PxAsc::strToF32s(quat,4,str,endptr); - //ret.setXYZW(quat); - ret = physx::PxQuat(quat[0], quat[1], quat[2], quat[3]); - - return ret; -} - -physx::PxMat33 NvParameters::getMat33(const char *str, const char **endptr) -{ - physx::PxMat33 ret; - float *vals = const_cast(ret.front()); - physx::PxAsc::strToF32s(vals,9,str,endptr); - return ret; -} - -physx::PxMat44 NvParameters::getMat44(const char *str, const char **endptr) -{ - physx::PxMat44 ret; - float *vals = const_cast(ret.front()); - physx::PxAsc::strToF32s(vals,16,str,endptr); - return ret; -} - -void NvParameters::getMat34Legacy(const char *str, const char **endptr, float (&val)[12]) -{ - physx::PxAsc::strToF32s(val,12,str,endptr); -} - -physx::PxBounds3 NvParameters::getBounds3(const char *str, const char **endptr) -{ - physx::PxBounds3 ret; - ret.setEmpty(); - physx::PxAsc::strToF32s(&ret.minimum.x,6,str,endptr); - return ret; -} - -//****************************************************************************** -//*** Vec2 -//****************************************************************************** - -ErrorType NvParameters::setParamVec2(const Handle &handle, const physx::PxVec2 &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_VEC2) - { - return rawSetParamVec2(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamVec2(const Handle &handle, physx::PxVec2 &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_VEC2) - { - return rawGetParamVec2(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamVec2Array(const Handle &handle, physx::PxVec2 *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(VEC2) - return(rawGetParamVec2Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(VEC2) - CHECK_F32_FINITE_ARRAY - return(rawSetParamVec2Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Vec3 -//****************************************************************************** - -ErrorType NvParameters::setParamVec3(const Handle &handle, const physx::PxVec3 &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_VEC3) - { - return rawSetParamVec3(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamVec3(const Handle &handle, physx::PxVec3 &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_VEC3) - { - return rawGetParamVec3(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamVec3Array(const Handle &handle, physx::PxVec3 *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(VEC3) - return(rawGetParamVec3Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(VEC3) - CHECK_F32_FINITE_ARRAY - return(rawSetParamVec3Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Vec4 -//****************************************************************************** - -ErrorType NvParameters::setParamVec4(const Handle &handle, const physx::PxVec4 &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_VEC4) - { - return rawSetParamVec4(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamVec4(const Handle &handle, physx::PxVec4 &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_VEC4) - { - return rawGetParamVec4(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamVec4Array(const Handle &handle, physx::PxVec4 *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(VEC4) - return(rawGetParamVec4Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(VEC4) - CHECK_F32_FINITE_ARRAY - return(rawSetParamVec4Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Quat -//****************************************************************************** - -ErrorType NvParameters::setParamQuat(const Handle &handle, const physx::PxQuat &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_QUAT) - { - return rawSetParamQuat(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamQuat(const Handle &handle, physx::PxQuat &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_QUAT) - { - return rawGetParamQuat(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamQuatArray(const Handle &handle, physx::PxQuat *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(QUAT) - return(rawGetParamQuatArray(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(QUAT) - CHECK_F32_FINITE_ARRAY - return(rawSetParamQuatArray(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Mat33 -//****************************************************************************** - -ErrorType NvParameters::setParamMat33(const Handle &handle, const physx::PxMat33 &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_MAT33) - { - return rawSetParamMat33(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamMat33(const Handle &handle, physx::PxMat33 &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_MAT33) - { - return rawGetParamMat33(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamMat33Array(const Handle &handle, physx::PxMat33 *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(MAT33) - return(rawGetParamMat33Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(MAT33) - CHECK_F32_FINITE_ARRAY - return(rawSetParamMat33Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Mat34Legacy -//****************************************************************************** - -ErrorType NvParameters::setParamMat34Legacy(const Handle &handle, const float (&val)[12]) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_MAT34) - { - return rawSetParamMat34Legacy(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamMat34Legacy(const Handle &handle, float (&val)[12]) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_MAT34) - { - return rawGetParamMat34Legacy(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(MAT34) - return(rawGetParamMat34LegacyArray(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(MAT34) - CHECK_F32_FINITE_ARRAY - return(rawSetParamMat34LegacyArray(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Mat44 -//****************************************************************************** - -ErrorType NvParameters::setParamMat44(const Handle &handle, const physx::PxMat44 &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_MAT44) - { - return rawSetParamMat44(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamMat44(const Handle &handle, physx::PxMat44 &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_MAT44) - { - return rawGetParamMat44(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamMat44Array(const Handle &handle, physx::PxMat44 *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(MAT44) - return(rawGetParamMat44Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(MAT44) - CHECK_F32_FINITE_ARRAY - return(rawSetParamMat44Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Bounds3 -//****************************************************************************** - -ErrorType NvParameters::setParamBounds3(const Handle &handle, const physx::PxBounds3 &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_BOUNDS3) - { - return rawSetParamBounds3(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamBounds3(const Handle &handle, physx::PxBounds3 &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_BOUNDS3) - { - return rawGetParamBounds3(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamBounds3Array(const Handle &handle, physx::PxBounds3 *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(BOUNDS3) - return(rawGetParamBounds3Array(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(BOUNDS3) - CHECK_F32_FINITE_ARRAY - return(rawSetParamBounds3Array(handle, array, n, offset)); -} - -//****************************************************************************** -//*** Transform -//****************************************************************************** - -ErrorType NvParameters::setParamTransform(const Handle &handle, const physx::PxTransform &val) -{ - CHECK_HANDLE - CHECK_F32_FINITE - - if(handle.parameterDefinition()->type() == TYPE_TRANSFORM) - { - return rawSetParamTransform(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamTransform(const Handle &handle, physx::PxTransform &val) const -{ - CHECK_HANDLE - - if(handle.parameterDefinition()->type() == TYPE_TRANSFORM) - { - return rawGetParamTransform(handle, val); - } - - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); - return(ERROR_CAST_FAILED); -} - -ErrorType NvParameters::getParamTransformArray(const Handle &handle, physx::PxTransform *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(TRANSFORM) - return(rawGetParamTransformArray(handle, array, n, offset)); -} - -ErrorType NvParameters::setParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset) -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(TRANSFORM) - CHECK_F32_FINITE_ARRAY - return(rawSetParamTransformArray(handle, array, n, offset)); -} - -physx::PxTransform NvParameters::getTransform(const char *str, const char **endptr) -{ - physx::PxTransform ret; - physx::PxAsc::strToF32s((float*)&ret,7,str,endptr); - return ret; -} - - -//*********************************************** -physx::PxVec2 NvParameters::init(float x,float y) -{ - physx::PxVec2 ret(x,y); - return ret; -} - -physx::PxVec3 NvParameters::init(float x,float y,float z) -{ - physx::PxVec3 ret(x,y,z); - return ret; -} - -physx::PxVec4 NvParameters::initVec4(float x,float y,float z,float w) -{ - physx::PxVec4 ret(x,y,z,w); - return ret; -} - -physx::PxQuat NvParameters::init(float x,float y,float z,float w) -{ - physx::PxQuat ret; - //ret.setXYZW(x,y,z,w); - ret = physx::PxQuat(x,y,z,w); - return ret; -} - -physx::PxMat33 NvParameters::init(float _11,float _12,float _13,float _21,float _22,float _23,float _31,float _32,float _33) -{ - physx::PxMat33 ret; - - ret.column0.x = _11; - ret.column0.y = _21; - ret.column0.z = _31; - - ret.column1.x = _12; - ret.column1.y = _22; - ret.column1.z = _32; - - ret.column2.x = _13; - ret.column2.y = _23; - ret.column2.z = _33; - - return ret; -} - -physx::PxMat44 NvParameters::init(float _11,float _12,float _13,float _14,float _21,float _22,float _23,float _24,float _31,float _32,float _33,float _34,float _41,float _42,float _43,float _44) -{ - physx::PxMat44 ret; - - ret.column0.x = _11; - ret.column0.y = _21; - ret.column0.z = _31; - ret.column0.w = _41; - - ret.column1.x = _12; - ret.column1.y = _22; - ret.column1.z = _32; - ret.column1.w = _42; - - ret.column2.x = _13; - ret.column2.y = _23; - ret.column2.z = _33; - ret.column2.w = _43; - - ret.column3.x = _14; - ret.column3.y = _24; - ret.column3.z = _34; - ret.column3.w = _44; - - return ret; -} - -physx::PxTransform NvParameters::init(float x,float y,float z,float qx,float qy,float qz,float qw) -{ - return physx::PxTransform(physx::PxVec3(x,y,z), physx::PxQuat(qx,qy,qz,qw)); -} - - -physx::PxBounds3 NvParameters::init(float minx,float miny,float minz,float maxx,float maxy,float maxz) -{ - physx::PxBounds3 ret; - ret.minimum = physx::PxVec3(minx,miny,minz); - ret.maximum = physx::PxVec3(maxx,maxy,maxz); - return ret; -} - - - -int32_t NvParameters::MultIntArray(const int32_t *array, int32_t n) -{ - PX_ASSERT(array != NULL); - PX_ASSERT(n > 0); - - int32_t ret = array[0]; - - for(int32_t i=1; i < n; ++i) - ret *= array[i]; - - return(ret); -} - - -ErrorType NvParameters::resizeArray(Traits *parameterizedTraits, - void *&buf, - int32_t *array_sizes, - int32_t dimension, - int32_t resize_dim, - int32_t new_size, - bool doFree, - int32_t element_size, - uint32_t element_align, - bool &isMemAllocated) -{ - PX_ASSERT(array_sizes != NULL); - PX_ASSERT(dimension > 0); - PX_ASSERT(resize_dim >= 0 && resize_dim < dimension); - PX_ASSERT(new_size >= 0); - PX_ASSERT(element_size > 0 ); - - if(array_sizes[resize_dim] == new_size) - return(ERROR_NONE); //isMemAllocated is unchanged - - int32_t newSizes[Handle::MAX_DEPTH]; - physx::intrinsics::memCopy(newSizes, array_sizes, dimension * sizeof(int32_t)); - - newSizes[resize_dim] = new_size; - - int32_t currentNumElems = MultIntArray(array_sizes, dimension); - int32_t newNumElems = MultIntArray(newSizes, dimension); - - if(newNumElems <= 0) - { - if(buf != NULL && doFree) - parameterizedTraits->free(buf); - - buf = NULL; - goto no_error; - } - - if(buf == NULL) - { - PX_ASSERT(element_size * newNumElems >= 0); - if((buf = allocAligned(parameterizedTraits, static_cast(element_size * newNumElems), element_align)) == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_MEMORY_ALLOCATION_FAILURE"); - return(ERROR_MEMORY_ALLOCATION_FAILURE); - } - - isMemAllocated = true; - - //initialize the array to 0's (for strings) - physx::intrinsics::memZero(buf, uint32_t(element_size * newNumElems)); - - goto no_error; - } - - if(resize_dim == 0) - { - void *newBuf; - char *newBufDataStart; - int32_t newBufDataSize; - - PX_ASSERT(element_size * newNumElems >= 0); - // alloc new buffer - if((newBuf = allocAligned(parameterizedTraits, static_cast(element_size * newNumElems), element_align)) == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_MEMORY_ALLOCATION_FAILURE"); - return(ERROR_MEMORY_ALLOCATION_FAILURE); - } - - isMemAllocated = true; - - // copy existing data to new buffer - if(newNumElems < currentNumElems) - physx::intrinsics::memCopy(newBuf, buf, uint32_t(element_size * newNumElems)); - else - physx::intrinsics::memCopy(newBuf, buf, uint32_t(element_size * currentNumElems)); - - // zero the new part of the array - if(newNumElems > currentNumElems) - { - newBufDataStart = (char *)newBuf + (currentNumElems * element_size); - newBufDataSize = (newNumElems - currentNumElems) * element_size; - - PX_ASSERT(newBufDataSize >= 0); - memset(newBufDataStart, 0, static_cast(newBufDataSize)); - } - - if( doFree ) - parameterizedTraits->free(buf); - buf = newBuf; - } - else - { - PX_ASSERT(element_size * newNumElems >= 0); - void *newBuf = allocAligned(parameterizedTraits, static_cast(element_size * newNumElems), element_align); - if(newBuf == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_MEMORY_ALLOCATION_FAILURE"); - return(ERROR_MEMORY_ALLOCATION_FAILURE); - } - - isMemAllocated = true; - - //initialize the array to 0's (for strings) - physx::intrinsics::memSet(newBuf, 0U, uint32_t(element_size * newNumElems)); - recursiveCopy(buf, array_sizes, newBuf, newSizes, dimension, element_size); - - if( doFree ) - parameterizedTraits->free(buf); - buf = newBuf; - } - - -no_error: - - array_sizes[resize_dim] = new_size; - return(ERROR_NONE); -} - -void NvParameters::recursiveCopy(const void *src, - const int32_t *src_sizes, - void *dst, - const int32_t *dst_sizes, - int32_t dimension, - int32_t element_size, - int32_t *indexes, - int32_t level) -{ - int32_t srcSize = src_sizes[level]; - int32_t dstSize = dst_sizes[level]; - - int32_t size = physx::PxMin(srcSize, dstSize); - - int32_t indexStore[Handle::MAX_DEPTH]; - - if(indexes == NULL) - { - indexes = indexStore; - memset(indexes, 0, Handle::MAX_DEPTH * sizeof(int32_t)); - } - - if(level == dimension - 1) - { - int32_t srcIndex = indexes[0]; - int32_t dstIndex = indexes[0]; - - for(int32_t i=1; i < dimension; ++i) - { - srcIndex = src_sizes[i] * (srcIndex) + indexes[i]; - dstIndex = dst_sizes[i] * (dstIndex) + indexes[i]; - } - - char *copy_dst = (char *)dst + dstIndex * element_size; - char *copy_src = (char *)src + srcIndex * element_size; - PX_ASSERT(element_size * size > 0); - physx::intrinsics::memCopy(copy_dst, copy_src, uint32_t(element_size * size)); - return; - } - - for(int32_t i=0; i < size; ++i) - { - indexes[level] = i; - recursiveCopy(src, src_sizes, dst, dst_sizes, dimension, element_size, indexes, level + 1); - } -} - -ErrorType NvParameters::getParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(U8) - return(rawGetParamArray(handle, array, n, offset,this)); -} - -ErrorType NvParameters::getParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset) const -{ - CHECK_HANDLE - CHECK_IS_SIMPLE_ARRAY(F64) - return(rawGetParamArray(handle, array, n, offset,this)); -} - - - - -ErrorType NvParameters::rawSetParamBool(const Handle &handle, bool val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamBool(const Handle &handle, bool &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamString(const Handle &handle, const char *&val) const -{ - size_t offset; - void *ptr=NULL; - getVarPtr(handle, ptr, offset); - if ( ptr == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); - return ERROR_TYPE_NOT_SUPPORTED; - } - - DummyStringStruct *var = (DummyStringStruct *)(char *)ptr; - val = var->buf; - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSetParamString(const Handle &handle, const char *val) -{ - size_t offset; - void *ptr=NULL; - getVarPtr(handle, ptr, offset); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - DummyStringStruct *var = (DummyStringStruct *)(char *)ptr; - if( var->isAllocated ) - { - getTraits()->strfree((char *)var->buf); - } - - var->buf = getTraits()->strdup(val); - var->isAllocated = true; - - return(ERROR_NONE); -} - -ErrorType NvParameters::rawGetParamEnum(const Handle &handle, const char *&val) const -{ - size_t offset; - void *ptr=NULL; - getVarPtr(handle, ptr, offset); - if ( ptr == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); - return ERROR_TYPE_NOT_SUPPORTED; - } - const char * *var = (const char * *)((char *)ptr); - val = *var; - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSetParamEnum(const Handle &handle, const char *val) -{ - size_t offset; - void *ptr=NULL; - getVarPtr(handle, ptr, offset); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - const char * *Var = (const char * *)((char *)ptr); - *Var = val; - return(ERROR_NONE); -} - -ErrorType NvParameters::rawGetParamRef(const Handle &handle, NvParameterized::Interface *&val) const -{ - size_t offset; - void *ptr=NULL; - getVarPtr(handle, ptr, offset); - if ( ptr == NULL ) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); - return ERROR_TYPE_NOT_SUPPORTED; - } - - NvParameterized::Interface * *var = (NvParameterized::Interface * *)((char *)ptr); - val = *var; - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSetParamRef(const Handle &handle, NvParameterized::Interface * val) -{ - size_t offset; - void *ptr=NULL; - getVarPtr(handle, ptr, offset); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - NvParameterized::Interface * *Var = (NvParameterized::Interface * *)((char *)ptr); - *Var = val; - return(ERROR_NONE); -} - -ErrorType NvParameters::rawGetParamI8(const Handle &handle, int8_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamI8(const Handle &handle, int8_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamI8Array(const Handle &handle, const int8_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamI16(const Handle &handle, int16_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamI16(const Handle &handle, int16_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamI16Array(const Handle &handle, const int16_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamI32(const Handle &handle, int32_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamI32(const Handle &handle, int32_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamI32Array(const Handle &handle, const int32_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamI64(const Handle &handle, int64_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamI64(const Handle &handle, int64_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamI64Array(const Handle &handle, const int64_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawGetParamU8(const Handle &handle, uint8_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamU8(const Handle &handle, uint8_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamU8Array(const Handle &handle, const uint8_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamU16(const Handle &handle, uint16_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamU16(const Handle &handle, uint16_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamU32(const Handle &handle, uint32_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamU32(const Handle &handle, uint32_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamU64(const Handle &handle, uint64_t val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamU64(const Handle &handle, uint64_t &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamF32(const Handle &handle, float &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamF32(const Handle &handle, float val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawGetParamF64(const Handle &handle, double &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawSetParamF64(const Handle &handle, double val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamVec2(const Handle &handle,physx::PxVec2 val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamVec2(const Handle &handle,physx::PxVec2 &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamVec2Array(const Handle &handle,physx::PxVec2 *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamVec3(const Handle &handle,physx::PxVec3 val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamVec3(const Handle &handle,physx::PxVec3 &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamVec3Array(const Handle &handle,physx::PxVec3 *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamVec4(const Handle &handle,physx::PxVec4 val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamVec4(const Handle &handle,physx::PxVec4 &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamVec4Array(const Handle &handle,physx::PxVec4 *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamQuat(const Handle &handle,physx::PxQuat val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamQuat(const Handle &handle,physx::PxQuat &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamQuatArray(const Handle &handle,physx::PxQuat *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamMat33(const Handle &handle,physx::PxMat33 val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamMat33(const Handle &handle,physx::PxMat33 &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamMat33Array(const Handle &handle,physx::PxMat33 *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamMat34Legacy(const Handle &handle, const float (&val)[12]) -{ - Handle memberHandle(handle); - - size_t tmp; - void *ptr = NULL; - this->getVarPtr(memberHandle, ptr, tmp); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - physx::intrinsics::memCopy(ptr, val, 12 * sizeof(float)); - -#if APEX_UE4 - // swap raw-column major - swap(static_cast(ptr)[1], static_cast(ptr)[3]); - swap(static_cast(ptr)[2], static_cast(ptr)[6]); - swap(static_cast(ptr)[5], static_cast(ptr)[7]); -#endif - return(ERROR_NONE); -} - -ErrorType NvParameters::rawGetParamMat34Legacy(const Handle &handle, float (&val)[12]) const -{ - Handle memberHandle(handle); - - size_t tmp; - void *ptr = NULL; - this->getVarPtr(memberHandle, ptr, tmp); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - physx::intrinsics::memCopy(val, ptr, 12 * sizeof(float)); - - return(ERROR_NONE); -} - -ErrorType NvParameters::rawGetParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset) const -{ - if( n ) - { - Handle memberHandle(handle); - NV_ERR_CHECK_RETURN(memberHandle.set(offset * 12)); - - size_t tmp; - void *ptr = NULL; - this->getVarPtr(memberHandle, ptr, tmp); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - physx::intrinsics::memCopy(array, ptr, 12 * n * sizeof(float)); - } - - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSetParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset) -{ - if( n ) - { - Handle memberHandle(handle); - NV_ERR_CHECK_RETURN(memberHandle.set(offset * 12)); - - size_t tmp; - void *ptr = NULL; - this->getVarPtr(memberHandle, ptr, tmp); - if(ptr == NULL) - { - PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); - return(ERROR_INDEX_OUT_OF_RANGE); - } - - for (int32_t i = 0; i < n; ++i) - { - float* dst = static_cast(ptr) + 12 * sizeof(float) * i; - const float* src = array + 12 * sizeof(float) * i; - - physx::intrinsics::memCopy(dst, src, 12 * sizeof(float)); -#if APEX_UE4 - swap(dst[1], dst[3]); - swap(dst[2], dst[6]); - swap(dst[5], dst[7]); -#endif - } - } - - return(ERROR_NONE); -} - -ErrorType NvParameters::rawSetParamMat44(const Handle &handle,physx::PxMat44 val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamMat44(const Handle &handle,physx::PxMat44 &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamMat44Array(const Handle &handle,physx::PxMat44 *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - - -ErrorType NvParameters::rawSetParamBounds3(const Handle &handle,physx::PxBounds3 val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamBounds3(const Handle &handle,physx::PxBounds3 &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamBounds3Array(const Handle &handle,physx::PxBounds3 *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamTransform(const Handle &handle,physx::PxTransform val) -{ - return rawSetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamTransform(const Handle &handle,physx::PxTransform &val) const -{ - return rawGetParam(handle,val,this); -} - -ErrorType NvParameters::rawGetParamTransformArray(const Handle &handle,physx::PxTransform *array, int32_t n, int32_t offset) const -{ - return rawGetParamArray(handle,array,n,offset,this); -} - -ErrorType NvParameters::rawSetParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset) -{ - return rawSetParamArray(handle,array,n,offset,this); -} - -void *NvParameters::getVarPtrHelper(const ParamLookupNode *rootNode, void *paramStruct, const Handle &handle, size_t &offset) const -{ - const ParamLookupNode* curNode = rootNode; - - bool hasDynamicArray = false; - offset = curNode->offset; - - void *ptr = const_cast(paramStruct); - for(int32_t i = 0; i < handle.numIndexes(); ++i) - { - int index = handle.index(i); - - if (curNode->type == TYPE_ARRAY) - { - PX_ASSERT(curNode->numChildren); - - if (curNode->isDynamicArrayRoot) - { - ptr = ((DummyDynamicArrayStruct*)ptr)->buf; - hasDynamicArray = true; - if (ptr == NULL) - { - offset = 0; - return 0; - } - } - - // don't get the next curNode until after we've checked that the "parent" is dynamic - curNode = &rootNode[curNode->children[0]]; - - size_t localOffset = index * curNode->offset; - offset += localOffset; - ptr = (char*)ptr + localOffset; - } - else - { - PX_ASSERT(index >= 0 && index < curNode->numChildren); - curNode = &rootNode[curNode->children[index]]; - offset += curNode->offset; - ptr = (char*)ptr + curNode->offset; - } - } - - if (hasDynamicArray) - { - offset = 0; - } - - return ptr; -} - -bool NvParameters::checkAlignments() const -{ - // support empty, named references - if(rootParameterDefinition() == NULL) - { - return IsAligned(this, 8); - } - - Handle constHandle(*this, ""); - if( !constHandle.isValid() ) - { - return false; - } - - return checkAlignments(constHandle); -} - -bool NvParameters::checkAlignments(Handle ¶m_handle) const -{ - const Definition *paramDef = param_handle.parameterDefinition(); - - uint32_t align = paramDef->alignment(); - - bool isDynamicArray = TYPE_ARRAY == paramDef->type() && !paramDef->arraySizeIsFixed(); - - // For dynamic array alignment means alignment of it's first element - if( !isDynamicArray ) - { - size_t offset; - void *ptr; - getVarPtr(param_handle, ptr, offset); - if( align > 0 && !IsAligned(ptr, align) ) - { - return false; - } - } - - switch( paramDef->type() ) - { - case TYPE_STRUCT: - { - for(int32_t i = 0; i < paramDef->numChildren(); ++i) - { - param_handle.set(i); - if( !checkAlignments(param_handle) ) - { - return false; - } - param_handle.popIndex(); - } - break; - } - - case TYPE_REF: - { - Interface *refObj; - if( ERROR_NONE != param_handle.getParamRef(refObj) ) - { - return false; - } - - return 0 == refObj || refObj->checkAlignments(); - } - - case TYPE_ARRAY: - { - int32_t size; - if( ERROR_NONE != param_handle.getArraySize(size) ) - { - return false; - } - - // See comment above - if( isDynamicArray && align > 0 && size > 0 ) - { - param_handle.set(0); - - size_t offset; - void *ptr; - getVarPtr(param_handle, ptr, offset); - if( !IsAligned(ptr, align) ) - { - return false; - } - - param_handle.popIndex(); - } - - bool isSimpleType = paramDef->child(0)->isSimpleType(); - - // Only check for first 10 elements if simple type - size = physx::PxMin(size, isSimpleType ? 10 : INT32_MAX); - - for(int32_t i = 0; i < size; ++i) - { - param_handle.set(i); - if( !checkAlignments(param_handle) ) - { - return false; - } - param_handle.popIndex(); - } - - break; - } - NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS - default: - break; - } - - return(true); -} -} // namespace NvParameterized +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#include +#include +#include +#include +#include + +#if PX_VC && !PX_PS4 +#pragma warning(disable:4996 4310) +#endif + +#include "PsAsciiConversion.h" + +#include "nvparameterized/NvParameterized.h" + +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#include "PsString.h" + + +namespace NvParameterized +{ + +#define NV_ERR_CHECK_RETURN(x) if(x!=ERROR_NONE) return(x); +#define NV_BOOL_RETURN(x) if((x)!=ERROR_NONE) return(false); + +#define DEBUG_ASSERT(x) +//#define DEBUG_ASSERT(x) PX_ASSERT(x) + +char Spog[] = "test"; + +#define COND_DUP(str) (mStaticAllocation) ? (char *)(str) : local_strdup(str) + +template +void swap(T& a, T&b) +{ + T tmp = b; + b = a; + a = tmp; +} + + +int32_t local_strcmp(const char* s1, const char* s2) +{ + return physx::shdfnd::strcmp(s1, s2); +} + +int32_t local_stricmp(const char* s1, const char* s2) +{ + return physx::shdfnd::stricmp(s1, s2); +} + +int32_t local_sprintf_s( char * _DstBuf, size_t _DstSize, const char * _Format, ...) +{ + if ( _DstBuf == NULL || _Format == NULL ) + { + return -1; + } + + va_list arg; + va_start( arg, _Format ); + int32_t r = physx::shdfnd::vsnprintf( _DstBuf, _DstSize, _Format, arg ); + va_end(arg); + + return r; +} + + +static PX_INLINE void* allocAligned(NvParameterized::Traits* t, uint32_t size, uint32_t align) +{ + void* buf = t->alloc(size, align); + if( (size_t)buf & (align - 1) ) + { + t->free(buf); + return 0; + } + + return buf; +} + +static PX_INLINE double RandomF64() +{ + return (double)rand() / RAND_MAX; +} + +static PX_INLINE float RandomF32() +{ + return (float)RandomF64(); +} + +static PX_INLINE uint32_t RandomIdx(uint32_t m, uint32_t M) +{ + return uint32_t(m + RandomF64() * (M - m) + 0.99); // FIXME: round +} + +static PX_INLINE physx::PxVec2 RandomVec2() +{ + return physx::PxVec2(RandomF32(), RandomF32()); +} + +static PX_INLINE physx::PxVec3 RandomVec3() +{ + return physx::PxVec3(RandomF32(), RandomF32(), RandomF32()); +} + +static PX_INLINE physx::PxVec4 RandomVec4() +{ + return physx::PxVec4(RandomF32(), RandomF32(), RandomF32(), RandomF32()); +} + +static PX_INLINE physx::PxQuat RandomQuat() +{ + return physx::PxQuat(RandomF32(), RandomF32(), RandomF32(), RandomF32()); +} + +static PX_INLINE uint32_t RandomU32() +{ + return (uint32_t)rand(); +} + +static PX_INLINE uint64_t RandomU64() +{ + uint32_t u32s[2]; + u32s[0] = RandomU32(); + u32s[1] = RandomU32(); + + return *(uint64_t*)&u32s[0]; +} + +static PX_INLINE bool notEqual(const char *a, const char *b) +{ + if(a == NULL && b == NULL) + return(false); + + return (a == NULL && b != NULL) + || (a != NULL && b == NULL) + || 0 != strcmp(a, b); +} + +static PX_INLINE bool notEqual(uint8_t a,uint8_t b) +{ + return a!=b; +} +static PX_INLINE bool notEqual(uint16_t a,uint16_t b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(uint32_t a,uint32_t b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(uint64_t a,uint64_t b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(int8_t a,int8_t b) +{ + return a!=b; +} +static PX_INLINE bool notEqual(int16_t a,int16_t b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(int32_t a,int32_t b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(int64_t a,int64_t b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(float a,float b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(float (&a)[12],float (&b)[12]) +{ + return a[0] != b[0] || a[1] != b[1] || a[2] != b[2] || + a[3] != b[3] || a[4] != b[4] || a[5] != b[5] || + a[6] != b[6] || a[7] != b[7] || a[8] != b[8] || + a[9] != b[9] || a[10] != b[10] || a[11] != b[11]; +} + +static PX_INLINE bool notEqual(double a,double b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(bool a,bool b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(const physx::PxVec2 &a,const physx::PxVec2 &b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(const physx::PxVec3 &a,const physx::PxVec3 &b) +{ + return a!=b; +} + +static PX_INLINE bool notEqual(const physx::PxVec4 &a,const physx::PxVec4 &b) +{ + return a!=b; +} + +// This was formerly in the NvQuat.h file but was removed due to other code bases requiring it to be gone +static PX_INLINE bool operator!=( const physx::PxQuat& a, const physx::PxQuat& b ) +{ + return a.x != b.x + || a.y != b.y + || a.z != b.z + || a.w != b.w; +} + +static PX_INLINE bool notEqual(const physx::PxQuat &a,physx::PxQuat &b) +{ + return a != b; +} + +static PX_INLINE bool notEqual(const physx::PxMat33 &a,physx::PxMat33 &b) +{ + const float *qa = a.front(); + const float *qb = b.front(); + return qa[0] != qb[0] || qa[1] != qb[1] || qa[2] != qb[2] || qa[3] != qb[3] || + qa[4] != qb[4] || qa[5] != qb[5] || qa[6] != qb[6] || qa[7] != qb[7] || + qa[8] != qb[8]; +} + +static PX_INLINE bool notEqual(const physx::PxMat44 &a,physx::PxMat44 &b) +{ + return a.column0.w != b.column0.w || a.column0.x != b.column0.x || a.column0.y != b.column0.y || a.column0.z != b.column0.z || + a.column1.w != b.column1.w || a.column1.x != b.column1.x || a.column1.y != b.column1.y || a.column1.z != b.column1.z || + a.column2.w != b.column2.w || a.column2.x != b.column2.x || a.column2.y != b.column2.y || a.column2.z != b.column2.z || + a.column3.w != b.column3.w || a.column3.x != b.column3.x || a.column3.y != b.column3.y || a.column3.z != b.column3.z; +} + +static PX_INLINE bool notEqual(const physx::PxBounds3 &a,const physx::PxBounds3 &b) +{ + return a.minimum != b.minimum || a.maximum != b.maximum; +} + +static PX_INLINE bool notEqual(const physx::PxTransform &a,const physx::PxTransform &b) +{ + return a.p != b.p || a.q != b.q; +} + +#define CHECK_FINITE(t) { \ + const t* _fs = (const t*)&val; \ + for(size_t _j = 0; _j < sizeof(val) / sizeof(t); ++_j) \ + { \ + if( physx::PxIsFinite(_fs[_j]) ) continue; \ + char _longName[256]; \ + handle.getLongName(_longName, sizeof(_longName)); \ + NV_PARAM_TRAITS_WARNING(mParameterizedTraits, "%s: setting non-finite floating point value", _longName); \ + break; \ + } \ +} + +#define CHECK_FINITE_ARRAY(t) { \ + for(int32_t _i = 0; _i < int32_t(n); ++_i) \ + { \ + const t* _fs = (const t*)(&array[_i]); \ + for(size_t _j = 0; _j < sizeof(array[0]) / sizeof(t); ++_j) \ + { \ + if( physx::PxIsFinite(_fs[_j]) ) continue; \ + char _longName[256]; \ + handle.getLongName(_longName, sizeof(_longName)); \ + NV_PARAM_TRAITS_WARNING(mParameterizedTraits, "%s[%d]: setting non-finite floating point value", _longName, (int)_i); \ + break; \ + } \ + } \ +} + +#define CHECK_F32_FINITE \ + CHECK_FINITE(float) + +#define CHECK_F32_FINITE_ARRAY \ + CHECK_FINITE_ARRAY(float) + +#define CHECK_F64_FINITE \ + CHECK_FINITE(double) + +#define CHECK_F64_FINITE_ARRAY \ + CHECK_FINITE_ARRAY(double) + +//****************************************************************************** +//*** Local functions +//****************************************************************************** + +#if 0 +static void *local_malloc(uint32_t bytes) +{ + return(NV_ALLOC(bytes, NV_DEBUG_EXP("NvParameterized::local_malloc"))); +} + +static void *local_realloc(void *buf, uint32_t bytes) +{ + return(GetApexAllocator()->realloc(buf, bytes)); +} + +static void local_free(void *buf) +{ + NV_FREE(buf); +} +#else + +static void *local_malloc(uint32_t bytes) +{ + return(malloc(bytes)); +} + +static void *local_realloc(void *buf, uint32_t bytes) +{ + return(realloc(buf, bytes)); +} + +static void local_free(void *buf) +{ + free(buf); +} + +#endif + +static char *local_strdup(const char *str) +{ + if(str == NULL) + return NULL; + + uint32_t len = (uint32_t)strlen(str); + + char *result = (char *)local_malloc(sizeof(char) * (len + 1)); + physx::shdfnd::strlcpy(result, len+1, str); + return result; +} + +static void local_strncpy(char *dst, const char *src, uint32_t n) +{ + physx::shdfnd::strlcpy(dst, n, src); +} + + +static void local_strncat(char *dst, const char *src, uint32_t n) +{ + PX_UNUSED(n); + physx::shdfnd::strlcat(dst, strlen(dst) + strlen(src) + 1,src); +} + +static int32_t safe_strcmp(const char *str1, const char *str2) +{ + if( str1 != NULL && str2 != NULL ) + return strcmp(str1, str2); + else if( str1 == NULL && str2 == NULL ) + return 0; + else + return -1; +} + +void *dupBuf(void *buf, uint32_t n) +{ + PX_ASSERT(buf != NULL); + PX_ASSERT(n > 0); + + void *Ret = local_malloc(n); + physx::intrinsics::memCopy(Ret, buf, n); + + return(Ret); +} + +DataType strToType(const char *str) +{ +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + if(!strcmp(str, #type_name)) \ + return(TYPE_##enum_name); + +# include "nvparameterized/NvParameterized_types.h" + + if(!strcmp(str, "Pointer")) + return(TYPE_POINTER); + + if(!strcmp(str, "Mat34")) + return(TYPE_MAT34); + + return(TYPE_UNDEFINED); +} + +const char *typeToStr(DataType type) +{ + switch(type) + { + +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name : \ + return(#type_name); +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_MAT34: + return "Mat34"; + + case TYPE_POINTER: + return "Pointer"; + +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + return NULL; + } +} + +//****************************************************************************** +//*** class HintImpl +//****************************************************************************** + +HintImpl::HintImpl() +{ + mStaticAllocation = true; +} + +HintImpl::HintImpl(const char *name, uint64_t value) +{ + PX_ASSERT(name != NULL); + + init(name, value); +} + +HintImpl::HintImpl(const char *name, double value) +{ + PX_ASSERT(name != NULL); + + init(name, value); +} + +HintImpl::HintImpl(const char *name, const char *value) +{ + PX_ASSERT(name != NULL); + PX_ASSERT(value != NULL); + + init(name, value); +} + +HintImpl::~HintImpl() +{ + cleanup(); +} + +void HintImpl::init(const char *name, uint64_t value, bool static_allocation) +{ + PX_ASSERT(name != NULL); + + mStaticAllocation = static_allocation; + mType = TYPE_U64; + mName = COND_DUP(name); + mUIntValue = value; +} + +void HintImpl::init(const char *name, double value, bool static_allocation) +{ + PX_ASSERT(name != NULL); + + mStaticAllocation = static_allocation; + mType = TYPE_F64; + mName = COND_DUP(name); + mFloatValue = value; +} + +void HintImpl::init(const char *name, const char *value, bool static_allocation) +{ + PX_ASSERT(name != NULL); + PX_ASSERT(value != NULL); + + mStaticAllocation = static_allocation; + mType = TYPE_STRING; + mName = COND_DUP(name); + mStringValue = COND_DUP(value); +} + +void HintImpl::cleanup(void) +{ + PX_ASSERT(mName != NULL); + + if(!mStaticAllocation) + { + local_free(mName); + + if(type() == TYPE_STRING) + { + PX_ASSERT(mStringValue != NULL); + local_free(mStringValue); + } + } +} + +bool HintImpl::setAsUInt(uint64_t v) +{ + bool ret = false; + PX_ASSERT(type() == TYPE_U64); + if ( type() == TYPE_U64 ) + { + mUIntValue = v; + ret = true; + } + return ret; +} + +uint64_t HintImpl::asUInt(void) const +{ + PX_ASSERT(type() == TYPE_U64); + return(mUIntValue); +} + +double HintImpl::asFloat(void) const +{ + PX_ASSERT(type() == TYPE_U64 || type() == TYPE_F64); + return(type() == TYPE_U64 ? static_cast(mUIntValue) : mFloatValue); +} + +const char *HintImpl::asString(void)const +{ + PX_ASSERT(type() == TYPE_STRING); + return(mStringValue); +} + + +//****************************************************************************** +//*** class Handle +//****************************************************************************** + + + +//****************************************************************************** +//*** class DefinitionImpl +//****************************************************************************** + +void DefinitionImpl::setDefaults(void) +{ + mName = NULL; + + mLongName = NULL; + mLongNameAllocated = false; + + mStructName = NULL; + + mType = TYPE_UNDEFINED; + + mArraySize = 0; + + mParent = NULL; + + mNumChildren = 0; + mChildren = NULL; + + mNumHints = 0; + mHints = NULL; + + mEnumVals = NULL; + mNumEnumVals = 0; + + mNumRefVariants = 0; + mRefVariantVals = NULL; + + mNumDynamicHandleIndices = 0; + mDynamicHandleIndices = NULL; + + mAlign = mPad = 0; +} + +DefinitionImpl::DefinitionImpl(Traits &traits, bool staticAlloc) +{ + mStaticAllocation = staticAlloc; + mTraits = &traits; + setDefaults(); +} + +DefinitionImpl::DefinitionImpl(const char *name, DataType t, const char *structName, Traits &traits, bool staticAlloc) +{ + mStaticAllocation = staticAlloc; + mTraits = &traits; + mLongNameAllocated = false; + init(name, t, structName, false); +} + + +DefinitionImpl::~DefinitionImpl() +{ + cleanup(); +} + +void DefinitionImpl::setAlignment(uint32_t align) +{ + mAlign = align; +} + +uint32_t DefinitionImpl::alignment(void) const +{ + return mAlign; +} + +void DefinitionImpl::setPadding(uint32_t pad) +{ + mPad = pad; +} + +uint32_t DefinitionImpl::padding(void) const +{ + return mPad; +} + +void DefinitionImpl::init(const char *name, DataType t, const char *structName, bool static_allocation) +{ + PX_UNUSED( static_allocation ); + + cleanup(); + + mName = name; + mLongName = name; + mStructName = structName; + + PX_ASSERT(t != TYPE_UNDEFINED); + mType = t; +} + +void DefinitionImpl::destroy(void) +{ + PX_ASSERT( !mStaticAllocation ); + + if( !mStaticAllocation ) + { + this->~DefinitionImpl(); + mTraits->free(this); + } +} + +void DefinitionImpl::cleanup(void) +{ + if(!mStaticAllocation) + { + if( mStructName ) + mTraits->free((void *)mStructName); + + mTraits->free((void *)mName); + + if(mChildren != NULL) + { + for(int32_t i=0; i < mNumChildren; ++i) + mChildren[i]->destroy(); + + local_free(mChildren); + } + + if(mHints != NULL) + { + for(int32_t i=0; i < mNumHints; ++i) + { + mHints[i]->cleanup(); + mTraits->free(mHints[i]); + } + + local_free(mHints); + } + + if(mEnumVals != NULL) + { + for(int32_t i = 0; i < mNumEnumVals; ++i) + local_free(mEnumVals[i]); + + local_free(mEnumVals); + } + + if(mRefVariantVals != NULL) + { + for(int32_t i = 0; i < mNumRefVariants; ++i) + local_free(mRefVariantVals[i]); + + local_free(mRefVariantVals); + } + } + + if(mLongNameAllocated && mLongName) + { + mTraits->strfree( (char *)mLongName ); + mLongName = NULL; + mLongNameAllocated = false; + } + + setDefaults(); +} + +const Definition *DefinitionImpl::root(void) const +{ + const Definition *root = this; + while(root->parent() != NULL) + root = root->parent(); + + return(root); +} + +int32_t DefinitionImpl::arrayDimension(void) const +{ + PX_ASSERT(type() == TYPE_ARRAY); + + int32_t Dim = 0; + const Definition *Cur = this; + for(;Cur->type() == TYPE_ARRAY; Cur = Cur->child(0)) + { + PX_ASSERT(Cur != NULL); + Dim++; + } + + return(Dim); +} + +int32_t DefinitionImpl::arraySize(int32_t dimension) const +{ + PX_ASSERT(type() == TYPE_ARRAY); + PX_ASSERT(dimension >= 0); + PX_ASSERT(dimension < arrayDimension()); + + const Definition *Cur = this; + for(int32_t i=0; i < dimension; ++i) + Cur = Cur->child(0); + + if(Cur->type() != TYPE_ARRAY) + return(-1); + + const DefinitionImpl *pd = static_cast(Cur); + + return( pd->mArraySize); +} + +bool DefinitionImpl::arraySizeIsFixed(void) const +{ + PX_ASSERT(type() == TYPE_ARRAY); + return(mArraySize > 0); +} + +bool DefinitionImpl::setArraySize(int32_t size) +{ + PX_ASSERT(size >= -1); + + if(size < 0) + return(false); + + mArraySize = size; + + return(true); +} + +bool DefinitionImpl::isIncludedRef(void) const +{ + const Hint *h = hint("INCLUDED"); + return h && h->type() == TYPE_U64 && h->asUInt(); +} + +int32_t DefinitionImpl::numChildren(void) const +{ + return(mNumChildren); +} + +const Definition * DefinitionImpl::child(int32_t index) const +{ + PX_ASSERT(index >= 0); + PX_ASSERT(index < numChildren()); + PX_ASSERT(type() == TYPE_STRUCT || type() == TYPE_ARRAY); + + if(index < 0 || index >= numChildren()) + return(NULL); + + return(mChildren[index]); +} + +const Definition * DefinitionImpl::child(const char *name, int32_t &index) const +{ + PX_ASSERT(name); + PX_ASSERT(type() == TYPE_STRUCT); + + int32_t i; + for(i=0; i < numChildren(); ++i) + if(!strcmp(mChildren[i]->name(), name)) + { + index = i; + return(mChildren[i]); + } + + return(NULL); +} + + +#define PUSH_TO_ARRAY(val, array, obj_type, num_var) \ + num_var++; \ + if(array == NULL) \ + array = (obj_type *)local_malloc(sizeof(obj_type)); \ + else \ + array = (obj_type *)local_realloc(array, num_var * sizeof(obj_type)); \ + PX_ASSERT(array != NULL); \ + array[num_var-1] = val; + + +static char *GenLongName(char *dst, + uint32_t n, + const char *parent_long_name, + DataType parent_type, + const char *child_name) +{ + local_strncpy(dst, parent_long_name, n); + + switch(parent_type) + { + case TYPE_STRUCT: + if(parent_long_name[0]) + local_strncat(dst, ".", n); + local_strncat(dst, child_name, n); + break; + + case TYPE_ARRAY: + local_strncat(dst, "[]", n); + break; + + NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS + default: + PX_ASSERT((void *)"Shouldn't be here!" == NULL); + break; + } + + return(dst); +} + +#define SET_ARRAY(type, src_array_var, dst_array_var, num_var) \ + PX_ASSERT(src_array_var != NULL); \ + PX_ASSERT(n > 0); \ + if(mStaticAllocation) \ + { \ + dst_array_var = (type *)src_array_var; \ + num_var = n; \ + } \ + else \ + { \ + PX_ASSERT(dst_array_var == NULL); \ + dst_array_var = (type *)dupBuf(src_array_var, sizeof(type) * n); \ + num_var = n; \ + } + +void DefinitionImpl::setChildren(Definition **children, int32_t n) +{ + SET_ARRAY(Definition *, children, mChildren, mNumChildren); + + char tmpStr[MAX_NAME_LEN]; + + for(int32_t i=0; i < n; ++i) + { + Definition *_child = children[i]; + DefinitionImpl *child = static_cast< DefinitionImpl *>(_child); + + PX_ASSERT(child->parent() == NULL); // Only one parent allowed + + GenLongName(tmpStr, + MAX_NAME_LEN, + mLongName, + type(), + child->mName); + + child->mLongName = mTraits->strdup( tmpStr ); + child->mLongNameAllocated = true; + + PX_ASSERT( child != this ); + child->mParent = this; + } +} + +void DefinitionImpl::addChild(Definition *_child) +{ + PX_ASSERT(_child != NULL); + PX_ASSERT(!mStaticAllocation); + + DefinitionImpl *child = static_cast< DefinitionImpl *>(_child); + PX_ASSERT(child->mParent == NULL); // Only one parent allowed + + char tmpStr[MAX_NAME_LEN]; + + GenLongName(tmpStr, + MAX_NAME_LEN, + mLongName, + type(), + child->mName); + + child->mLongName = mTraits->strdup( tmpStr ); + child->mLongNameAllocated = true; + + PX_ASSERT( child != this ); + child->mParent = this; + PUSH_TO_ARRAY(_child, mChildren, Definition *, mNumChildren) +} + + +int32_t DefinitionImpl::numHints(void) const +{ + return(mNumHints); +} + +const Hint *DefinitionImpl::hint(int32_t index) const +{ + PX_ASSERT(index >= 0); + PX_ASSERT(index < numHints()); + + if( index >= numHints() ) + { + return(NULL); + } + + return(mHints[index]); +} + +const Hint *DefinitionImpl::hint(const char *name) const +{ + PX_ASSERT(name != NULL); + + for(int32_t i=0; i < numHints(); ++i) + if(!strcmp(mHints[i]->name(), name)) + return(mHints[i]); + + return(NULL); +} + +void DefinitionImpl::setHints(const Hint **hints, int32_t n) +{ + SET_ARRAY(HintImpl *, hints, mHints, mNumHints); +} + +void DefinitionImpl::addHint(Hint *_hint) +{ + PX_ASSERT(_hint != NULL); + HintImpl *hint = static_cast< HintImpl *>(_hint); + PUSH_TO_ARRAY(hint, mHints, HintImpl *, mNumHints) +} + +int32_t DefinitionImpl::numEnumVals(void) const +{ + return(mNumEnumVals); +} + +int32_t DefinitionImpl::enumValIndex( const char * enum_val ) const +{ + if(!enum_val) + return(-1); + + for(int32_t i=0; i < numEnumVals(); ++i) + { + if( !strcmp( enumVal(i), enum_val ) ) + { + return(i); + } + } + + return(-1); +} + +const char *DefinitionImpl::enumVal(int32_t index) const +{ + PX_ASSERT(index >= 0); + PX_ASSERT(index < numEnumVals()); + + return(mEnumVals[index]); +} + +void DefinitionImpl::setEnumVals(const char **enum_vals, int32_t n) +{ + SET_ARRAY(char *, enum_vals, mEnumVals, mNumEnumVals); +} + +void DefinitionImpl::addEnumVal(const char *enum_val) +{ + PX_ASSERT(enum_val != NULL); + + char *NewEnumVal = COND_DUP(enum_val); + PUSH_TO_ARRAY(NewEnumVal, mEnumVals, char *, mNumEnumVals) +} + +int32_t DefinitionImpl::refVariantValIndex( const char * ref_val ) const +{ + if(!ref_val) + return(-1); + + for(int32_t i=0; i < numRefVariants(); ++i) + { + if( !strcmp( refVariantVal(i), ref_val ) ) + { + return(i); + } + } + + return(-1); +} + +int32_t DefinitionImpl::numRefVariants(void) const +{ + return(mNumRefVariants); +} + +const char *DefinitionImpl::refVariantVal(int32_t index) const +{ + PX_ASSERT(index >= 0); + PX_ASSERT(index < numRefVariants()); + + return(mRefVariantVals[index]); +} + +void DefinitionImpl::setRefVariantVals(const char **ref_vals, int32_t n) +{ + SET_ARRAY(char *, ref_vals, mRefVariantVals, mNumRefVariants); +} + +void DefinitionImpl::addRefVariantVal(const char *ref_val) +{ + PX_ASSERT(ref_val != NULL); + + char *NewEnumVal = COND_DUP(ref_val); + PUSH_TO_ARRAY(NewEnumVal, mRefVariantVals, char *, mNumRefVariants) +} + +void DefinitionImpl::setDynamicHandleIndicesMap(const uint8_t *indices, uint32_t numIndices) +{ + mNumDynamicHandleIndices = numIndices; + mDynamicHandleIndices = indices; +} + +const uint8_t * DefinitionImpl::getDynamicHandleIndicesMap(uint32_t &outNumIndices) const +{ + outNumIndices = mNumDynamicHandleIndices; + return mDynamicHandleIndices; +} + +bool DefinitionImpl::isSimpleType(bool simpleStructs, bool simpleStrings) const +{ + switch(mType) + { + case TYPE_STRUCT: + if( !simpleStructs ) + return false; + + for(int32_t i = 0; i < mNumChildren; ++i) + { + if( !mChildren[i]->isSimpleType(simpleStructs, simpleStrings) ) + return false; + } + + return true; + + case TYPE_ARRAY: + case TYPE_REF: + return false; + + NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS + default: + PX_ASSERT( mNumChildren == 0 ); + return true; + } +} + +//****************************************************************************** +//*** class NvParameterized +//****************************************************************************** + +NvParameters::NvParameters(Traits *traits, void *buf, int32_t *refCount) +{ + mParameterizedTraits = traits; + + if( buf ) + { + mBuffer = buf; + mRefCount = refCount; + + //Values of other fields are already deserialized + } + else + { + mName = mClassName = NULL; + mDoDeallocateName = mDoDeallocateClassName = mDoDeallocateSelf = true; + + mSerializationCb = NULL; + mCbUserData = NULL; + + mBuffer = NULL; + mRefCount = NULL; + + //Other fields are used only for inplace objects => skip them + } +} + +NvParameters::~NvParameters() +{ + if( mClassName && mDoDeallocateClassName ) + { + mParameterizedTraits->strfree( const_cast(mClassName) ); + mClassName = NULL; + } + + if( mName && mDoDeallocateName ) + { + mParameterizedTraits->strfree( const_cast(mName) ); + mName = NULL; + } +} + +// placement delete +void NvParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + void *buf = mBuffer; + int32_t *refCount = mRefCount; + NvParameterized::Traits *traits = mParameterizedTraits; + + this->~NvParameters(); + + destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +void NvParameters::destroy(NvParameters *obj, NvParameterized::Traits *traits, bool doDeallocateSelf, int32_t *refCount, void *buf) +{ + if( !doDeallocateSelf ) + return; + + if( !refCount ) //Ordinary object? + { + traits->free(obj); + return; + } + + //Inplace object => callback client + + traits->onInplaceObjectDestroyed(buf, obj); + if( !traits->decRefCount(refCount) ) + traits->onAllInplaceObjectsDestroyed(buf); +} + + +uint16_t NvParameters::getMajorVersion(void) const +{ + uint16_t major = version() >> 16; + return major; +} + +uint16_t NvParameters::getMinorVersion(void) const +{ + uint16_t minor = version() & 0xffff; + return minor; +} + +void NvParameters::initRandom(void) +{ + Handle handle(*this, ""); + initRandom(handle); +} + +void NvParameters::initRandom(NvParameterized::Handle& handle) +{ + NvParameterized::ErrorType error; + + const Definition* pd = handle.parameterDefinition(); + switch( pd->type() ) + { + case TYPE_STRUCT: + { + for(int32_t i = 0; i < pd->numChildren(); ++i) + { + handle.set(i); + initRandom(handle); + handle.popIndex(); + } + + break; + } + + case TYPE_ARRAY: + { + if (!pd->arraySizeIsFixed()) + { + error = handle.resizeArray(int32_t(10 * (double)rand() / RAND_MAX)); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + } + + int32_t size; + error = handle.getArraySize(size); + PX_ASSERT(error == ERROR_NONE); + + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + + for(int32_t i = 0; i < size; ++i) + { + handle.set(i); + initRandom(handle); + handle.popIndex(); + } + + break; + } + + case TYPE_REF: + { + if (!pd->numRefVariants()) + break; // Can't do anything without refVariants-hint + + PX_ASSERT(pd->numRefVariants() > 0); + uint32_t refIdx = RandomIdx(0U, pd->numRefVariants() - 1U); + const char* className = pd->refVariantVal(static_cast(refIdx)); + if( mParameterizedTraits->doesFactoryExist(className) ) { + error = initParamRef(handle, className, true); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + + NvParameterized::Interface* obj = NULL; + error = handle.getParamRef(obj); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + } + + break; + } + + case TYPE_BOOL: + error = handle.setParamBool( 0 == RandomU32() % 2 ); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_STRING: + { + char s[10]; + int32_t len = (int32_t)( (size_t)rand() % sizeof(s) ); + for(int32_t i = 0; i < len; ++i) + s[i] = 'a' + rand() % ('z' - 'a'); + s[len] = 0; + + error = handle.setParamString(s); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + } + + case TYPE_ENUM: + { + uint32_t enumIdx = RandomIdx(0U, static_cast(pd->numEnumVals()-1)); + error = handle.setParamEnum(pd->enumVal(static_cast(enumIdx))); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + } + + case TYPE_I8: + error = handle.setParamI8((int8_t)(RandomU32() & 0xff)); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_U8: + error = handle.setParamU8((uint8_t)(RandomU32() & 0xff)); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_I16: + error = handle.setParamI16((int16_t)(RandomU32() & 0xffff)); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_U16: + error = handle.setParamU16((uint16_t)(RandomU32() & 0xffff)); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_I32: + error = handle.setParamI32((int32_t)RandomU32()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_U32: + error = handle.setParamU32((uint32_t)RandomU32()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_I64: + error = handle.setParamI64((int64_t)RandomU64()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_U64: + error = handle.setParamU64(RandomU64()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_F32: + error = handle.setParamF32(RandomF32()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_F64: + error = handle.setParamF64(RandomF64()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_VEC2: + error = handle.setParamVec2(RandomVec2()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_VEC3: + error = handle.setParamVec3(RandomVec3()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_VEC4: + error = handle.setParamVec4(RandomVec4()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_QUAT: + error = handle.setParamQuat(RandomQuat()); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_MAT33: + error = handle.setParamMat33(physx::PxMat33(RandomVec3(), RandomVec3(), RandomVec3())); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_BOUNDS3: + error = handle.setParamBounds3(physx::PxBounds3(RandomVec3(), RandomVec3())); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_MAT44: + error = handle.setParamMat44(physx::PxMat44(RandomVec4(), RandomVec4(), RandomVec4(), RandomVec4())); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + + case TYPE_MAT34: + { + float f[12] = { RandomF32(), RandomF32(), RandomF32(), RandomF32(), + RandomF32(), RandomF32(), RandomF32(), RandomF32(), + RandomF32(), RandomF32(), RandomF32(), RandomF32() }; + error = handle.setParamMat34Legacy(f); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + } + + case TYPE_POINTER: + // We can't init pointers :( + break; + + case TYPE_TRANSFORM: + { + // PxTransform asserts if the quat isn't "sane" + physx::PxQuat q; + do { + q = RandomQuat(); + } while (!q.isSane()); + + error = handle.setParamTransform(physx::PxTransform(RandomVec3(),q)); + DEBUG_ASSERT( NvParameterized::ERROR_NONE == error ); + break; + } + NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + PX_ALWAYS_ASSERT(); + } + + PX_UNUSED(error); // Make compiler happy +} + +void NvParameters::setClassName(const char *name) +{ + if(mParameterizedTraits) + { + if( mClassName ) + { + if( !strcmp( mClassName, name ) ) + return; + + if( mDoDeallocateClassName ) + mParameterizedTraits->strfree( const_cast(mClassName) ); + } + + mClassName = mParameterizedTraits->strdup(name); + } + else + { + mClassName = name; + } + + mDoDeallocateClassName = true; +} + +void NvParameters::setName(const char *name) +{ + if(mParameterizedTraits) + { + if( mName ) + { + if( !strcmp( mName, name ) ) + return; + + if( mDoDeallocateName ) + mParameterizedTraits->strfree( const_cast(mName) ); + } + + mName = mParameterizedTraits->strdup(name); + } + else + { + mName = name; + } + + mDoDeallocateName = true; +} + +void NvParameters::setSerializationCallback(SerializationCallback *cb, void *userData) +{ + mSerializationCb = cb; + mCbUserData = userData; +} + +ErrorType NvParameters::callPreSerializeCallback() const +{ + if(mSerializationCb) + { + mSerializationCb->preSerialize(mCbUserData); + } + + Handle handle(*this); + + NV_ERR_CHECK_RETURN( getParameterHandle("", handle) ); + + return callPreSerializeCallback(handle); +} + +int32_t NvParameters::numParameters(void) +{ + return(rootParameterDefinition()->numChildren()); +} + +const Definition *NvParameters::parameterDefinition(int32_t index) +{ + return(rootParameterDefinition()->child(index)); +} + +const Definition *NvParameters::rootParameterDefinition(void) +{ + return(getParameterDefinitionTree()); +} + +const Definition *NvParameters::rootParameterDefinition(void) const +{ + return(getParameterDefinitionTree()); +} + +ErrorType NvParameters::getParameterHandle(const char *long_name, Handle &handle) const +{ + ErrorType result = ERROR_NONE; + + PX_ASSERT( handle.getConstInterface() == this ); + + if( rootParameterDefinition() == NULL ) + { + handle.reset(); + result = (ERROR_INVALID_CALL_ON_NAMED_REFERENCE); + } + else + { + result = handle.set(this,rootParameterDefinition(), long_name); + } + + PX_ASSERT(result == ERROR_NONE); + + return result; +} + +ErrorType NvParameters::getParameterHandle(const char *long_name, Handle &handle) +{ + ErrorType result = ERROR_NONE; + + PX_ASSERT( handle.getConstInterface() == this ); + + if( rootParameterDefinition() == NULL ) + { + handle.reset(); + result = (ERROR_INVALID_CALL_ON_NAMED_REFERENCE); + } + else + { + result = handle.set(this,rootParameterDefinition(), long_name); + } + + PX_ASSERT(result == ERROR_NONE); + + return result; +} + +#ifndef NV_CHECKED +# define CHECK_HANDLE +# define CHECK_IS_SIMPLE_ARRAY(type_enum_name) +#else +# define CHECK_HANDLE \ + { \ + ErrorType result = checkParameterHandle(handle); \ + PX_ASSERT(result == ERROR_NONE); \ + if(result != ERROR_NONE) \ + return(result); \ + } +# define CHECK_IS_SIMPLE_ARRAY(type_enum_name) \ + { \ + PX_ASSERT(offset >= 0);\ + PX_ASSERT(n >= 0);\ + if(handle.parameterDefinition()->type() != TYPE_ARRAY) \ + {\ + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_NOT_AN_ARRAY");\ + return(ERROR_NOT_AN_ARRAY); \ + }\ + if(handle.parameterDefinition()->child(0)->type() != TYPE_##type_enum_name) \ + {\ + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED");\ + return(ERROR_CAST_FAILED); \ + }\ + int32_t arraySize; \ + ErrorType error; \ + if((error = getArraySize(handle, arraySize)) != ERROR_NONE) \ + {\ + PX_ASSERT(error == ERROR_NONE); \ + return(error); \ + }\ + if( offset + n > arraySize) \ + {\ + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_ARRAY_IS_TOO_SMALL");\ + return(ERROR_ARRAY_IS_TOO_SMALL); \ + }\ + } +#endif + +template ErrorType rawGetParam(const Handle &handle,Type &val,const NvParameters *parent) +{ + size_t offset; + void *ptr=NULL; + parent->getVarPtr(handle, ptr, offset); + if ( ptr == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); + return ERROR_TYPE_NOT_SUPPORTED; + } + Type *var = (Type *)((char *)ptr); + val = *var; + return(ERROR_NONE); +} + +template ErrorType rawSetParam(const Handle &handle,const Type &val,NvParameters *parent) +{ + size_t offset; + void *ptr=NULL; + parent->getVarPtr(handle, ptr, offset); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + Type *Var = (Type *)((char *)ptr); + *Var = val; + return(ERROR_NONE); +} + +template ErrorType rawGetParamArray(const Handle &handle,Type *array, int32_t n, int32_t offset,const NvParameters *parent) +{ + int32_t size; + NV_ERR_CHECK_RETURN(handle.getArraySize(size)); + if( size < offset + n ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + if( n ) + { + Handle memberHandle(handle); + NV_ERR_CHECK_RETURN(memberHandle.set(offset)); + + size_t tmp; + void *ptr=NULL; + parent->getVarPtr(memberHandle, ptr, tmp); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + physx::intrinsics::memCopy(array, ptr, n * sizeof(Type)); + } + + return(ERROR_NONE); +} + +template ErrorType rawSetParamArray(const Handle &handle, const Type *array, int32_t n, int32_t offset,NvParameters *parent) +{ + int32_t size; + NV_ERR_CHECK_RETURN(handle.getArraySize(size)); + if( size < offset + n ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + if( n ) + { + Handle memberHandle(handle); + NV_ERR_CHECK_RETURN(memberHandle.set(offset)); + + size_t tmp; + void *ptr=NULL; + parent->getVarPtr(memberHandle, ptr, tmp); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + physx::intrinsics::memCopy(ptr, array, n * sizeof(Type)); + } + + return(ERROR_NONE); +} + +//****************************************************************************** +//*** Bool +//****************************************************************************** + +ErrorType NvParameters::getParamBool(const Handle &handle, bool &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_BOOL) + { + return rawGetParamBool(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamBool(const Handle &handle, bool val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_BOOL) + { + return rawSetParamBool(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(BOOL) + return(rawGetParamBoolArray(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(BOOL) + return(rawSetParamBoolArray(handle, array, n, offset)); +} + +//****************************************************************************** +//*** String +//****************************************************************************** + +ErrorType NvParameters::getParamString(const Handle &handle, const char *&val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_ENUM) + { + return rawGetParamEnum(handle, val); + } + + if(handle.parameterDefinition()->type() == TYPE_STRING) + { + return rawGetParamString(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamString(const Handle &handle, const char *val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_STRING) + { + return rawSetParamString(handle, val); + } + + if(handle.parameterDefinition()->type() == TYPE_ENUM) + { + return rawSetParamEnum(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::rawGetParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset) const +{ + Handle memberHandle(handle); + for(int32_t i=0; i < n; ++i) + { + ErrorType error; + if((error = memberHandle.set(i + offset)) != ERROR_NONE) + { + PX_ASSERT(error == ERROR_NONE); + return(error); + } + + const char * tmp; + if((error = rawGetParamString(memberHandle, tmp)) != ERROR_NONE) + { + PX_ASSERT(error == ERROR_NONE); + return(error); + } + + array[i] = const_cast(tmp); + memberHandle.popIndex(); + } + return(ERROR_NONE); +} + + +ErrorType NvParameters::getParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(STRING) + return(rawGetParamStringArray(handle, array, n, offset)); +} + +ErrorType NvParameters::rawSetParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset) +{ + Handle memberHandle(handle); + for(int32_t i=0; i < n; ++i) + { + ErrorType error; + if((error = memberHandle.set(i + offset)) != ERROR_NONE) + { + PX_ASSERT(error == ERROR_NONE); + return(error); + } + + if((error = rawSetParamString(memberHandle, array[i] )) != ERROR_NONE) + { + PX_ASSERT(error == ERROR_NONE); + return(error); + } + + memberHandle.popIndex(); + } + return(ERROR_NONE); +} + +ErrorType NvParameters::setParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(STRING) + return(rawSetParamStringArray(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Enum +//****************************************************************************** + +ErrorType NvParameters::getParamEnum(const Handle &handle, const char *&val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_STRING) + { + return rawGetParamString(handle, val); + } + + if(handle.parameterDefinition()->type() == TYPE_ENUM) + { + return rawGetParamEnum(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +// returns the actual enum string from the ParameterDefintion object, which should be good for the liftetime +// of the DefinitionImpl object. Returns NULL if no such enum exists. +static const char* getEnumString(const Handle &handle, const char* str) +{ + PX_ASSERT(str != NULL); + + const Definition* paramDef = handle.parameterDefinition(); + PX_ASSERT(paramDef != NULL); + PX_ASSERT(paramDef->type() == TYPE_ENUM); + + for (int32_t i = 0; i < paramDef->numEnumVals(); ++i) + if(!strcmp(paramDef->enumVal(i), str)) + return(paramDef->enumVal(i)); + + return(NULL); +} + +ErrorType NvParameters::setParamEnum(const Handle &handle, const char *val) +{ + CHECK_HANDLE + + val = getEnumString(handle, val); + if(val == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_ENUM_VAL"); + return(ERROR_INVALID_ENUM_VAL); + } + + if(handle.parameterDefinition()->type() == TYPE_ENUM) + { + return rawSetParamEnum(handle, val); + } + + if(handle.parameterDefinition()->type() == TYPE_STRING) + { + return rawSetParamString(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::rawGetParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset) const +{ + Handle memberHandle(handle); + for(int32_t i=0; i < n; ++i) + { + ErrorType error; + if((error = memberHandle.set(i + offset)) != ERROR_NONE) + return(error); + const char * tmp; + if((error = rawGetParamEnum(memberHandle, tmp)) != ERROR_NONE) + return(error); + array[i] = const_cast(tmp); + memberHandle.popIndex(); + } + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSetParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset) +{ + Handle memberHandle(handle); + for(int32_t i=0; i < n; ++i) + { + ErrorType error; + if((error = memberHandle.set(i + offset)) != ERROR_NONE) + return(error); + if((error = rawSetParamEnum(memberHandle, array[i])) != ERROR_NONE) + return(error); + memberHandle.popIndex(); + } + return(ERROR_NONE); +} + +ErrorType NvParameters::getParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(ENUM) + return(rawGetParamEnumArray(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(ENUM) + return(rawSetParamEnumArray(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Ref +//****************************************************************************** + +ErrorType NvParameters::initParamRef(const Handle &handle, const char *inChosenRefStr, bool doDestroyOld) +{ + CHECK_HANDLE + + NvParameterized::Interface *param = NULL; + const char *chosenRefStr = inChosenRefStr; + + // create NvParam object (depends on if it's included or not) + const Hint *hint = handle.parameterDefinition()->hint("INCLUDED"); + if (hint && hint->type() != TYPE_U64) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_INCLUDE_HINT"); + return(ERROR_INVALID_REFERENCE_INCLUDE_HINT); + } + + if (hint != NULL && hint->asUInt() == 1) + { + // included + + if (chosenRefStr == 0 && handle.parameterDefinition()->numRefVariants() > 1) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_VALUE"); + return(ERROR_INVALID_REFERENCE_VALUE); + } + + for (int32_t i = 0; i < handle.parameterDefinition()->numRefVariants(); i++) + { + if (!strcmp(handle.parameterDefinition()->refVariantVal(i), chosenRefStr)) + { + // create an object of type chosenRefStr, somehow + param = mParameterizedTraits->createNvParameterized(chosenRefStr); + if (!param) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_OBJECT_CONSTRUCTION_FAILED"); + return ERROR_OBJECT_CONSTRUCTION_FAILED; + } + + return setParamRef(handle, param, doDestroyOld); + } + } + // PH: debug hint + // If you land here, you should compare chosenRefStr and handle.mParameterDefinition.mRefVariantVals + // to see why it couldn't find anything, and then fix the .pl + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_VALUE"); + return(ERROR_INVALID_REFERENCE_VALUE); + } + else + { + // not included, just create generic NvParameterized + param = NV_PARAM_PLACEMENT_NEW(mParameterizedTraits->alloc(sizeof(NvParameters)), NvParameters)(mParameterizedTraits); + if (!param) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_OBJECT_CONSTRUCTION_FAILED"); + return ERROR_OBJECT_CONSTRUCTION_FAILED; + } + + if (chosenRefStr == 0) + { + param->setClassName(handle.parameterDefinition()->refVariantVal(0)); + } + else + { + bool found = false; + for (int32_t i = 0; i < handle.parameterDefinition()->numRefVariants(); i++) + { + if (!strcmp(handle.parameterDefinition()->refVariantVal(i), chosenRefStr)) + { + param->setClassName(handle.parameterDefinition()->refVariantVal(i)); + found = true; + break; + } + } + if ( !found ) + { + // ensure that we free this memory that we've allocated + mParameterizedTraits->free(param); + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_VALUE"); + return(ERROR_INVALID_REFERENCE_VALUE); + } + } + return setParamRef(handle, param, doDestroyOld); + } +} + +ErrorType NvParameters::getParamRef(const Handle &handle, NvParameterized::Interface *&val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_REF) + { + return rawGetParamRef(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamRef(const Handle &handle, NvParameterized::Interface *val, bool doDestroyOld) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_REF) + { + if (doDestroyOld) + { + NvParameterized::Interface *param = NULL; + + getParamRef(handle, param); + if(param) + { + param->destroy(); + param = NULL; + } + } + return rawSetParamRef(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::rawGetParamRefArray(const Handle &handle, NvParameterized::Interface **array, int32_t n, int32_t offset) const +{ + Handle memberHandle(handle); + for(int32_t i=0; i < n; ++i) + { + ErrorType error; + if((error = memberHandle.set(i + offset)) != ERROR_NONE) + return(error); + NvParameterized::Interface * tmp; + if((error = rawGetParamRef(memberHandle, tmp)) != ERROR_NONE) + return(error); + array[i] = tmp; + memberHandle.popIndex(); + } + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSetParamRefArray(const Handle &handle,NvParameterized::Interface **array, int32_t n, int32_t offset) +{ + Handle memberHandle(handle); + for(int32_t i=0; i < n; ++i) + { + ErrorType error; + if((error = memberHandle.set(i + offset)) != ERROR_NONE) + return(error); + if((error = rawSetParamRef(memberHandle, array[i])) != ERROR_NONE) + return(error); + memberHandle.popIndex(); + } + + return(ERROR_NONE); +} + +ErrorType NvParameters::getParamRefArray(const Handle &handle, NvParameterized::Interface * *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(REF) + return(rawGetParamRefArray(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamRefArray(const Handle &handle, /*const*/ NvParameterized::Interface **array, int32_t n, int32_t offset, bool doDestroyOld) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(REF) + + Handle memberHandle(handle); + for(int32_t i = 0; i < n; ++i) + { + ErrorType error; + if((error = memberHandle.set(i + offset)) != ERROR_NONE) + { + return(error); + } + + if((error = setParamRef(memberHandle, array[i]), doDestroyOld) != ERROR_NONE) + { + return(error); + } + memberHandle.popIndex(); + } + return(ERROR_NONE); +} + +//****************************************************************************** +//*** I8 +//****************************************************************************** + +ErrorType NvParameters::getParamI8(const Handle &handle, int8_t &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I8) + { + return rawGetParamI8(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamI8(const Handle &handle, int8_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I8) + { + return rawSetParamI8(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I8) + return(rawGetParamI8Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamI8Array(const Handle &handle, const int8_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I8) + return(rawSetParamI8Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** I16 +//****************************************************************************** + +ErrorType NvParameters::getParamI16(const Handle &handle, int16_t &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I8) + { + int8_t tmp; + ErrorType result = rawGetParamI8(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int16_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_I16) + { + return rawGetParamI16(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamI16(const Handle &handle, int16_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I16) + { + return rawSetParamI16(handle, val); + } + if(handle.parameterDefinition()->type() == TYPE_I8) + { + return rawSetParamI8(handle, (int8_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawSetParamU8(handle, (uint8_t)val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I16) + return(rawGetParamI16Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamI16Array(const Handle &handle, const int16_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I16) + return(rawSetParamI16Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** I32 +//****************************************************************************** + +ErrorType NvParameters::getParamI32(const Handle &handle, int32_t &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I8) + { + int8_t tmp; + ErrorType result = rawGetParamI8(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int32_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_I16) + { + int16_t tmp; + ErrorType result = rawGetParamI16(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int32_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_I32) + { + int32_t tmp; + ErrorType result = rawGetParamI32(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int32_t)tmp; + return(ERROR_NONE); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamI32(const Handle &handle, int32_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I32) + { + return rawSetParamI32(handle, val); + } + if(handle.parameterDefinition()->type() == TYPE_I16) + { + return rawSetParamI16(handle, (int16_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_U16) + { + return rawSetParamU16(handle, (uint16_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_I8) + { + return rawSetParamI8(handle, (int8_t) val); + } + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawSetParamU8(handle, (uint8_t) val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I32) + return(rawGetParamI32Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamI32Array(const Handle &handle, const int32_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I32) + return(rawSetParamI32Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** I64 +//****************************************************************************** + +ErrorType NvParameters::getParamI64(const Handle &handle, int64_t &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I8) + { + int8_t tmp; + ErrorType result = rawGetParamI8(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int64_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_I16) + { + int16_t tmp; + ErrorType result = rawGetParamI16(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int64_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_I32) + { + int32_t tmp; + ErrorType result = rawGetParamI32(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int64_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_I64) + { + int64_t tmp; + ErrorType result = rawGetParamI64(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (int64_t)tmp; + return(ERROR_NONE); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamI64(const Handle &handle, int64_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_I64) + { + return rawSetParamI64(handle, val); + } + if(handle.parameterDefinition()->type() == TYPE_U32) + { + return rawSetParamU32(handle, (uint32_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_I32) + { + return rawSetParamI32(handle, (int32_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_I16) + { + return rawSetParamI16(handle, (int16_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_U16) + { + return rawSetParamU16(handle, (uint16_t) val); + } + if(handle.parameterDefinition()->type() == TYPE_I8) + { + return rawSetParamI8(handle, (int8_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawSetParamU8(handle, (uint8_t)val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I64) + return(rawGetParamI64Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamI64Array(const Handle &handle, const int64_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(I64) + return(rawSetParamI64Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** U8 +//****************************************************************************** + +ErrorType NvParameters::getParamU8(const Handle &handle, uint8_t &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawGetParamU8(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamU8(const Handle &handle, uint8_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawSetParamU8(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamU8Array(const Handle &handle, const uint8_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U8) + return(rawSetParamU8Array(handle, array, n, offset)); +} + + +//****************************************************************************** +//*** U16 +//****************************************************************************** + +ErrorType NvParameters::getParamU16(const Handle &handle, uint16_t &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_U8) + { + uint8_t tmp; + ErrorType result = rawGetParamU8(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint16_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_U16) + { + uint16_t tmp; + ErrorType result = rawGetParamU16(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint16_t)tmp; + return(ERROR_NONE); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamU16(const Handle &handle, uint16_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_U16) + { + return rawSetParamU16(handle, val); + } + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawSetParamU8(handle, (uint8_t)val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U16) + return(rawGetParamU16Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U16) + return(rawSetParamU16Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** U32 +//****************************************************************************** + +ErrorType NvParameters::getParamU32(const Handle &handle, uint32_t &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_U8) + { + uint8_t tmp; + ErrorType result = rawGetParamU8(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint32_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_U16) + { + uint16_t tmp; + ErrorType result = rawGetParamU16(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint32_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_U32) + { + uint32_t tmp; + ErrorType result = rawGetParamU32(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint32_t)tmp; + return(ERROR_NONE); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamU32(const Handle &handle, uint32_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_U32) + { + return rawSetParamU32(handle, val); + } + if(handle.parameterDefinition()->type() == TYPE_U16) + { + return rawSetParamU16(handle, (uint16_t)val); + } + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawSetParamU8(handle, (uint8_t)val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U32) + return(rawGetParamU32Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U32) + return(rawSetParamU32Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** U64 +//****************************************************************************** + +ErrorType NvParameters::getParamU64(const Handle &handle, uint64_t &val) const +{ + CHECK_HANDLE + + if (handle.parameterDefinition()->type() == TYPE_BOOL) + { + bool tmp; + ErrorType result = rawGetParamBool(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if (result != ERROR_NONE) + return(result); + val = (uint64_t)tmp; + return(ERROR_NONE); + } + + if (handle.parameterDefinition()->type() == TYPE_U8) + { + uint8_t tmp; + ErrorType result = rawGetParamU8(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint64_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_U16) + { + uint16_t tmp; + ErrorType result = rawGetParamU16(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint64_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_U32) + { + uint32_t tmp; + ErrorType result = rawGetParamU32(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint64_t)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_U64) + { + uint64_t tmp; + ErrorType result = rawGetParamU64(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (uint64_t)tmp; + return(ERROR_NONE); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamU64(const Handle &handle, uint64_t val) +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_U64) + { + return rawSetParamU64(handle, val); + } + + if(handle.parameterDefinition()->type() == TYPE_U32) + { + return rawSetParamU32(handle, (uint32_t)val); + } + + if(handle.parameterDefinition()->type() == TYPE_U16) + { + return rawSetParamU16(handle, (uint16_t)val); + } + + if(handle.parameterDefinition()->type() == TYPE_U8) + { + return rawSetParamU8(handle, (uint8_t)val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U64) + return(rawGetParamU64Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U64) + return(rawSetParamU64Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** F32 +//****************************************************************************** + +ErrorType NvParameters::getParamF32(const Handle &handle, float &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_F32) + { + return rawGetParamF32(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamF32(const Handle &handle, float val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_F32) + { + return rawSetParamF32(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(F32) + return(rawGetParamF32Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(F32) + CHECK_F32_FINITE_ARRAY + return(rawSetParamF32Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** F64 +//****************************************************************************** + +ErrorType NvParameters::getParamF64(const Handle &handle, double &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_F32) + { + float tmp; + ErrorType result = rawGetParamF32(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (double)tmp; + return(ERROR_NONE); + } + + if(handle.parameterDefinition()->type() == TYPE_F64) + { + double tmp; + ErrorType result = rawGetParamF64(handle, tmp); + PX_ASSERT(result == ERROR_NONE); + + if(result != ERROR_NONE) + return(result); + val = (double)tmp; + return(ERROR_NONE); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamF64(const Handle &handle, double val) +{ + CHECK_HANDLE + CHECK_F64_FINITE + + if(handle.parameterDefinition()->type() == TYPE_F64) + { + return rawSetParamF64(handle, val); + } + else if(handle.parameterDefinition()->type() == TYPE_F32) + { + return rawSetParamF32(handle, (float)val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::setParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(F64) + CHECK_F64_FINITE_ARRAY + return(rawSetParamF64Array(handle, array, n, offset)); +} + +/** +# When shrinking a dynamic array, the array may contain dynamically allocated Refs or Strings. +# It may also contain Structs that contain these items, we'll call them all "dynamic parameters". +# +# To handle this, we generate, for every dynamic array with dynamic parameters, handle indices in +# the Parameter Definition that help the NvParameters::rawResizeArray() method find these parameters +# and destroy them quickly (without having to recursively traverse the parameters). +# +# The handle indices are layed out like this for the following struct: +# [ handleDepth0, 3, handleDepth1, 5 ] - handleDepth0 = handleDepth1 = 1 +# struct myStruct { +# float a; +# float b; +# float c; +# string myString; +# float a; +# ref myRef; +# } +# +# You can see that myString and myRef are the only two dynamically allocated members that need +# to be destroyed, so only their indices appear in the list. +# +# Note: Currently, we only support 1D arrays with dynamic parameters in the top most struct. +# array[i].myString is supported +# array[i].structa.myString is supported +# array[i].structa.structb.myString is NOT supported +*/ +ErrorType NvParameters::releaseDownsizedParameters(const Handle &handle, int newSize, int oldSize) +{ + // if downsizing array, release dynamic parameters + // for now, just do 1D arrays + if( newSize >= oldSize ) + { + return ERROR_NONE; + } + + uint32_t numIndices=0; + Handle tmpHandle(handle); + + const uint8_t *hIndices = tmpHandle.parameterDefinition()->getDynamicHandleIndicesMap(numIndices); + + if( numIndices ) + { + // from array[new_size] to array[old_size] + for( int i=newSize; itype(); + if( type == TYPE_STRING ) + { + tmpHandle.setParamString( NULL ); + } + else if( type == TYPE_REF ) + { + NvParameterized::Interface * paramPtr = 0; + tmpHandle.getParamRef( paramPtr ); + if( paramPtr ) + { + paramPtr->destroy(); + tmpHandle.setParamRef( NULL ); + } + } + else if( type == TYPE_ENUM ) + { + // nothing to do on a downsize + } + else + { + PX_ASSERT( 0 && "Invalid dynamically allocated type defined in Definition handle list" ); + } + + // reset the handle + if( indexDepth > 0 ) + { + tmpHandle.popIndex( indexDepth ); + } + } + + tmpHandle.popIndex(); + } + } + + return ERROR_NONE; +} + + + +/** +# When growing a dynamic array, the array may contain Enums or Structs that contain enums. +# +# To handle this, we generate, for every dynamic array with enums, handle indices in +# the Parameter Definition that help the NvParameters::rawResizeArray() method find these parameters +# and initialized them quickly (without having to recursively traverse the parameters). +# +# Note: Currently, we only support 1D arrays with enums in the top most struct. +# array[i].enumA is supported +# array[i].structa.enumA is supported +# array[i].structa.structb.enumA is NOT supported +*/ +ErrorType NvParameters::initNewResizedParameters(const Handle &handle, int newSize, int oldSize) +{ + // if downsizing array, release dynamic parameters + // for now, just do 1D arrays + if( newSize <= oldSize ) + { + return ERROR_NONE; + } + + uint32_t numIndices=0; + Handle tmpHandle(handle); + + const uint8_t *hIndices = tmpHandle.parameterDefinition()->getDynamicHandleIndicesMap(numIndices); + + if( numIndices ) + { + // from array[new_size] to array[old_size] + for( int i=oldSize; itype(); + if( type == TYPE_STRING || type == TYPE_REF ) + { + // nothing to do on an array growth + } + else if( type == TYPE_ENUM ) + { + // this is not the default value, but that's not available from here + // we could possibly store the enum default values, or just always make them first + tmpHandle.setParamEnum( tmpHandle.parameterDefinition()->enumVal(0) ); + } + else if( type == TYPE_ARRAY ) + { + // FIXME: we do not fully support arrays here, this is just a brain-dead stub + + const Definition *pd = 0; + for(pd = tmpHandle.parameterDefinition(); pd->type() == TYPE_ARRAY; pd = pd->child(0)) + { + PX_ASSERT( pd->numChildren() == 1 ); + } + + if( pd->type() != TYPE_STRING && pd->type() != TYPE_REF ) + PX_ASSERT( 0 && "Invalid dynamically allocated type defined in Definition handle list" ); + } + else + { + PX_ASSERT( 0 && "Invalid dynamically allocated type defined in Definition handle list" ); + } + + // reset the handle + if( indexDepth > 0 ) + { + tmpHandle.popIndex( indexDepth ); + } + } + + tmpHandle.popIndex(); + } + } + + return ERROR_NONE; +} + +ErrorType NvParameters::rawResizeArray(const Handle &handle, int new_size) +{ + size_t offset; + ErrorType ret; + void *ptr=NULL; + + Handle arrayRootHandle(handle); + + // We should consider storing alignment in dynamic array struct at some point + uint32_t align = arrayRootHandle.parameterDefinition()->alignment(); + if( 0 == align ) + align = 8; // Default alignment + + int dimension = 0; + + while(arrayRootHandle.parameterDefinition()->parent() && + arrayRootHandle.parameterDefinition()->parent()->type() == TYPE_ARRAY) + { + arrayRootHandle.popIndex(); + dimension++; + } + + getVarPtr(arrayRootHandle, ptr, offset); + if ( ptr == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); + return ERROR_TYPE_NOT_SUPPORTED; + } + + DummyDynamicArrayStruct *dynArray = (DummyDynamicArrayStruct *)ptr; + int old_size = dynArray->arraySizes[0]; + + releaseDownsizedParameters(handle, new_size, old_size); + + ret = resizeArray(mParameterizedTraits, + dynArray->buf, + dynArray->arraySizes, + arrayRootHandle.parameterDefinition()->arrayDimension(), + dimension, + new_size, + dynArray->isAllocated, + dynArray->elementSize, + align, + dynArray->isAllocated); + + initNewResizedParameters(handle, new_size, old_size); + + return ret; +} + +ErrorType NvParameters::rawGetArraySize(const Handle &array_handle, int &size, int dimension) const +{ + size_t offset; + void *ptr=NULL; + getVarPtr(array_handle, ptr, offset); + if ( ptr == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); + return ERROR_TYPE_NOT_SUPPORTED; + } + + DummyDynamicArrayStruct *dynArray = (DummyDynamicArrayStruct *)ptr; + size = dynArray->arraySizes[dimension]; + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSwapArrayElements(const Handle &array_handle, unsigned int firstElement, unsigned int secondElement) +{ + size_t offset = 0; + void* ptr = NULL; + Handle arrayRootHandle(array_handle); + + getVarPtr(arrayRootHandle, ptr, offset); + if ( ptr == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); + return ERROR_TYPE_NOT_SUPPORTED; + } + + DummyDynamicArrayStruct* dynArray = reinterpret_cast(ptr); + + const int elementSize = dynArray->elementSize; + + char tempDataStack[64]; + void* tempData = tempDataStack; + + void* tempDataHeap = NULL; + PX_ASSERT(elementSize > 0); + PX_ASSERT(sizeof(elementSize) <= sizeof(uint32_t)); + if (elementSize > 64) + { + tempDataHeap = mParameterizedTraits->alloc(static_cast(elementSize)); + tempData = tempDataHeap; + } + + char* firstPtr = (char*)dynArray->buf + elementSize * firstElement; + char* secondPtr = (char*)dynArray->buf + elementSize * secondElement; + + physx::intrinsics::memCopy(tempData, firstPtr, static_cast(elementSize)); + physx::intrinsics::memCopy(firstPtr, secondPtr, static_cast(elementSize)); + physx::intrinsics::memCopy(secondPtr, tempData, static_cast(elementSize)); + + if (tempDataHeap != NULL) + { + mParameterizedTraits->free(tempDataHeap); + } + + return(ERROR_NONE); +} + +#define ARRAY_HANDLE_CHECKS \ + if(!array_handle.isValid()) \ + { \ + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE");\ + return(ERROR_INVALID_PARAMETER_HANDLE); \ + }\ + if(array_handle.parameterDefinition()->type() != TYPE_ARRAY) \ + {\ + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_NOT_AN_ARRAY"); \ + return(ERROR_NOT_AN_ARRAY); \ + } + + +ErrorType NvParameters::resizeArray(const Handle &array_handle, int32_t new_size) +{ + ARRAY_HANDLE_CHECKS + + if(new_size < 0) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_ARRAY_SIZE"); + return(ERROR_INVALID_ARRAY_SIZE); + } + + if(array_handle.parameterDefinition()->arraySizeIsFixed()) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_ARRAY_SIZE_IS_FIXED"); + return(ERROR_ARRAY_SIZE_IS_FIXED); + } + + return(rawResizeArray(array_handle, new_size)); +} + +ErrorType NvParameters::swapArrayElements(const Handle &array_handle, uint32_t firstElement, uint32_t secondElement) +{ + ARRAY_HANDLE_CHECKS; + + if (firstElement == secondElement) + return(ERROR_NONE); + + int array_size = 0; + rawGetArraySize(array_handle, array_size, 0); + + if (array_size < 1) + return(ERROR_NONE); + + if (firstElement >= (unsigned int)array_size) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + if (secondElement >= (unsigned int)array_size) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + // well, maybe swapping will work on fixed size arrays as well... + if (array_handle.parameterDefinition()->arraySizeIsFixed()) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_ARRAY_SIZE_IS_FIXED"); + return(ERROR_ARRAY_SIZE_IS_FIXED); + } + + return rawSwapArrayElements(array_handle, firstElement, secondElement); +} + +ErrorType NvParameters:: + getArraySize(const Handle &array_handle, int32_t &size, int32_t dimension) const +{ + ARRAY_HANDLE_CHECKS + + if(dimension < 0 || dimension >= array_handle.parameterDefinition()->arrayDimension()) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_ARRAY_DIMENSION"); + return(ERROR_INVALID_ARRAY_DIMENSION); + } + + if(array_handle.parameterDefinition()->arraySizeIsFixed()) + { + size = array_handle.parameterDefinition()->arraySize(dimension); + return(ERROR_NONE); + } + + return(rawGetArraySize(array_handle, size, dimension)); +} + +ErrorType NvParameters::callPreSerializeCallback(Handle& handle) const +{ + const Definition* def = handle.parameterDefinition(); + if (def->type() == TYPE_REF) + { + // don't preSerialize Named References + const Hint *hint = def->hint("INCLUDED"); + if( hint && + hint->type() == TYPE_U64 && + hint->asUInt() == 1 ) + { + // included + NvParameterized::Interface* ref = NULL; + NV_ERR_CHECK_RETURN( getParamRef(handle, ref) ); + if( ref ) + { + NV_ERR_CHECK_RETURN( ref->callPreSerializeCallback() ); + } + } + } + else if (def->type() == TYPE_ARRAY) + { + int32_t arraySize = 0; + getArraySize(handle, arraySize); + + for (int32_t i = 0; i < arraySize; i++) + { + handle.set(i); + + NV_ERR_CHECK_RETURN( callPreSerializeCallback(handle) ); + + handle.popIndex(); + } + } + else if (def->type() == TYPE_STRUCT) + { + const int32_t numChildren = def->numChildren(); + + for (int32_t childIndex = 0; childIndex < numChildren; childIndex++) + { + handle.set(childIndex); + + NV_ERR_CHECK_RETURN( callPreSerializeCallback(handle) ); + + handle.popIndex(); + } + } + + return ERROR_NONE; +} + +ErrorType NvParameters::checkParameterHandle(const Handle &handle) const +{ + PX_ASSERT( handle.getConstInterface() ); + PX_ASSERT( handle.getConstInterface() == this ); + + if (!handle.isValid()) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE"); + return(ERROR_INVALID_PARAMETER_HANDLE); + } + + if (handle.getConstInterface() == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_HANDLE_MISSING_INTERFACE_POINTER"); + return(ERROR_HANDLE_MISSING_INTERFACE_POINTER); + } + + if (handle.getConstInterface() != this ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_HANDLE_INVALID_INTERFACE_POINTER"); + return(ERROR_HANDLE_INVALID_INTERFACE_POINTER); + } + + if(handle.parameterDefinition()->root() != rootParameterDefinition()) + { + return(ERROR_PARAMETER_HANDLE_DOES_NOT_MATCH_CLASS); + } + + + const Definition *ptr = rootParameterDefinition(); + for(int32_t i=0; i < handle.numIndexes(); ++i) + { + PX_ASSERT(ptr != NULL); + + switch(ptr->type()) + { + case TYPE_STRUCT: + if(handle.index(i) >= ptr->numChildren()) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + ptr = ptr->child(handle.index(i)); + break; + + case TYPE_ARRAY: + { + int32_t size = ptr->arraySize(); + Handle tmpHandle(handle); + tmpHandle.popIndex(handle.numIndexes() - i); + + if(size <= 0) + if(getArraySize(tmpHandle, size) != ERROR_NONE) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + if(handle.index(i) >= size) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + ptr = ptr->child(0); + } + break; + + NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS + default: + PX_ALWAYS_ASSERT(); + ptr = NULL; + } + } + + return(ERROR_NONE); +} + +ErrorType NvParameters::clone(NvParameterized::Interface *&nullDestObject) const +{ + PX_ASSERT(nullDestObject == NULL ); + nullDestObject = mParameterizedTraits->createNvParameterized(className(), version()); + if( !nullDestObject ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_OBJECT_CONSTRUCTION_FAILED"); + return ERROR_OBJECT_CONSTRUCTION_FAILED; + } + + ErrorType err = nullDestObject->copy(*this); + if( ERROR_NONE != err ) + { + nullDestObject->destroy(); + nullDestObject = NULL; + } + + return err; +} + +ErrorType NvParameters::copy(const NvParameterized::Interface &other, + Handle &thisHandle) +{ + const Definition *paramDef = thisHandle.parameterDefinition(); + ErrorType error = ERROR_NONE; + + if( paramDef->type() == TYPE_STRUCT ) + { + for(int32_t i=0; i < paramDef->numChildren(); ++i) + { + thisHandle.set(i); + error = copy(other, thisHandle); + NV_ERR_CHECK_RETURN(error); + + thisHandle.popIndex(); + } + return(error); + } + else if( paramDef->type() == TYPE_ARRAY ) + { + int32_t thisSize, otherSize; + + error = thisHandle.getArraySize(thisSize); + NV_ERR_CHECK_RETURN(error); + + Handle otherHandle = thisHandle; + otherHandle.setInterface(&other); + error = otherHandle.getArraySize(otherSize); + NV_ERR_CHECK_RETURN(error); + + thisHandle.setInterface(this); + + if(thisSize != otherSize) + { + error = thisHandle.resizeArray(otherSize); + NV_ERR_CHECK_RETURN(error); + thisSize = otherSize; + } + + for(int32_t i=0; i < otherSize; ++i) + { + thisHandle.set(i); + + error = this->copy(other, thisHandle); + NV_ERR_CHECK_RETURN(error); + + thisHandle.popIndex(); + } + return(error); + } + + Handle otherHandle = thisHandle; + otherHandle.setInterface(&other); + switch(paramDef->type()) + { + case TYPE_BOOL: + { + bool otherVal; + error = otherHandle.getParamBool(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamBool(otherVal) ); + } + + case TYPE_I8: + { + int8_t otherVal; + error = otherHandle.getParamI8(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamI8(otherVal) ); + } + + case TYPE_I16 : + { + int16_t otherVal; + error = otherHandle.getParamI16(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamI16(otherVal) ); + } + case TYPE_I32 : + { + int32_t otherVal; + error = otherHandle.getParamI32(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamI32(otherVal) ); + } + case TYPE_I64 : + { + int64_t otherVal; + error = otherHandle.getParamI64(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamI64(otherVal) ); + } + + case TYPE_U8 : + { + uint8_t otherVal; + error = otherHandle.getParamU8(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamU8(otherVal) ); + } + case TYPE_U16 : + { + uint16_t otherVal; + error = otherHandle.getParamU16(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamU16(otherVal) ); + } + case TYPE_U32 : + { + uint32_t otherVal; + error = otherHandle.getParamU32(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamU32(otherVal) ); + } + case TYPE_U64 : + { + uint64_t otherVal; + error = otherHandle.getParamU64(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamU64(otherVal) ); + } + + case TYPE_F32 : + { + float otherVal; + error = otherHandle.getParamF32(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamF32(otherVal) ); + } + case TYPE_F64 : + { + double otherVal; + error = otherHandle.getParamF64(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamF64(otherVal) ); + } + + case TYPE_VEC2 : + { + physx::PxVec2 otherVal; + error = otherHandle.getParamVec2(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamVec2(otherVal) ); + } + case TYPE_VEC3 : + { + physx::PxVec3 otherVal; + error = otherHandle.getParamVec3(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamVec3(otherVal) ); + } + case TYPE_VEC4 : + { + physx::PxVec4 otherVal; + error = otherHandle.getParamVec4(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamVec4(otherVal) ); + } + case TYPE_QUAT : + { + physx::PxQuat otherVal; + error = otherHandle.getParamQuat(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamQuat(otherVal) ); + } + case TYPE_MAT33 : + { + physx::PxMat33 otherVal; + error = otherHandle.getParamMat33(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamMat33(otherVal) ); + } + case TYPE_MAT44 : + { + physx::PxMat44 otherVal; + error = otherHandle.getParamMat44(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamMat44(otherVal) ); + } + case TYPE_MAT34 : + { + float otherVal[12]; + error = otherHandle.getParamMat34Legacy(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamMat34Legacy(otherVal) ); + } + case TYPE_BOUNDS3 : + { + physx::PxBounds3 otherVal; + error = otherHandle.getParamBounds3(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamBounds3(otherVal) ); + } + case TYPE_TRANSFORM : + { + physx::PxTransform otherVal; + error = otherHandle.getParamTransform(otherVal); + NV_ERR_CHECK_RETURN( error ); + return( thisHandle.setParamTransform(otherVal) ); + } + case TYPE_STRING: + { + const char *val1; + error = otherHandle.getParamString(val1); + NV_ERR_CHECK_RETURN(error); + return(thisHandle.setParamString(val1)); + } + + case TYPE_ENUM: + { + const char *val1; + error = otherHandle.getParamEnum(val1); + NV_ERR_CHECK_RETURN(error); + return val1 ? thisHandle.setParamEnum(val1) : ERROR_NONE; + } + + case TYPE_REF: + { + NvParameterized::Interface *thisRef, *otherRef; + error = thisHandle.getParamRef(thisRef); + NV_ERR_CHECK_RETURN(error); + + error = otherHandle.getParamRef(otherRef); + NV_ERR_CHECK_RETURN(error); + + if(thisRef) + { + thisRef->destroy(); + thisHandle.setParamRef(NULL); + } + + if(otherRef) + { + error = thisHandle.initParamRef(otherRef->className(), true); + NV_ERR_CHECK_RETURN(error); + + error = thisHandle.getParamRef(thisRef); + NV_ERR_CHECK_RETURN(error); + + if(thisRef == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_PARAMETER_HANDLE_NOT_INITIALIZED"); + return(ERROR_PARAMETER_HANDLE_NOT_INITIALIZED); + } + + return(thisRef->copy(*otherRef)); + } + } + break; + + case TYPE_POINTER: + //Just don't do anything with pointers + break; + + NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS + default: + PX_ALWAYS_ASSERT(); + break; + } + + return ERROR_NONE; +} + +bool NvParameters::areParamsOK(Handle &handle, Handle *invalidHandles, uint32_t numInvalidHandles, uint32_t &numRemainingHandles) +{ + class Constraints + { + const Hint *min, *max, *multOf, *powOf; + + static int64_t abs(int64_t x) + { + return x >= 0 ? x : -x; + } + + public: + Constraints(const Hint *min_, const Hint *max_, const Hint *multOf_, const Hint *powOf_): + min(min_), max(max_), multOf(multOf_), powOf(powOf_) {} + + bool isOK(uint64_t val) + { + bool res = true; + + if( min ) + res = res && val >= min->asUInt(); + + if( max ) + res = res && val <= max->asUInt(); + + if( multOf ) + res = res && 0 == val % multOf->asUInt(); + + if( powOf ) + { + //TODO: this is too slow + uint64_t base = powOf->asUInt(), acc = 1; + while( acc < val ) + acc *= base; + res = res && acc == base; + } + + return res; + } + + bool isOK(int64_t val) + { + bool res = true; + + if( min ) + res = res && val >= int64_t(min->asUInt()); + + if( max ) + res = res && val <= int64_t(max->asUInt()); + + if( multOf ) + res = res && 0 == val % int64_t(multOf->asUInt()); + + if( powOf ) + { + //TODO: this is too slow + int64_t base = int64_t(powOf->asUInt()), acc = 1; + while( abs(acc) < val ) + acc *= base; + res = res && abs(acc) == base; + } + + return res; + } + + bool isOK(float val) + { + bool res = true; + + if( min ) + res = res && val >= float(min->asFloat()); + + if( max ) + res = res && val <= float(max->asFloat()); + + if( multOf ) + res = res && 0.0f == (float)fmod(val, float(multOf->asFloat())); + + //TODO + if( powOf) + { + PX_ALWAYS_ASSERT(); + return false; + } + + return res; + } + + bool isOK(double val) + { + bool res = true; + + if( min ) + res = res && val >= min->asFloat(); + + if( max ) + res = res && val <= max->asFloat(); + + if( multOf ) + res = res && 0.0f == (float)fmod((float)val, (float)multOf->asFloat()); + + //TODO + if( powOf ) + { + PX_ALWAYS_ASSERT(); + return false; + } + + return res; + } + }; + + bool res = true; + + const Definition *pd = handle.parameterDefinition(); + + Constraints con(pd->hint("min"), pd->hint("max"), pd->hint("multipleOf"), pd->hint("powerOf")); + + switch( pd->type() ) + { + case TYPE_STRUCT: + { + for(int32_t i = 0; i < pd->numChildren(); ++i) + { + handle.set(i); + res &= areParamsOK(handle, invalidHandles, numInvalidHandles, numRemainingHandles); + handle.popIndex(); + } + return res; + } + + case TYPE_ARRAY: + { + int32_t arraySize = -1; + NV_BOOL_RETURN( handle.getArraySize(arraySize) ); + + for(int32_t i=0; i < arraySize; ++i) + { + handle.set(i); + res &= areParamsOK(handle, invalidHandles, numInvalidHandles, numRemainingHandles); + handle.popIndex(); + } + return res; + } + + case TYPE_BOOL: + case TYPE_U8: + case TYPE_U16: + case TYPE_U32: + case TYPE_U64: + { + uint64_t val; + NV_BOOL_RETURN( handle.getParamU64(val) ); + res = con.isOK(val); + if( !res && numRemainingHandles > 0 ) + invalidHandles[numRemainingHandles++ - 1] = handle; + return res; + } + + case TYPE_I8: + case TYPE_I16: + case TYPE_I32: + case TYPE_I64: + { + int64_t val; + NV_BOOL_RETURN( handle.getParamI64(val) ); + res = con.isOK(val); + if( !res && numRemainingHandles > 0 ) + invalidHandles[numRemainingHandles++ - 1] = handle; + return res; + } + + case TYPE_F32: + { + float val = -1; + NV_BOOL_RETURN( handle.getParamF32(val) ); + res = con.isOK(val); + if( !res && numRemainingHandles > 0 ) + invalidHandles[numRemainingHandles++ - 1] = handle; + return res; + } + + case TYPE_F64: + { + double val = -1; + NV_BOOL_RETURN( handle.getParamF64(val) ); + res = con.isOK(val); + if( !res && numRemainingHandles > 0 ) + invalidHandles[numRemainingHandles++ - 1] = handle; + return res; + } + + NV_PARAMETRIZED_NO_AGGREGATE_AND_ARITHMETIC_DATATYPE_LABELS + default: + return true; + } +} + +bool NvParameters::equals(const NvParameterized::Interface &obj, + Handle ¶m_handle, + Handle *handlesOfInequality, + uint32_t numHandlesOfInequality, + bool doCompareNotSerialized) const +{ + const Definition *paramDef = param_handle.parameterDefinition(); + + if (!doCompareNotSerialized && paramDef->hint("DONOTSERIALIZE") ) + return true; + + DataType type = paramDef->type(); + switch(type) + { +#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_ ## enum_name: \ + { \ + c_type a; \ + c_type b; \ + param_handle.setInterface(this); \ + NV_BOOL_RETURN( param_handle.getParam ## type_name(a) ); \ + param_handle.setInterface(&obj); \ + NV_BOOL_RETURN( param_handle.getParam ## type_name(b) ); \ + return !notEqual(a, b); \ + } +#include "nvparameterized/NvParameterized_types.h" + + case TYPE_MAT34: + { + float a[12]; + float b[12]; + param_handle.setInterface(this); + NV_BOOL_RETURN( param_handle.getParamMat34Legacy(a) ); + param_handle.setInterface(&obj); + NV_BOOL_RETURN( param_handle.getParamMat34Legacy(b) ); + return !notEqual(a, b); + } + + case TYPE_REF: + { + NvParameterized::Interface *val1, *val2; + + param_handle.setInterface( this ); + if(param_handle.getParamRef(val1) != ERROR_NONE) + return(false); + + param_handle.setInterface( &obj ); + if(param_handle.getParamRef(val2) != ERROR_NONE) + return(false); + + if(val1 == NULL && val2 == NULL) + return(true); + else if(val1 == NULL || val2 == NULL) + return(false); + + return val2->equals( + *val1, + handlesOfInequality != NULL ? handlesOfInequality+1 : NULL, + numHandlesOfInequality > 0 ? numHandlesOfInequality-1 : 0, + doCompareNotSerialized ); + } + + case TYPE_STRUCT: + for(int32_t i = 0; i < paramDef->numChildren(); ++i) + { + param_handle.set(i); + if (!equals(obj, param_handle, handlesOfInequality, numHandlesOfInequality, doCompareNotSerialized)) + return(false); + param_handle.popIndex(); + } + return(true); + + case TYPE_ARRAY: + { + int32_t arraySize1, arraySize2; + + param_handle.setInterface (this); + if (param_handle.getArraySize(arraySize1) != ERROR_NONE) + return(false); + + param_handle.setInterface (&obj); + if (param_handle.getArraySize(arraySize2) != ERROR_NONE) + return(false); + + if(arraySize1 != arraySize2) + return(false); + + if( arraySize1 > 100 && paramDef->isSimpleType(false, false) ) + { + // Large array of simple types, fast path + + switch( type) + { + NV_PARAMETRIZED_NO_ARITHMETIC_AND_LINAL_DATATYPE_LABELS + NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS + default: + // Fall to slow path, including TYPE_MAT34 case + break; + +#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +#define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_ ## enum_name: { \ + uint32_t byteSize = static_cast(sizeof(c_type)) * arraySize1; \ + c_type *data1 = (c_type *)mParameterizedTraits->alloc(byteSize), \ + *data2 = (c_type *)mParameterizedTraits->alloc(byteSize); \ + \ + param_handle.setInterface(this); \ + NV_BOOL_RETURN(param_handle.getParam ## type_name ## Array(data1, arraySize1)); \ + \ + param_handle.setInterface(&obj); \ + NV_BOOL_RETURN(param_handle.getParam ## type_name ## Array(data2, arraySize2)); \ + \ + int ret = memcmp(data1, data2, byteSize); \ + mParameterizedTraits->free(data1); \ + mParameterizedTraits->free(data2); \ + \ + return ret == 0; \ + } +#include "nvparameterized/NvParameterized_types.h" + } + } + + // Array of aggregates, slow path + + param_handle.setInterface(this); + + for (int32_t i = 0; i < arraySize1; ++i) + { + param_handle.set(i); + if (!equals(obj, param_handle, handlesOfInequality, numHandlesOfInequality, doCompareNotSerialized)) + return(false); + param_handle.popIndex(); + } + + return(true); + } + + case TYPE_POINTER: + return true; + +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + PX_ALWAYS_ASSERT(); + break; + } + + return(false); +} + +ErrorType NvParameters::copy(const NvParameterized::Interface &other) +{ + if (this == &other) + { + return(ERROR_NONE); + } + + if (rootParameterDefinition() != other.rootParameterDefinition()) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_PARAMETER_DEFINITIONS_DO_NOT_MATCH"); + return(ERROR_PARAMETER_DEFINITIONS_DO_NOT_MATCH); + } + + // support empty, named references + if (rootParameterDefinition() == NULL) + { + // the name or className could be NULL, strcmp doesn't like NULL strings... + setClassName(other.className()); + setName(other.name()); + return(ERROR_NONE); + } + else + { + Handle handle (*this); + if (getParameterHandle("", handle) != ERROR_NONE) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE"); + return(ERROR_INVALID_PARAMETER_HANDLE); + } + + return(copy(other, handle)); + } +} + +bool NvParameters::areParamsOK(Handle *invalidHandles, uint32_t numInvalidHandles) +{ + Handle handle(*this); + NV_BOOL_RETURN( getParameterHandle("", handle) ); + + uint32_t numRemainingHandles = numInvalidHandles; + return areParamsOK(handle, invalidHandles, numInvalidHandles, numRemainingHandles); +} + +bool NvParameters::equals(const NvParameterized::Interface &obj, Handle* handleOfInequality, uint32_t numHandlesOfInequality, bool doCompareNotSerialized) const +{ + if( this == &obj ) + return(true); + + if(rootParameterDefinition() != obj.rootParameterDefinition()) + return(false); + + // support empty, named references + if(rootParameterDefinition() == NULL) + { + // the name or className could be NULL, strcmp doesn't like NULL strings... + return 0 == safe_strcmp(name(), obj.name()) && 0 == safe_strcmp(className(), obj.className()); + } + + // This should be a handle that can not set any values! + Handle constHandle(*this); + NV_BOOL_RETURN( getParameterHandle("", constHandle) ); + + bool theSame = equals(obj, constHandle, handleOfInequality, numHandlesOfInequality, doCompareNotSerialized); + + if (!theSame && numHandlesOfInequality > 0) + *handleOfInequality = constHandle; + + return theSame; +} + +ErrorType NvParameters::valueToStr(const Handle &handle, + char *buf, + uint32_t n, + const char *&ret) +{ + PX_ASSERT(buf != NULL); + PX_ASSERT(n > 0); + + if(!handle.isValid()) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_PARAMETER_HANDLE"); + return(ERROR_INVALID_PARAMETER_HANDLE); + } + + const Definition *paramDef = handle.parameterDefinition(); + + ErrorType error = ERROR_TYPE_NOT_SUPPORTED; + + switch(paramDef->type()) + { + case TYPE_VEC2: + { + physx::PxVec2 val; + if ((error = getParamVec2(handle, val)) == ERROR_NONE) + { + char f[2][physx::PxAsc::PxF32StrLen]; + physx::shdfnd::snprintf(buf, n,"%s %s", + physx::PxAsc::valueToStr(val.x, f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.y, f[1], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_VEC3: + { + physx::PxVec3 val; + if ((error = getParamVec3(handle, val)) == ERROR_NONE) + { + char f[3][physx::PxAsc::PxF32StrLen]; + physx::shdfnd::snprintf(buf, n,"%s %s %s", + physx::PxAsc::valueToStr(val.x, f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.y, f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.z, f[2], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_VEC4: + { + physx::PxVec4 val; + if ((error = getParamVec4(handle, val)) == ERROR_NONE) + { + char f[4][physx::PxAsc::PxF32StrLen]; + physx::shdfnd::snprintf(buf, n,"%s %s %s %s", + physx::PxAsc::valueToStr(val.x, f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.y, f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.z, f[2], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.w, f[3], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_QUAT: + { + physx::PxQuat val; + if ((error = getParamQuat(handle, val)) == ERROR_NONE) + { + float quat[4]; + //val.getXYZW(quat); + quat[0] = val.x; quat[1] = val.y; quat[2] = val.z; quat[3] = val.w; + char f[4][physx::PxAsc::PxF32StrLen]; + physx::shdfnd::snprintf(buf, n,"%s %s %s %s", + physx::PxAsc::valueToStr(quat[0], f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(quat[1], f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(quat[2], f[2], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(quat[3], f[3], physx::PxAsc::PxF32StrLen)); + + ret = buf; + } + } + break; + case TYPE_MAT33: + { + physx::PxMat33 val; + if ((error = getParamMat33(handle, val)) == ERROR_NONE) + { + char f[9][physx::PxAsc::PxF32StrLen]; + const float *vals = val.front(); + physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s %s %s", + physx::PxAsc::valueToStr(vals[0], f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[1], f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[2], f[2], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[3], f[3], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[4], f[4], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[5], f[5], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[6], f[6], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[7], f[7], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[8], f[8], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_MAT44: + { + physx::PxMat44 val; + if ((error = getParamMat44(handle, val)) == ERROR_NONE) + { + char f[16][physx::PxAsc::PxF32StrLen]; + const float *vals = val.front(); + physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s %s %s %s %s %s %s %s %s %s", + physx::PxAsc::valueToStr(vals[0], f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[1], f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[2], f[2], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[3], f[3], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[4], f[4], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[5], f[5], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[6], f[6], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[7], f[7], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[8], f[8], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[9], f[9], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[10], f[10], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[11], f[11], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[12], f[12], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[13], f[13], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[14], f[14], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[15], f[15], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_MAT34: + { + float vals[12]; + if ((error = getParamMat34Legacy(handle, vals)) == ERROR_NONE) + { + char f[16][physx::PxAsc::PxF32StrLen]; + physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s %s %s %s %s %s", + physx::PxAsc::valueToStr(vals[0], f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[1], f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[2], f[2], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[3], f[3], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[4], f[4], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[5], f[5], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[6], f[6], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[7], f[7], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[8], f[8], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[9], f[9], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[10], f[10], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(vals[11], f[11], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_BOUNDS3: + { + char f[6][physx::PxAsc::PxF32StrLen]; + physx::PxBounds3 val; + if ((error = getParamBounds3(handle, val)) == ERROR_NONE) + { + physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s ", + physx::PxAsc::valueToStr(val.minimum.x, f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.minimum.y, f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.minimum.z, f[2], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.maximum.x, f[3], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.maximum.y, f[4], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.maximum.z, f[5], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_TRANSFORM: + { + char f[7][physx::PxAsc::PxF32StrLen]; + physx::PxTransform val; + if ((error = getParamTransform(handle, val)) == ERROR_NONE) + { + physx::shdfnd::snprintf(buf, n,"%s %s %s %s %s %s %s ", + physx::PxAsc::valueToStr(val.q.x, f[0], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.q.y, f[1], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.q.z, f[2], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.q.w, f[3], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.p.x, f[4], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.p.y, f[5], physx::PxAsc::PxF32StrLen), + physx::PxAsc::valueToStr(val.p.z, f[6], physx::PxAsc::PxF32StrLen)); + ret = buf; + } + } + break; + case TYPE_UNDEFINED: + case TYPE_ARRAY: + case TYPE_STRUCT: + break; + case TYPE_STRING: + error = getParamString(handle, ret); + break; + case TYPE_ENUM: + error = getParamEnum(handle, ret); + break; + case TYPE_REF: + { + const Hint *hint = paramDef->hint("INCLUDED"); + if( hint && hint->type() != TYPE_U64 ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INVALID_REFERENCE_INCLUDE_HINT"); + return(ERROR_INVALID_REFERENCE_INCLUDE_HINT); + } + + if( hint != NULL && hint->asUInt() == 1 ) + { + // included, output the entire struct + } + else + { + //not included, get the "name" from the NvParameterized pointer + NvParameterized::Interface *paramPtr = 0; + ErrorType err = getParamRef(handle, paramPtr); + PX_ASSERT(err == ERROR_NONE); + + if(err != ERROR_NONE) + { + return err; + } + + ret = NULL; + if(paramPtr) + { + ret = paramPtr->name(); + } + } + error = ERROR_NONE; + } + break; + case TYPE_BOOL: + { + bool val; + if ((error = getParamBool(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_I8: + { + int8_t val; + if ((error = getParamI8(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_I16: + { + int16_t val; + if ((error = getParamI16(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_I32: + { + int32_t val; + if ((error = getParamI32(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_I64: + { + int64_t val; + if ((error = getParamI64(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_U8: + { + uint8_t val; + if ((error = getParamU8(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_U16: + { + uint16_t val; + if ((error = getParamU16(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_U32: + { + uint32_t val; + if ((error = getParamU32(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_U64: + { + uint64_t val; + if ((error = getParamU64(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_F32: + { + float val; + if ((error = getParamF32(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + case TYPE_F64: + { + double val; + if ((error = getParamF64(handle, val)) == ERROR_NONE) + { + ret = physx::PxAsc::valueToStr(val, buf, n); + } + } + break; + + // Make compiler happy + case TYPE_POINTER: + case TYPE_LAST: + break; + } + + PX_ASSERT(error == ERROR_NONE); + + return error; +} + +ErrorType NvParameters::strToValue(Handle &handle, const char *str, const char **endptr) // assigns this string to the value +{ + ErrorType ret = ERROR_NONE; + + const Definition *pd = handle.parameterDefinition(); + + switch ( pd->type() ) + { + case TYPE_UNDEFINED: + case TYPE_ARRAY: + case TYPE_STRUCT: ret = ERROR_TYPE_NOT_SUPPORTED; break; + + case TYPE_STRING: ret = setParamString(handle,str); break; + case TYPE_ENUM: ret = setParamEnum(handle,str); break; + case TYPE_REF: ret = ERROR_TYPE_NOT_SUPPORTED; break; + case TYPE_BOOL: ret = setParamBool(handle,physx::PxAsc::strToBool(str, endptr)); break; + case TYPE_I8: ret = setParamI8(handle,physx::PxAsc::strToI8(str, endptr)); break; + case TYPE_I16: ret = setParamI16(handle,physx::PxAsc::strToI16(str, endptr)); break; + case TYPE_I32: ret = setParamI32(handle,physx::PxAsc::strToI32(str, endptr)); break; + case TYPE_I64: ret = setParamI64(handle,physx::PxAsc::strToI64(str, endptr)); break; + case TYPE_U8: ret = setParamU8(handle,physx::PxAsc::strToU8(str, endptr)); break; + case TYPE_U16: ret = setParamU16(handle,physx::PxAsc::strToU16(str, endptr)); break; + case TYPE_U32: ret = setParamU32(handle,physx::PxAsc::strToU32(str, endptr)); break; + case TYPE_U64: ret = setParamU64(handle,physx::PxAsc::strToU64(str, endptr)); break; + case TYPE_F32: ret = setParamF32(handle,physx::PxAsc::strToF32(str, endptr)); break; + case TYPE_F64: ret = setParamF64(handle,physx::PxAsc::strToF64(str, endptr)); break; + case TYPE_VEC2: ret = setParamVec2(handle,getVec2(str, endptr)); break; + case TYPE_VEC3: ret = setParamVec3(handle,getVec3(str, endptr)); break; + case TYPE_VEC4: ret = setParamVec4(handle,getVec4(str, endptr)); break; + case TYPE_QUAT: ret = setParamQuat(handle,getQuat(str, endptr)); break; + case TYPE_MAT33: ret = setParamMat33(handle,getMat33(str, endptr)); break; + case TYPE_MAT34: + { + float f[12]; + getMat34Legacy(str, endptr, f); + ret = setParamMat34Legacy(handle,f); + break; + } + case TYPE_MAT44: ret = setParamMat44(handle,getMat44(str, endptr)); break; + case TYPE_BOUNDS3: ret = setParamBounds3(handle,getBounds3(str, endptr)); break; + case TYPE_TRANSFORM: ret = setParamTransform(handle,getTransform(str, endptr)); break; + +NV_PARAMETRIZED_SERVICE_AND_LAST_DATATYPE_LABELS + default: ret = ERROR_TYPE_NOT_SUPPORTED; break; + } + + PX_ASSERT(ret == ERROR_NONE); + + return ret; +} + +physx::PxVec2 NvParameters::getVec2(const char *str, const char **endptr) +{ + physx::PxVec2 ret(0,0); + physx::PxAsc::strToF32s(&ret.x,2,str,endptr); + + return ret; +} + +physx::PxVec3 NvParameters::getVec3(const char *str, const char **endptr) +{ + physx::PxVec3 ret(0,0,0); + physx::PxAsc::strToF32s(&ret.x,3,str,endptr); + + return ret; +} + +physx::PxVec4 NvParameters::getVec4(const char *str, const char **endptr) +{ + physx::PxVec4 ret(0,0,0,0); + physx::PxAsc::strToF32s(&ret.x,4,str,endptr); + + return ret; +} + +physx::PxQuat NvParameters::getQuat(const char *str, const char **endptr) +{ + physx::PxQuat ret; + //ret.identity(); + float quat[4]; + //ret.getXYZW(quat); + physx::PxAsc::strToF32s(quat,4,str,endptr); + //ret.setXYZW(quat); + ret = physx::PxQuat(quat[0], quat[1], quat[2], quat[3]); + + return ret; +} + +physx::PxMat33 NvParameters::getMat33(const char *str, const char **endptr) +{ + physx::PxMat33 ret; + float *vals = const_cast(ret.front()); + physx::PxAsc::strToF32s(vals,9,str,endptr); + return ret; +} + +physx::PxMat44 NvParameters::getMat44(const char *str, const char **endptr) +{ + physx::PxMat44 ret; + float *vals = const_cast(ret.front()); + physx::PxAsc::strToF32s(vals,16,str,endptr); + return ret; +} + +void NvParameters::getMat34Legacy(const char *str, const char **endptr, float (&val)[12]) +{ + physx::PxAsc::strToF32s(val,12,str,endptr); +} + +physx::PxBounds3 NvParameters::getBounds3(const char *str, const char **endptr) +{ + physx::PxBounds3 ret; + ret.setEmpty(); + physx::PxAsc::strToF32s(&ret.minimum.x,6,str,endptr); + return ret; +} + +//****************************************************************************** +//*** Vec2 +//****************************************************************************** + +ErrorType NvParameters::setParamVec2(const Handle &handle, const physx::PxVec2 &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_VEC2) + { + return rawSetParamVec2(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamVec2(const Handle &handle, physx::PxVec2 &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_VEC2) + { + return rawGetParamVec2(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamVec2Array(const Handle &handle, physx::PxVec2 *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(VEC2) + return(rawGetParamVec2Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(VEC2) + CHECK_F32_FINITE_ARRAY + return(rawSetParamVec2Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Vec3 +//****************************************************************************** + +ErrorType NvParameters::setParamVec3(const Handle &handle, const physx::PxVec3 &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_VEC3) + { + return rawSetParamVec3(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamVec3(const Handle &handle, physx::PxVec3 &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_VEC3) + { + return rawGetParamVec3(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamVec3Array(const Handle &handle, physx::PxVec3 *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(VEC3) + return(rawGetParamVec3Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(VEC3) + CHECK_F32_FINITE_ARRAY + return(rawSetParamVec3Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Vec4 +//****************************************************************************** + +ErrorType NvParameters::setParamVec4(const Handle &handle, const physx::PxVec4 &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_VEC4) + { + return rawSetParamVec4(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamVec4(const Handle &handle, physx::PxVec4 &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_VEC4) + { + return rawGetParamVec4(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamVec4Array(const Handle &handle, physx::PxVec4 *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(VEC4) + return(rawGetParamVec4Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(VEC4) + CHECK_F32_FINITE_ARRAY + return(rawSetParamVec4Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Quat +//****************************************************************************** + +ErrorType NvParameters::setParamQuat(const Handle &handle, const physx::PxQuat &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_QUAT) + { + return rawSetParamQuat(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamQuat(const Handle &handle, physx::PxQuat &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_QUAT) + { + return rawGetParamQuat(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamQuatArray(const Handle &handle, physx::PxQuat *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(QUAT) + return(rawGetParamQuatArray(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(QUAT) + CHECK_F32_FINITE_ARRAY + return(rawSetParamQuatArray(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Mat33 +//****************************************************************************** + +ErrorType NvParameters::setParamMat33(const Handle &handle, const physx::PxMat33 &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_MAT33) + { + return rawSetParamMat33(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamMat33(const Handle &handle, physx::PxMat33 &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_MAT33) + { + return rawGetParamMat33(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamMat33Array(const Handle &handle, physx::PxMat33 *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(MAT33) + return(rawGetParamMat33Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(MAT33) + CHECK_F32_FINITE_ARRAY + return(rawSetParamMat33Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Mat34Legacy +//****************************************************************************** + +ErrorType NvParameters::setParamMat34Legacy(const Handle &handle, const float (&val)[12]) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_MAT34) + { + return rawSetParamMat34Legacy(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamMat34Legacy(const Handle &handle, float (&val)[12]) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_MAT34) + { + return rawGetParamMat34Legacy(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(MAT34) + return(rawGetParamMat34LegacyArray(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(MAT34) + CHECK_F32_FINITE_ARRAY + return(rawSetParamMat34LegacyArray(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Mat44 +//****************************************************************************** + +ErrorType NvParameters::setParamMat44(const Handle &handle, const physx::PxMat44 &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_MAT44) + { + return rawSetParamMat44(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamMat44(const Handle &handle, physx::PxMat44 &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_MAT44) + { + return rawGetParamMat44(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamMat44Array(const Handle &handle, physx::PxMat44 *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(MAT44) + return(rawGetParamMat44Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(MAT44) + CHECK_F32_FINITE_ARRAY + return(rawSetParamMat44Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Bounds3 +//****************************************************************************** + +ErrorType NvParameters::setParamBounds3(const Handle &handle, const physx::PxBounds3 &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_BOUNDS3) + { + return rawSetParamBounds3(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamBounds3(const Handle &handle, physx::PxBounds3 &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_BOUNDS3) + { + return rawGetParamBounds3(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamBounds3Array(const Handle &handle, physx::PxBounds3 *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(BOUNDS3) + return(rawGetParamBounds3Array(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(BOUNDS3) + CHECK_F32_FINITE_ARRAY + return(rawSetParamBounds3Array(handle, array, n, offset)); +} + +//****************************************************************************** +//*** Transform +//****************************************************************************** + +ErrorType NvParameters::setParamTransform(const Handle &handle, const physx::PxTransform &val) +{ + CHECK_HANDLE + CHECK_F32_FINITE + + if(handle.parameterDefinition()->type() == TYPE_TRANSFORM) + { + return rawSetParamTransform(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamTransform(const Handle &handle, physx::PxTransform &val) const +{ + CHECK_HANDLE + + if(handle.parameterDefinition()->type() == TYPE_TRANSFORM) + { + return rawGetParamTransform(handle, val); + } + + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_CAST_FAILED"); + return(ERROR_CAST_FAILED); +} + +ErrorType NvParameters::getParamTransformArray(const Handle &handle, physx::PxTransform *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(TRANSFORM) + return(rawGetParamTransformArray(handle, array, n, offset)); +} + +ErrorType NvParameters::setParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset) +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(TRANSFORM) + CHECK_F32_FINITE_ARRAY + return(rawSetParamTransformArray(handle, array, n, offset)); +} + +physx::PxTransform NvParameters::getTransform(const char *str, const char **endptr) +{ + physx::PxTransform ret; + physx::PxAsc::strToF32s((float*)&ret,7,str,endptr); + return ret; +} + + +//*********************************************** +physx::PxVec2 NvParameters::init(float x,float y) +{ + physx::PxVec2 ret(x,y); + return ret; +} + +physx::PxVec3 NvParameters::init(float x,float y,float z) +{ + physx::PxVec3 ret(x,y,z); + return ret; +} + +physx::PxVec4 NvParameters::initVec4(float x,float y,float z,float w) +{ + physx::PxVec4 ret(x,y,z,w); + return ret; +} + +physx::PxQuat NvParameters::init(float x,float y,float z,float w) +{ + physx::PxQuat ret; + //ret.setXYZW(x,y,z,w); + ret = physx::PxQuat(x,y,z,w); + return ret; +} + +physx::PxMat33 NvParameters::init(float _11,float _12,float _13,float _21,float _22,float _23,float _31,float _32,float _33) +{ + physx::PxMat33 ret; + + ret.column0.x = _11; + ret.column0.y = _21; + ret.column0.z = _31; + + ret.column1.x = _12; + ret.column1.y = _22; + ret.column1.z = _32; + + ret.column2.x = _13; + ret.column2.y = _23; + ret.column2.z = _33; + + return ret; +} + +physx::PxMat44 NvParameters::init(float _11,float _12,float _13,float _14,float _21,float _22,float _23,float _24,float _31,float _32,float _33,float _34,float _41,float _42,float _43,float _44) +{ + physx::PxMat44 ret; + + ret.column0.x = _11; + ret.column0.y = _21; + ret.column0.z = _31; + ret.column0.w = _41; + + ret.column1.x = _12; + ret.column1.y = _22; + ret.column1.z = _32; + ret.column1.w = _42; + + ret.column2.x = _13; + ret.column2.y = _23; + ret.column2.z = _33; + ret.column2.w = _43; + + ret.column3.x = _14; + ret.column3.y = _24; + ret.column3.z = _34; + ret.column3.w = _44; + + return ret; +} + +physx::PxTransform NvParameters::init(float x,float y,float z,float qx,float qy,float qz,float qw) +{ + return physx::PxTransform(physx::PxVec3(x,y,z), physx::PxQuat(qx,qy,qz,qw)); +} + + +physx::PxBounds3 NvParameters::init(float minx,float miny,float minz,float maxx,float maxy,float maxz) +{ + physx::PxBounds3 ret; + ret.minimum = physx::PxVec3(minx,miny,minz); + ret.maximum = physx::PxVec3(maxx,maxy,maxz); + return ret; +} + + + +int32_t NvParameters::MultIntArray(const int32_t *array, int32_t n) +{ + PX_ASSERT(array != NULL); + PX_ASSERT(n > 0); + + int32_t ret = array[0]; + + for(int32_t i=1; i < n; ++i) + ret *= array[i]; + + return(ret); +} + + +ErrorType NvParameters::resizeArray(Traits *parameterizedTraits, + void *&buf, + int32_t *array_sizes, + int32_t dimension, + int32_t resize_dim, + int32_t new_size, + bool doFree, + int32_t element_size, + uint32_t element_align, + bool &isMemAllocated) +{ + PX_ASSERT(array_sizes != NULL); + PX_ASSERT(dimension > 0); + PX_ASSERT(resize_dim >= 0 && resize_dim < dimension); + PX_ASSERT(new_size >= 0); + PX_ASSERT(element_size > 0 ); + + if(array_sizes[resize_dim] == new_size) + return(ERROR_NONE); //isMemAllocated is unchanged + + int32_t newSizes[Handle::MAX_DEPTH]; + physx::intrinsics::memCopy(newSizes, array_sizes, dimension * sizeof(int32_t)); + + newSizes[resize_dim] = new_size; + + int32_t currentNumElems = MultIntArray(array_sizes, dimension); + int32_t newNumElems = MultIntArray(newSizes, dimension); + + if(newNumElems <= 0) + { + if(buf != NULL && doFree) + parameterizedTraits->free(buf); + + buf = NULL; + goto no_error; + } + + if(buf == NULL) + { + PX_ASSERT(element_size * newNumElems >= 0); + if((buf = allocAligned(parameterizedTraits, static_cast(element_size * newNumElems), element_align)) == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_MEMORY_ALLOCATION_FAILURE"); + return(ERROR_MEMORY_ALLOCATION_FAILURE); + } + + isMemAllocated = true; + + //initialize the array to 0's (for strings) + physx::intrinsics::memZero(buf, uint32_t(element_size * newNumElems)); + + goto no_error; + } + + if(resize_dim == 0) + { + void *newBuf; + char *newBufDataStart; + int32_t newBufDataSize; + + PX_ASSERT(element_size * newNumElems >= 0); + // alloc new buffer + if((newBuf = allocAligned(parameterizedTraits, static_cast(element_size * newNumElems), element_align)) == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_MEMORY_ALLOCATION_FAILURE"); + return(ERROR_MEMORY_ALLOCATION_FAILURE); + } + + isMemAllocated = true; + + // copy existing data to new buffer + if(newNumElems < currentNumElems) + physx::intrinsics::memCopy(newBuf, buf, uint32_t(element_size * newNumElems)); + else + physx::intrinsics::memCopy(newBuf, buf, uint32_t(element_size * currentNumElems)); + + // zero the new part of the array + if(newNumElems > currentNumElems) + { + newBufDataStart = (char *)newBuf + (currentNumElems * element_size); + newBufDataSize = (newNumElems - currentNumElems) * element_size; + + PX_ASSERT(newBufDataSize >= 0); + memset(newBufDataStart, 0, static_cast(newBufDataSize)); + } + + if( doFree ) + parameterizedTraits->free(buf); + buf = newBuf; + } + else + { + PX_ASSERT(element_size * newNumElems >= 0); + void *newBuf = allocAligned(parameterizedTraits, static_cast(element_size * newNumElems), element_align); + if(newBuf == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_MEMORY_ALLOCATION_FAILURE"); + return(ERROR_MEMORY_ALLOCATION_FAILURE); + } + + isMemAllocated = true; + + //initialize the array to 0's (for strings) + physx::intrinsics::memSet(newBuf, 0U, uint32_t(element_size * newNumElems)); + recursiveCopy(buf, array_sizes, newBuf, newSizes, dimension, element_size); + + if( doFree ) + parameterizedTraits->free(buf); + buf = newBuf; + } + + +no_error: + + array_sizes[resize_dim] = new_size; + return(ERROR_NONE); +} + +void NvParameters::recursiveCopy(const void *src, + const int32_t *src_sizes, + void *dst, + const int32_t *dst_sizes, + int32_t dimension, + int32_t element_size, + int32_t *indexes, + int32_t level) +{ + int32_t srcSize = src_sizes[level]; + int32_t dstSize = dst_sizes[level]; + + int32_t size = physx::PxMin(srcSize, dstSize); + + int32_t indexStore[Handle::MAX_DEPTH]; + + if(indexes == NULL) + { + indexes = indexStore; + memset(indexes, 0, Handle::MAX_DEPTH * sizeof(int32_t)); + } + + if(level == dimension - 1) + { + int32_t srcIndex = indexes[0]; + int32_t dstIndex = indexes[0]; + + for(int32_t i=1; i < dimension; ++i) + { + srcIndex = src_sizes[i] * (srcIndex) + indexes[i]; + dstIndex = dst_sizes[i] * (dstIndex) + indexes[i]; + } + + char *copy_dst = (char *)dst + dstIndex * element_size; + char *copy_src = (char *)src + srcIndex * element_size; + PX_ASSERT(element_size * size > 0); + physx::intrinsics::memCopy(copy_dst, copy_src, uint32_t(element_size * size)); + return; + } + + for(int32_t i=0; i < size; ++i) + { + indexes[level] = i; + recursiveCopy(src, src_sizes, dst, dst_sizes, dimension, element_size, indexes, level + 1); + } +} + +ErrorType NvParameters::getParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(U8) + return(rawGetParamArray(handle, array, n, offset,this)); +} + +ErrorType NvParameters::getParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset) const +{ + CHECK_HANDLE + CHECK_IS_SIMPLE_ARRAY(F64) + return(rawGetParamArray(handle, array, n, offset,this)); +} + + + + +ErrorType NvParameters::rawSetParamBool(const Handle &handle, bool val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamBool(const Handle &handle, bool &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamString(const Handle &handle, const char *&val) const +{ + size_t offset; + void *ptr=NULL; + getVarPtr(handle, ptr, offset); + if ( ptr == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); + return ERROR_TYPE_NOT_SUPPORTED; + } + + DummyStringStruct *var = (DummyStringStruct *)(char *)ptr; + val = var->buf; + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSetParamString(const Handle &handle, const char *val) +{ + size_t offset; + void *ptr=NULL; + getVarPtr(handle, ptr, offset); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + DummyStringStruct *var = (DummyStringStruct *)(char *)ptr; + if( var->isAllocated ) + { + getTraits()->strfree((char *)var->buf); + } + + var->buf = getTraits()->strdup(val); + var->isAllocated = true; + + return(ERROR_NONE); +} + +ErrorType NvParameters::rawGetParamEnum(const Handle &handle, const char *&val) const +{ + size_t offset; + void *ptr=NULL; + getVarPtr(handle, ptr, offset); + if ( ptr == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); + return ERROR_TYPE_NOT_SUPPORTED; + } + const char * *var = (const char * *)((char *)ptr); + val = *var; + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSetParamEnum(const Handle &handle, const char *val) +{ + size_t offset; + void *ptr=NULL; + getVarPtr(handle, ptr, offset); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + const char * *Var = (const char * *)((char *)ptr); + *Var = val; + return(ERROR_NONE); +} + +ErrorType NvParameters::rawGetParamRef(const Handle &handle, NvParameterized::Interface *&val) const +{ + size_t offset; + void *ptr=NULL; + getVarPtr(handle, ptr, offset); + if ( ptr == NULL ) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_TYPE_NOT_SUPPORTED"); + return ERROR_TYPE_NOT_SUPPORTED; + } + + NvParameterized::Interface * *var = (NvParameterized::Interface * *)((char *)ptr); + val = *var; + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSetParamRef(const Handle &handle, NvParameterized::Interface * val) +{ + size_t offset; + void *ptr=NULL; + getVarPtr(handle, ptr, offset); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + NvParameterized::Interface * *Var = (NvParameterized::Interface * *)((char *)ptr); + *Var = val; + return(ERROR_NONE); +} + +ErrorType NvParameters::rawGetParamI8(const Handle &handle, int8_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamI8(const Handle &handle, int8_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamI8Array(const Handle &handle, const int8_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamI16(const Handle &handle, int16_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamI16(const Handle &handle, int16_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamI16Array(const Handle &handle, const int16_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamI32(const Handle &handle, int32_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamI32(const Handle &handle, int32_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamI32Array(const Handle &handle, const int32_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamI64(const Handle &handle, int64_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamI64(const Handle &handle, int64_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamI64Array(const Handle &handle, const int64_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawGetParamU8(const Handle &handle, uint8_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamU8(const Handle &handle, uint8_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamU8Array(const Handle &handle, const uint8_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamU16(const Handle &handle, uint16_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamU16(const Handle &handle, uint16_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamU32(const Handle &handle, uint32_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamU32(const Handle &handle, uint32_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamU64(const Handle &handle, uint64_t val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamU64(const Handle &handle, uint64_t &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamF32(const Handle &handle, float &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamF32(const Handle &handle, float val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawGetParamF64(const Handle &handle, double &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawSetParamF64(const Handle &handle, double val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamVec2(const Handle &handle,physx::PxVec2 val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamVec2(const Handle &handle,physx::PxVec2 &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamVec2Array(const Handle &handle,physx::PxVec2 *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamVec3(const Handle &handle,physx::PxVec3 val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamVec3(const Handle &handle,physx::PxVec3 &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamVec3Array(const Handle &handle,physx::PxVec3 *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamVec4(const Handle &handle,physx::PxVec4 val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamVec4(const Handle &handle,physx::PxVec4 &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamVec4Array(const Handle &handle,physx::PxVec4 *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamQuat(const Handle &handle,physx::PxQuat val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamQuat(const Handle &handle,physx::PxQuat &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamQuatArray(const Handle &handle,physx::PxQuat *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamMat33(const Handle &handle,physx::PxMat33 val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamMat33(const Handle &handle,physx::PxMat33 &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamMat33Array(const Handle &handle,physx::PxMat33 *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamMat34Legacy(const Handle &handle, const float (&val)[12]) +{ + Handle memberHandle(handle); + + size_t tmp; + void *ptr = NULL; + this->getVarPtr(memberHandle, ptr, tmp); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + physx::intrinsics::memCopy(ptr, val, 12 * sizeof(float)); + +#if APEX_UE4 + // swap raw-column major + swap(static_cast(ptr)[1], static_cast(ptr)[3]); + swap(static_cast(ptr)[2], static_cast(ptr)[6]); + swap(static_cast(ptr)[5], static_cast(ptr)[7]); +#endif + return(ERROR_NONE); +} + +ErrorType NvParameters::rawGetParamMat34Legacy(const Handle &handle, float (&val)[12]) const +{ + Handle memberHandle(handle); + + size_t tmp; + void *ptr = NULL; + this->getVarPtr(memberHandle, ptr, tmp); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + physx::intrinsics::memCopy(val, ptr, 12 * sizeof(float)); + + return(ERROR_NONE); +} + +ErrorType NvParameters::rawGetParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset) const +{ + if( n ) + { + Handle memberHandle(handle); + NV_ERR_CHECK_RETURN(memberHandle.set(offset * 12)); + + size_t tmp; + void *ptr = NULL; + this->getVarPtr(memberHandle, ptr, tmp); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + physx::intrinsics::memCopy(array, ptr, 12 * n * sizeof(float)); + } + + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSetParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset) +{ + if( n ) + { + Handle memberHandle(handle); + NV_ERR_CHECK_RETURN(memberHandle.set(offset * 12)); + + size_t tmp; + void *ptr = NULL; + this->getVarPtr(memberHandle, ptr, tmp); + if(ptr == NULL) + { + PX_ASSERT_WITH_MESSAGE(0, "NVPARAMETERIZED.ERROR_INDEX_OUT_OF_RANGE"); + return(ERROR_INDEX_OUT_OF_RANGE); + } + + for (int32_t i = 0; i < n; ++i) + { + float* dst = static_cast(ptr) + 12 * sizeof(float) * i; + const float* src = array + 12 * sizeof(float) * i; + + physx::intrinsics::memCopy(dst, src, 12 * sizeof(float)); +#if APEX_UE4 + swap(dst[1], dst[3]); + swap(dst[2], dst[6]); + swap(dst[5], dst[7]); +#endif + } + } + + return(ERROR_NONE); +} + +ErrorType NvParameters::rawSetParamMat44(const Handle &handle,physx::PxMat44 val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamMat44(const Handle &handle,physx::PxMat44 &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamMat44Array(const Handle &handle,physx::PxMat44 *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + + +ErrorType NvParameters::rawSetParamBounds3(const Handle &handle,physx::PxBounds3 val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamBounds3(const Handle &handle,physx::PxBounds3 &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamBounds3Array(const Handle &handle,physx::PxBounds3 *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamTransform(const Handle &handle,physx::PxTransform val) +{ + return rawSetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamTransform(const Handle &handle,physx::PxTransform &val) const +{ + return rawGetParam(handle,val,this); +} + +ErrorType NvParameters::rawGetParamTransformArray(const Handle &handle,physx::PxTransform *array, int32_t n, int32_t offset) const +{ + return rawGetParamArray(handle,array,n,offset,this); +} + +ErrorType NvParameters::rawSetParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset) +{ + return rawSetParamArray(handle,array,n,offset,this); +} + +void *NvParameters::getVarPtrHelper(const ParamLookupNode *rootNode, void *paramStruct, const Handle &handle, size_t &offset) const +{ + const ParamLookupNode* curNode = rootNode; + + bool hasDynamicArray = false; + offset = curNode->offset; + + void *ptr = const_cast(paramStruct); + for(int32_t i = 0; i < handle.numIndexes(); ++i) + { + int index = handle.index(i); + + if (curNode->type == TYPE_ARRAY) + { + PX_ASSERT(curNode->numChildren); + + if (curNode->isDynamicArrayRoot) + { + ptr = ((DummyDynamicArrayStruct*)ptr)->buf; + hasDynamicArray = true; + if (ptr == NULL) + { + offset = 0; + return 0; + } + } + + // don't get the next curNode until after we've checked that the "parent" is dynamic + curNode = &rootNode[curNode->children[0]]; + + size_t localOffset = index * curNode->offset; + offset += localOffset; + ptr = (char*)ptr + localOffset; + } + else + { + PX_ASSERT(index >= 0 && index < curNode->numChildren); + curNode = &rootNode[curNode->children[index]]; + offset += curNode->offset; + ptr = (char*)ptr + curNode->offset; + } + } + + if (hasDynamicArray) + { + offset = 0; + } + + return ptr; +} + +bool NvParameters::checkAlignments() const +{ + // support empty, named references + if(rootParameterDefinition() == NULL) + { + return IsAligned(this, 8); + } + + Handle constHandle(*this, ""); + if( !constHandle.isValid() ) + { + return false; + } + + return checkAlignments(constHandle); +} + +bool NvParameters::checkAlignments(Handle ¶m_handle) const +{ + const Definition *paramDef = param_handle.parameterDefinition(); + + uint32_t align = paramDef->alignment(); + + bool isDynamicArray = TYPE_ARRAY == paramDef->type() && !paramDef->arraySizeIsFixed(); + + // For dynamic array alignment means alignment of it's first element + if( !isDynamicArray ) + { + size_t offset; + void *ptr; + getVarPtr(param_handle, ptr, offset); + if( align > 0 && !IsAligned(ptr, align) ) + { + return false; + } + } + + switch( paramDef->type() ) + { + case TYPE_STRUCT: + { + for(int32_t i = 0; i < paramDef->numChildren(); ++i) + { + param_handle.set(i); + if( !checkAlignments(param_handle) ) + { + return false; + } + param_handle.popIndex(); + } + break; + } + + case TYPE_REF: + { + Interface *refObj; + if( ERROR_NONE != param_handle.getParamRef(refObj) ) + { + return false; + } + + return 0 == refObj || refObj->checkAlignments(); + } + + case TYPE_ARRAY: + { + int32_t size; + if( ERROR_NONE != param_handle.getArraySize(size) ) + { + return false; + } + + // See comment above + if( isDynamicArray && align > 0 && size > 0 ) + { + param_handle.set(0); + + size_t offset; + void *ptr; + getVarPtr(param_handle, ptr, offset); + if( !IsAligned(ptr, align) ) + { + return false; + } + + param_handle.popIndex(); + } + + bool isSimpleType = paramDef->child(0)->isSimpleType(); + + // Only check for first 10 elements if simple type + size = physx::PxMin(size, isSimpleType ? 10 : INT32_MAX); + + for(int32_t i = 0; i < size; ++i) + { + param_handle.set(i); + if( !checkAlignments(param_handle) ) + { + return false; + } + param_handle.popIndex(); + } + + break; + } + NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS + default: + break; + } + + return(true); +} +} // namespace NvParameterized diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterizedTraits.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterizedTraits.cpp old mode 100644 new mode 100755 index 0cc8357..f9d58eb --- a/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterizedTraits.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/NvParameterizedTraits.cpp @@ -1,363 +1,363 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#include -#include -#include -#include - -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvTraitsInternal.h" -#include "SerializerCommon.h" - -namespace NvParameterized -{ - -class DefaultParamConversion: public Conversion -{ - Traits *mTraits; - RefConversionMode::Enum mRefMode; - - typedef physx::shdfnd::HashMap, Traits::Allocator> MapName2Ver; - MapName2Ver mapName2Ver; - - bool copy(Handle &legacyHandle, Handle &handle) - { - const Definition *pdLegacy = legacyHandle.parameterDefinition(), - *pd = handle.parameterDefinition(); - - if( pdLegacy->type() != pd->type() ) - return true; - - switch( pdLegacy->type() ) - { - case TYPE_STRUCT: - for(int32_t i = 0; i < pdLegacy->numChildren(); ++i) - { - legacyHandle.set(i); - - int32_t j = -1; - if( pd->child(pdLegacy->child(i)->name(), j) ) - { - handle.set(j); - if( !copy(legacyHandle, handle) ) - { - char longName[128]; - legacyHandle.getLongName(longName, sizeof(longName)); - NV_PARAM_TRAITS_WARNING( - mTraits, - "%s: failed to copy legacy data", - longName - ); - - return false; - } - handle.popIndex(); - } - - legacyHandle.popIndex(); - } - break; - - case TYPE_ARRAY: - { - //FIXME: this is too harsh e.g. we can convert static to dynamic - if( pdLegacy->arraySizeIsFixed() != pd->arraySizeIsFixed() ) - return true; - - int32_t size; - if( pdLegacy->arraySizeIsFixed() ) - { - //FIXME: this is too harsh e.g. we may just copy first elements - if( pdLegacy->arraySize() != pd->arraySize() ) - return true; - - size = pd->arraySize(); - } - else - { - if( ERROR_NONE != legacyHandle.getArraySize(size) ) - return false; - - handle.resizeArray(size); - } - - if( size > 100 && pdLegacy->isSimpleType(false, false) && pdLegacy->type() == pd->type() ) - { - // Large array of simple types, fast path - - switch( pdLegacy->type() ) - { - NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS - NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS - default: - // Fall to slow path - break; - -#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -#define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_ ## enum_name: { \ - c_type *data = (c_type *)mTraits->alloc(sizeof(c_type) * size); \ - if( ERROR_NONE != legacyHandle.getParam ## type_name ## Array(data, size) ) return false; \ - if( ERROR_NONE != handle.setParam ## type_name ## Array(data, size) ) return false; \ - mTraits->free(data); \ - break; \ - } -#include "nvparameterized/NvParameterized_types.h" - - } - } - - // Slow path for arrays of aggregates, including TYPE_MAT34 - - for(int32_t i = 0; i < size; ++i) - { - legacyHandle.set(i); - handle.set(i); - - copy(legacyHandle, handle); - - handle.popIndex(); - legacyHandle.popIndex(); - } - - break; - } - - case TYPE_REF: - { - Interface *legacyRefObj; - legacyHandle.getParamRef(legacyRefObj); - - // Skip references which have unsupported classes (keep default version) - if( legacyRefObj && -1 == handle.parameterDefinition()->refVariantValIndex(legacyRefObj->className()) ) - return true; - - Interface *refObj; - handle.getParamRef(refObj); - - switch( mRefMode ) - { - case RefConversionMode::REF_CONVERT_LAST: - default: - DEBUG_ALWAYS_ASSERT(); - break; - - case RefConversionMode::REF_CONVERT_SKIP: - break; - - case RefConversionMode::REF_CONVERT_COPY: - { - // TODO: check that this class is allowed in new version? - - // Update to preferred version if necessary - if( legacyRefObj && pdLegacy->isIncludedRef() ) - { - const char *className = legacyRefObj->className(); - - const MapName2Ver::Entry *e = mapName2Ver.find(pd->longName()); - if( e ) - { - uint32_t prefVer = e->second, - curVer = legacyRefObj->version(); - - if( curVer > prefVer ) - { - NV_PARAM_TRAITS_WARNING( - mTraits, - "Unable to upgrade included reference of class %s, " - "actual version (%u) is higher than preferred version (%u), " - "your conversion may not work properly", - className, - (unsigned)curVer, - (unsigned)prefVer - ); - DEBUG_ALWAYS_ASSERT(); - return false; - } - else if( curVer < prefVer ) - { - Interface *newLegacyRefObj = mTraits->createNvParameterized(className, prefVer); - - if( !mTraits->updateLegacyNvParameterized(*legacyRefObj, *newLegacyRefObj) ) - { - NV_PARAM_TRAITS_WARNING( - mTraits, - "Failed to upgrade reference of class %s to version %u", - className, - (unsigned)prefVer - ); - DEBUG_ALWAYS_ASSERT(); - newLegacyRefObj->destroy(); - return false; - } - - legacyRefObj->destroy(); - legacyRefObj = newLegacyRefObj; - - legacyHandle.setParamRef(legacyRefObj); - } - else - { - // Object has preferred version => do not do anything - } - } - } - - if( ERROR_NONE != handle.setParamRef(legacyRefObj) ) - return true; - - if( ERROR_NONE != legacyHandle.setParamRef(0) ) { //Prevent destruction in legacyObj->destroy() - handle.setParamRef(0); - return false; - } - - if( refObj ) - refObj->destroy(); - - return true; - } - - case RefConversionMode::REF_CONVERT_UPDATE: - { - DEBUG_ASSERT( 0 && "This was not used/tested for a long time" ); - return false; - -/* if( !refObj ) - { - //TODO: do we need to create refObj here? - return false; - } - - if( 0 != strcmp(legacyRefObj->className(), refObj->className()) ) - { - if( NvParameterized::ERROR_NONE != handle.initParamRef(legacyRefObj->className(), true) ) - return false; - - if( NvParameterized::ERROR_NONE != handle.getParamRef(refObj) ) - return false; - } - - if( legacyRefObj->version() != refObj->version() ) - return mTraits->updateLegacyNvParameterized(*legacyRefObj, *refObj); - - //Same version => recursive copy - - Handle refHandle(*refObj, ""); - DEBUG_ASSERT( refHandle.isValid() ); - - Handle legacyRefHandle(*legacyRefObj, ""); - DEBUG_ASSERT( legacyRefHandle.isValid() ); - - return copy(legacyRefHandle, refHandle);*/ - } - } //switch( mRefMode ) - - break; - } - - case TYPE_POINTER: - // do nothing? - break; - - case TYPE_ENUM: - { - const char *val; - legacyHandle.getParamEnum(val); - - int32_t valIdx = handle.parameterDefinition()->enumValIndex(val); - if(-1 != valIdx) - { - const char *canonicVal = handle.parameterDefinition()->enumVal(valIdx); - if( ERROR_NONE != handle.setParamEnum(canonicVal) ) - { - NV_PARAM_TRAITS_WARNING( - mTraits, "Internal error while setting enum value %s", canonicVal ? canonicVal : "" ); - DEBUG_ALWAYS_ASSERT(); - return false; - } - } - - break; - } - -# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name: { c_type val; legacyHandle.getParam##type_name(val); handle.setParam##type_name(val); break; } - - NV_PARAMETERIZED_TYPE(String, STRING, const char *) - -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_MAT34: { float val[12]; legacyHandle.getParamMat34Legacy(val); handle.setParamMat34Legacy(val); break; } - -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - DEBUG_ALWAYS_ASSERT(); - } - - return true; - } - -public: - DefaultParamConversion(Traits *traits, const PrefVer *prefVers, RefConversionMode::Enum refMode) - : mTraits(traits), mRefMode(refMode), mapName2Ver(0, 0.75, Traits::Allocator(traits)) - { - for(; prefVers && prefVers->longName; ++prefVers) - mapName2Ver[prefVers->longName] = prefVers->ver; - } - - bool operator()(NvParameterized::Interface &legacyObj, NvParameterized::Interface &obj) - { - obj.initDefaults(); - - Handle legacyHandle(legacyObj, ""); - DEBUG_ASSERT( legacyHandle.isValid() ); - - Handle handle(obj, ""); - DEBUG_ASSERT( handle.isValid() ); - - return copy(legacyHandle, handle); - } - - void release() - { - this->~DefaultParamConversion(); - mTraits->free(this); - } -}; - -Conversion *internalCreateDefaultConversion(Traits *traits, const PrefVer *prefVers, RefConversionMode::Enum refMode) -{ - void *buf = traits->alloc(sizeof(DefaultParamConversion)); - return PX_PLACEMENT_NEW(buf, DefaultParamConversion)(traits, prefVers, refMode); -} - -}; // end of namespace +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#include +#include +#include +#include + +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvTraitsInternal.h" +#include "SerializerCommon.h" + +namespace NvParameterized +{ + +class DefaultParamConversion: public Conversion +{ + Traits *mTraits; + RefConversionMode::Enum mRefMode; + + typedef physx::shdfnd::HashMap, Traits::Allocator> MapName2Ver; + MapName2Ver mapName2Ver; + + bool copy(Handle &legacyHandle, Handle &handle) + { + const Definition *pdLegacy = legacyHandle.parameterDefinition(), + *pd = handle.parameterDefinition(); + + if( pdLegacy->type() != pd->type() ) + return true; + + switch( pdLegacy->type() ) + { + case TYPE_STRUCT: + for(int32_t i = 0; i < pdLegacy->numChildren(); ++i) + { + legacyHandle.set(i); + + int32_t j = -1; + if( pd->child(pdLegacy->child(i)->name(), j) ) + { + handle.set(j); + if( !copy(legacyHandle, handle) ) + { + char longName[128]; + legacyHandle.getLongName(longName, sizeof(longName)); + NV_PARAM_TRAITS_WARNING( + mTraits, + "%s: failed to copy legacy data", + longName + ); + + return false; + } + handle.popIndex(); + } + + legacyHandle.popIndex(); + } + break; + + case TYPE_ARRAY: + { + //FIXME: this is too harsh e.g. we can convert static to dynamic + if( pdLegacy->arraySizeIsFixed() != pd->arraySizeIsFixed() ) + return true; + + int32_t size; + if( pdLegacy->arraySizeIsFixed() ) + { + //FIXME: this is too harsh e.g. we may just copy first elements + if( pdLegacy->arraySize() != pd->arraySize() ) + return true; + + size = pd->arraySize(); + } + else + { + if( ERROR_NONE != legacyHandle.getArraySize(size) ) + return false; + + handle.resizeArray(size); + } + + if( size > 100 && pdLegacy->isSimpleType(false, false) && pdLegacy->type() == pd->type() ) + { + // Large array of simple types, fast path + + switch( pdLegacy->type() ) + { + NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS + NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS + default: + // Fall to slow path + break; + +#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +#define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_ ## enum_name: { \ + c_type *data = (c_type *)mTraits->alloc(sizeof(c_type) * size); \ + if( ERROR_NONE != legacyHandle.getParam ## type_name ## Array(data, size) ) return false; \ + if( ERROR_NONE != handle.setParam ## type_name ## Array(data, size) ) return false; \ + mTraits->free(data); \ + break; \ + } +#include "nvparameterized/NvParameterized_types.h" + + } + } + + // Slow path for arrays of aggregates, including TYPE_MAT34 + + for(int32_t i = 0; i < size; ++i) + { + legacyHandle.set(i); + handle.set(i); + + copy(legacyHandle, handle); + + handle.popIndex(); + legacyHandle.popIndex(); + } + + break; + } + + case TYPE_REF: + { + Interface *legacyRefObj; + legacyHandle.getParamRef(legacyRefObj); + + // Skip references which have unsupported classes (keep default version) + if( legacyRefObj && -1 == handle.parameterDefinition()->refVariantValIndex(legacyRefObj->className()) ) + return true; + + Interface *refObj; + handle.getParamRef(refObj); + + switch( mRefMode ) + { + case RefConversionMode::REF_CONVERT_LAST: + default: + DEBUG_ALWAYS_ASSERT(); + break; + + case RefConversionMode::REF_CONVERT_SKIP: + break; + + case RefConversionMode::REF_CONVERT_COPY: + { + // TODO: check that this class is allowed in new version? + + // Update to preferred version if necessary + if( legacyRefObj && pdLegacy->isIncludedRef() ) + { + const char *className = legacyRefObj->className(); + + const MapName2Ver::Entry *e = mapName2Ver.find(pd->longName()); + if( e ) + { + uint32_t prefVer = e->second, + curVer = legacyRefObj->version(); + + if( curVer > prefVer ) + { + NV_PARAM_TRAITS_WARNING( + mTraits, + "Unable to upgrade included reference of class %s, " + "actual version (%u) is higher than preferred version (%u), " + "your conversion may not work properly", + className, + (unsigned)curVer, + (unsigned)prefVer + ); + DEBUG_ALWAYS_ASSERT(); + return false; + } + else if( curVer < prefVer ) + { + Interface *newLegacyRefObj = mTraits->createNvParameterized(className, prefVer); + + if( !mTraits->updateLegacyNvParameterized(*legacyRefObj, *newLegacyRefObj) ) + { + NV_PARAM_TRAITS_WARNING( + mTraits, + "Failed to upgrade reference of class %s to version %u", + className, + (unsigned)prefVer + ); + DEBUG_ALWAYS_ASSERT(); + newLegacyRefObj->destroy(); + return false; + } + + legacyRefObj->destroy(); + legacyRefObj = newLegacyRefObj; + + legacyHandle.setParamRef(legacyRefObj); + } + else + { + // Object has preferred version => do not do anything + } + } + } + + if( ERROR_NONE != handle.setParamRef(legacyRefObj) ) + return true; + + if( ERROR_NONE != legacyHandle.setParamRef(0) ) { //Prevent destruction in legacyObj->destroy() + handle.setParamRef(0); + return false; + } + + if( refObj ) + refObj->destroy(); + + return true; + } + + case RefConversionMode::REF_CONVERT_UPDATE: + { + DEBUG_ASSERT( 0 && "This was not used/tested for a long time" ); + return false; + +/* if( !refObj ) + { + //TODO: do we need to create refObj here? + return false; + } + + if( 0 != strcmp(legacyRefObj->className(), refObj->className()) ) + { + if( NvParameterized::ERROR_NONE != handle.initParamRef(legacyRefObj->className(), true) ) + return false; + + if( NvParameterized::ERROR_NONE != handle.getParamRef(refObj) ) + return false; + } + + if( legacyRefObj->version() != refObj->version() ) + return mTraits->updateLegacyNvParameterized(*legacyRefObj, *refObj); + + //Same version => recursive copy + + Handle refHandle(*refObj, ""); + DEBUG_ASSERT( refHandle.isValid() ); + + Handle legacyRefHandle(*legacyRefObj, ""); + DEBUG_ASSERT( legacyRefHandle.isValid() ); + + return copy(legacyRefHandle, refHandle);*/ + } + } //switch( mRefMode ) + + break; + } + + case TYPE_POINTER: + // do nothing? + break; + + case TYPE_ENUM: + { + const char *val; + legacyHandle.getParamEnum(val); + + int32_t valIdx = handle.parameterDefinition()->enumValIndex(val); + if(-1 != valIdx) + { + const char *canonicVal = handle.parameterDefinition()->enumVal(valIdx); + if( ERROR_NONE != handle.setParamEnum(canonicVal) ) + { + NV_PARAM_TRAITS_WARNING( + mTraits, "Internal error while setting enum value %s", canonicVal ? canonicVal : "" ); + DEBUG_ALWAYS_ASSERT(); + return false; + } + } + + break; + } + +# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name: { c_type val; legacyHandle.getParam##type_name(val); handle.setParam##type_name(val); break; } + + NV_PARAMETERIZED_TYPE(String, STRING, const char *) + +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_MAT34: { float val[12]; legacyHandle.getParamMat34Legacy(val); handle.setParamMat34Legacy(val); break; } + +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + DEBUG_ALWAYS_ASSERT(); + } + + return true; + } + +public: + DefaultParamConversion(Traits *traits, const PrefVer *prefVers, RefConversionMode::Enum refMode) + : mTraits(traits), mRefMode(refMode), mapName2Ver(0, 0.75, Traits::Allocator(traits)) + { + for(; prefVers && prefVers->longName; ++prefVers) + mapName2Ver[prefVers->longName] = prefVers->ver; + } + + bool operator()(NvParameterized::Interface &legacyObj, NvParameterized::Interface &obj) + { + obj.initDefaults(); + + Handle legacyHandle(legacyObj, ""); + DEBUG_ASSERT( legacyHandle.isValid() ); + + Handle handle(obj, ""); + DEBUG_ASSERT( handle.isValid() ); + + return copy(legacyHandle, handle); + } + + void release() + { + this->~DefaultParamConversion(); + mTraits->free(this); + } +}; + +Conversion *internalCreateDefaultConversion(Traits *traits, const PrefVer *prefVers, RefConversionMode::Enum refMode) +{ + void *buf = traits->alloc(sizeof(DefaultParamConversion)); + return PX_PLACEMENT_NEW(buf, DefaultParamConversion)(traits, prefVers, refMode); +} + +}; // end of namespace diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/NvSerializer.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/NvSerializer.cpp old mode 100644 new mode 100755 index 0101798..6e2a423 --- a/sdk/extensions/import/apexmodules/NvParameterized/src/NvSerializer.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/NvSerializer.cpp @@ -1,386 +1,386 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -/*! -\file -\brief NvParameterized serializer implementation -*/ - -#include -#include -#include // for placement new - -#include "PxSimpleTypes.h" - -#include "nvparameterized/NvSerializer.h" -#include "XmlSerializer.h" -#include "BinSerializer.h" -#include "nvparameterized/NvParameterizedTraits.h" - -namespace -{ - static bool isInitialized = false; - static NvParameterized::SerializePlatform platform; -} - -namespace NvParameterized -{ - -const SerializePlatform &GetCurrentPlatform() -{ - if( isInitialized ) - return platform; - - platform.osVer = SerializePlatform::ANY_VERSION; //Do we need this at all??? - - //Determine compiler -# if PX_PS4 == 1 - platform.compilerType = SerializePlatform::COMP_GCC; - platform.compilerVer = SerializePlatform::ANY_VERSION; -# elif PX_VC != 0 - platform.compilerType = SerializePlatform::COMP_VC; - platform.compilerVer = _MSC_VER; -# elif PX_XBOXONE == 1 - platform.compilerType = SerializePlatform::COMP_VC; - platform.compilerVer = _MSC_VER; -# elif PX_GCC_FAMILY == 1 - platform.compilerType =SerializePlatform:: COMP_GCC; - platform.compilerVer = (__GNUC__ << 16) + __GNUC_MINOR__; -# elif PX_CW == 1 - platform.compilerType = SerializePlatform::COMP_MW; -# error "TODO: define version of Metrowerks compiler" -# else -# error "Unknown compiler" -# endif - - //Determine OS -# if PX_WINDOWS_FAMILY == 1 - platform.osType = SerializePlatform::OS_WINDOWS; -# elif PX_APPLE_FAMILY == 1 - platform.osType = SerializePlatform::OS_MACOSX; -# elif PX_PS3 == 1 - platform.osType = SerializePlatform::OS_LV2; -# elif PX_X360 == 1 - platform.osType = SerializePlatform::OS_XBOX; - platform.osVer = _XBOX_VER; -# elif PX_XBOXONE == 1 - platform.osType = SerializePlatform::OS_XBOXONE; -# elif PX_PS4 == 1 - platform.osType = SerializePlatform::OS_PS4; -# elif PX_ANDROID == 1 - platform.osType = SerializePlatform::OS_ANDROID; -# elif PX_LINUX == 1 - platform.osType = SerializePlatform::OS_LINUX; -# elif PX_SWITCH == 1 - platform.osType = SerializePlatform::OS_HOS; -# else -# error "Undefined OS" -# endif - - //Determine arch -# if PX_X86 == 1 - platform.archType = SerializePlatform::ARCH_X86; -# elif PX_APPLE_FAMILY == 1 - platform.archType = SerializePlatform::ARCH_X86; -# elif PX_X64 == 1 - platform.archType = SerializePlatform::ARCH_X86_64; -# elif PX_PPC == 1 - platform.archType = SerializePlatform::ARCH_PPC; -# elif PX_PS3 == 1 - platform.archType = SerializePlatform::ARCH_CELL; -# elif PX_ARM == 1 - platform.archType = SerializePlatform::ARCH_ARM; -# elif PX_A64 == 1 - platform.archType = SerializePlatform::ARCH_ARM_64; -# else -# error "Unknown architecture" -# endif - - isInitialized = true; - return platform; -} - -bool GetPlatform(const char *name, SerializePlatform &platform_) -{ - platform_.osVer = platform_.compilerVer = SerializePlatform::ANY_VERSION; - - if( 0 == strcmp("VcXbox", name) || 0 == strcmp("VcXbox360", name)) - { - platform_.archType = SerializePlatform::ARCH_PPC; - platform_.compilerType = SerializePlatform::COMP_VC; - platform_.osType = SerializePlatform::OS_XBOX; - } - else if( 0 == strcmp("VcXboxOne", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86_64; - platform_.compilerType = SerializePlatform::COMP_VC; - platform_.osType = SerializePlatform::OS_XBOXONE; - } - else if( 0 == strcmp("GccPs4", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86_64; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_PS4; - } - else if( 0 == strcmp("VcWin32", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86; - platform_.compilerType = SerializePlatform::COMP_VC; - platform_.osType = SerializePlatform::OS_WINDOWS; - } - else if( 0 == strcmp("VcWin64", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86_64; - platform_.compilerType = SerializePlatform::COMP_VC; - platform_.osType = SerializePlatform::OS_WINDOWS; - } - else if( 0 == strcmp("GccPs3", name) ) - { - platform_.archType = SerializePlatform::ARCH_CELL; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_LV2; - } - else if( 0 == strcmp("GccOsX32", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_MACOSX; - } - else if( 0 == strcmp("GccOsX64", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86_64; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_MACOSX; - } - else if( 0 == strcmp("AndroidARM", name) ) - { - platform_.archType = SerializePlatform::ARCH_ARM; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_ANDROID; - } - else if (0 == strcmp("HOSARM32", name)) - { - platform_.archType = SerializePlatform::ARCH_ARM; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_HOS; - } - else if (0 == strcmp("HOSARM64", name)) - { - platform_.archType = SerializePlatform::ARCH_ARM_64; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_HOS; - } - else if( 0 == strcmp("GccLinux32", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_LINUX; - } - else if( 0 == strcmp("GccLinux64", name) ) - { - platform_.archType = SerializePlatform::ARCH_X86_64; - platform_.compilerType = SerializePlatform::COMP_GCC; - platform_.osType = SerializePlatform::OS_LINUX; - } - else if( 0 == strcmp("Pib", name) ) //Abstract platform for platform-independent serialization - { - platform_.archType = SerializePlatform::ARCH_GEN; - platform_.compilerType = SerializePlatform::COMP_GEN; - platform_.osType = SerializePlatform::OS_GEN; - } - else - return false; - - return true; -} - -const char *GetPlatformName(const SerializePlatform &platform_) -{ - static const char *unknown = ""; - - switch(platform_.osType ) - { - case SerializePlatform::OS_XBOX: - return SerializePlatform::COMP_VC == platform_.compilerType - ? "VcXbox360" : unknown; - - case SerializePlatform::OS_XBOXONE: - return SerializePlatform::COMP_VC == platform_.compilerType - ? "VcXboxOne" : unknown; - - case SerializePlatform::OS_PS4: - return SerializePlatform::COMP_GCC == platform_.compilerType - ? "GccPs4" : unknown; - - case SerializePlatform::OS_WINDOWS: - if( SerializePlatform::COMP_VC != platform_.compilerType ) - return unknown; - - switch(platform_.archType ) - { - case SerializePlatform::ARCH_X86: - return "VcWin32"; - - case SerializePlatform::ARCH_X86_64: - return "VcWin64"; - - case SerializePlatform::ARCH_GEN: - case SerializePlatform::ARCH_PPC: - case SerializePlatform::ARCH_CELL: - case SerializePlatform::ARCH_ARM: - case SerializePlatform::ARCH_LAST: - default: - return unknown; - } - - case SerializePlatform::OS_MACOSX: - if( SerializePlatform::COMP_GCC != platform_.compilerType ) - return unknown; - - switch( platform_.archType ) - { - case SerializePlatform::ARCH_X86: - return "GccOsX32"; - - case SerializePlatform::ARCH_X86_64: - return "GccOsX64"; - - default: - return unknown; - } - - case SerializePlatform::OS_LV2: - return SerializePlatform::COMP_GCC == platform_.compilerType - ? "GccPs3" : unknown; - - case SerializePlatform::OS_GEN: - return "Pib"; - - case SerializePlatform::OS_ANDROID: - return SerializePlatform::ARCH_ARM == platform_.archType - ? "AndroidARM" : 0; - - case SerializePlatform::OS_LINUX: - if( SerializePlatform::COMP_GCC != platform_.compilerType ) - return unknown; - - switch(platform_.archType ) - { - case SerializePlatform::ARCH_X86: - return "GccLinux32"; - - case SerializePlatform::ARCH_X86_64: - return "GccLinux64"; - - case SerializePlatform::ARCH_GEN: - case SerializePlatform::ARCH_PPC: - case SerializePlatform::ARCH_CELL: - case SerializePlatform::ARCH_ARM: - case SerializePlatform::ARCH_LAST: - default: - return unknown; - } - - case SerializePlatform::OS_HOS: - switch (platform.archType) - { - case SerializePlatform::ARCH_ARM: - return "HOSARM32"; - case SerializePlatform::ARCH_ARM_64: - return "HOSARM64"; - - default: - return unknown; - } - - case SerializePlatform::OS_LAST: - default: - return unknown; - } -} - -Serializer *internalCreateSerializer(Serializer::SerializeType type, Traits *traits) -{ - switch ( type ) - { - case Serializer::NST_XML: - { - void *buf = serializerMemAlloc(sizeof(XmlSerializer), traits); - return buf ? PX_PLACEMENT_NEW(buf, XmlSerializer)(traits) : 0; - } - case Serializer::NST_BINARY: - { - void *buf = serializerMemAlloc(sizeof(BinSerializer), traits); - return buf ? PX_PLACEMENT_NEW(buf, BinSerializer)(traits) : 0; - } - case Serializer::NST_LAST: - default: - NV_PARAM_TRAITS_WARNING( - traits, - "Unknown serializer type: %d", - (int)type ); - break; - } - - return 0; -} - -Serializer::SerializeType Serializer::peekSerializeType(physx::PxFileBuf &stream) -{ - return isBinaryFormat(stream) ? Serializer::NST_BINARY - : isXmlFormat(stream) ? Serializer::NST_XML : Serializer::NST_LAST; -} - -Serializer::ErrorType Serializer::peekPlatform(physx::PxFileBuf &stream, SerializePlatform &platform_) -{ - if( isBinaryFormat(stream) ) - return peekBinaryPlatform(stream, platform_); - - //Xml has no native platform - platform_ = GetCurrentPlatform(); - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType Serializer::deserializeMetadata(physx::PxFileBuf & /*stream*/, DeserializedMetadata & /*desData*/) -{ - //Xml currently does not implement this - return Serializer::ERROR_NOT_IMPLEMENTED; -} - -Serializer::ErrorType Serializer::deserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &desData) -{ - bool tmp; - return deserialize(stream, desData, tmp); -} - -Serializer::ErrorType Serializer::deserializeInplace(void *data, uint32_t dataLen, Serializer::DeserializedData &desData) -{ - bool tmp; - return deserializeInplace(data, dataLen, desData, tmp); -} - -}; // end of namespace +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +/*! +\file +\brief NvParameterized serializer implementation +*/ + +#include +#include +#include // for placement new + +#include "PxSimpleTypes.h" + +#include "nvparameterized/NvSerializer.h" +#include "XmlSerializer.h" +#include "BinSerializer.h" +#include "nvparameterized/NvParameterizedTraits.h" + +namespace +{ + static bool isInitialized = false; + static NvParameterized::SerializePlatform platform; +} + +namespace NvParameterized +{ + +const SerializePlatform &GetCurrentPlatform() +{ + if( isInitialized ) + return platform; + + platform.osVer = SerializePlatform::ANY_VERSION; //Do we need this at all??? + + //Determine compiler +# if PX_PS4 == 1 + platform.compilerType = SerializePlatform::COMP_GCC; + platform.compilerVer = SerializePlatform::ANY_VERSION; +# elif PX_VC != 0 + platform.compilerType = SerializePlatform::COMP_VC; + platform.compilerVer = _MSC_VER; +# elif PX_XBOXONE == 1 + platform.compilerType = SerializePlatform::COMP_VC; + platform.compilerVer = _MSC_VER; +# elif PX_GCC_FAMILY == 1 + platform.compilerType =SerializePlatform:: COMP_GCC; + platform.compilerVer = (__GNUC__ << 16) + __GNUC_MINOR__; +# elif PX_CW == 1 + platform.compilerType = SerializePlatform::COMP_MW; +# error "TODO: define version of Metrowerks compiler" +# else +# error "Unknown compiler" +# endif + + //Determine OS +# if PX_WINDOWS_FAMILY == 1 + platform.osType = SerializePlatform::OS_WINDOWS; +# elif PX_APPLE_FAMILY == 1 + platform.osType = SerializePlatform::OS_MACOSX; +# elif PX_PS3 == 1 + platform.osType = SerializePlatform::OS_LV2; +# elif PX_X360 == 1 + platform.osType = SerializePlatform::OS_XBOX; + platform.osVer = _XBOX_VER; +# elif PX_XBOXONE == 1 + platform.osType = SerializePlatform::OS_XBOXONE; +# elif PX_PS4 == 1 + platform.osType = SerializePlatform::OS_PS4; +# elif PX_ANDROID == 1 + platform.osType = SerializePlatform::OS_ANDROID; +# elif PX_LINUX == 1 + platform.osType = SerializePlatform::OS_LINUX; +# elif PX_SWITCH == 1 + platform.osType = SerializePlatform::OS_HOS; +# else +# error "Undefined OS" +# endif + + //Determine arch +# if PX_X86 == 1 + platform.archType = SerializePlatform::ARCH_X86; +# elif PX_APPLE_FAMILY == 1 + platform.archType = SerializePlatform::ARCH_X86; +# elif PX_X64 == 1 + platform.archType = SerializePlatform::ARCH_X86_64; +# elif PX_PPC == 1 + platform.archType = SerializePlatform::ARCH_PPC; +# elif PX_PS3 == 1 + platform.archType = SerializePlatform::ARCH_CELL; +# elif PX_ARM == 1 + platform.archType = SerializePlatform::ARCH_ARM; +# elif PX_A64 == 1 + platform.archType = SerializePlatform::ARCH_ARM_64; +# else +# error "Unknown architecture" +# endif + + isInitialized = true; + return platform; +} + +bool GetPlatform(const char *name, SerializePlatform &platform_) +{ + platform_.osVer = platform_.compilerVer = SerializePlatform::ANY_VERSION; + + if( 0 == strcmp("VcXbox", name) || 0 == strcmp("VcXbox360", name)) + { + platform_.archType = SerializePlatform::ARCH_PPC; + platform_.compilerType = SerializePlatform::COMP_VC; + platform_.osType = SerializePlatform::OS_XBOX; + } + else if( 0 == strcmp("VcXboxOne", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86_64; + platform_.compilerType = SerializePlatform::COMP_VC; + platform_.osType = SerializePlatform::OS_XBOXONE; + } + else if( 0 == strcmp("GccPs4", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86_64; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_PS4; + } + else if( 0 == strcmp("VcWin32", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86; + platform_.compilerType = SerializePlatform::COMP_VC; + platform_.osType = SerializePlatform::OS_WINDOWS; + } + else if( 0 == strcmp("VcWin64", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86_64; + platform_.compilerType = SerializePlatform::COMP_VC; + platform_.osType = SerializePlatform::OS_WINDOWS; + } + else if( 0 == strcmp("GccPs3", name) ) + { + platform_.archType = SerializePlatform::ARCH_CELL; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_LV2; + } + else if( 0 == strcmp("GccOsX32", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_MACOSX; + } + else if( 0 == strcmp("GccOsX64", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86_64; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_MACOSX; + } + else if( 0 == strcmp("AndroidARM", name) ) + { + platform_.archType = SerializePlatform::ARCH_ARM; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_ANDROID; + } + else if (0 == strcmp("HOSARM32", name)) + { + platform_.archType = SerializePlatform::ARCH_ARM; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_HOS; + } + else if (0 == strcmp("HOSARM64", name)) + { + platform_.archType = SerializePlatform::ARCH_ARM_64; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_HOS; + } + else if( 0 == strcmp("GccLinux32", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_LINUX; + } + else if( 0 == strcmp("GccLinux64", name) ) + { + platform_.archType = SerializePlatform::ARCH_X86_64; + platform_.compilerType = SerializePlatform::COMP_GCC; + platform_.osType = SerializePlatform::OS_LINUX; + } + else if( 0 == strcmp("Pib", name) ) //Abstract platform for platform-independent serialization + { + platform_.archType = SerializePlatform::ARCH_GEN; + platform_.compilerType = SerializePlatform::COMP_GEN; + platform_.osType = SerializePlatform::OS_GEN; + } + else + return false; + + return true; +} + +const char *GetPlatformName(const SerializePlatform &platform_) +{ + static const char *unknown = ""; + + switch(platform_.osType ) + { + case SerializePlatform::OS_XBOX: + return SerializePlatform::COMP_VC == platform_.compilerType + ? "VcXbox360" : unknown; + + case SerializePlatform::OS_XBOXONE: + return SerializePlatform::COMP_VC == platform_.compilerType + ? "VcXboxOne" : unknown; + + case SerializePlatform::OS_PS4: + return SerializePlatform::COMP_GCC == platform_.compilerType + ? "GccPs4" : unknown; + + case SerializePlatform::OS_WINDOWS: + if( SerializePlatform::COMP_VC != platform_.compilerType ) + return unknown; + + switch(platform_.archType ) + { + case SerializePlatform::ARCH_X86: + return "VcWin32"; + + case SerializePlatform::ARCH_X86_64: + return "VcWin64"; + + case SerializePlatform::ARCH_GEN: + case SerializePlatform::ARCH_PPC: + case SerializePlatform::ARCH_CELL: + case SerializePlatform::ARCH_ARM: + case SerializePlatform::ARCH_LAST: + default: + return unknown; + } + + case SerializePlatform::OS_MACOSX: + if( SerializePlatform::COMP_GCC != platform_.compilerType ) + return unknown; + + switch( platform_.archType ) + { + case SerializePlatform::ARCH_X86: + return "GccOsX32"; + + case SerializePlatform::ARCH_X86_64: + return "GccOsX64"; + + default: + return unknown; + } + + case SerializePlatform::OS_LV2: + return SerializePlatform::COMP_GCC == platform_.compilerType + ? "GccPs3" : unknown; + + case SerializePlatform::OS_GEN: + return "Pib"; + + case SerializePlatform::OS_ANDROID: + return SerializePlatform::ARCH_ARM == platform_.archType + ? "AndroidARM" : 0; + + case SerializePlatform::OS_LINUX: + if( SerializePlatform::COMP_GCC != platform_.compilerType ) + return unknown; + + switch(platform_.archType ) + { + case SerializePlatform::ARCH_X86: + return "GccLinux32"; + + case SerializePlatform::ARCH_X86_64: + return "GccLinux64"; + + case SerializePlatform::ARCH_GEN: + case SerializePlatform::ARCH_PPC: + case SerializePlatform::ARCH_CELL: + case SerializePlatform::ARCH_ARM: + case SerializePlatform::ARCH_LAST: + default: + return unknown; + } + + case SerializePlatform::OS_HOS: + switch (platform.archType) + { + case SerializePlatform::ARCH_ARM: + return "HOSARM32"; + case SerializePlatform::ARCH_ARM_64: + return "HOSARM64"; + + default: + return unknown; + } + + case SerializePlatform::OS_LAST: + default: + return unknown; + } +} + +Serializer *internalCreateSerializer(Serializer::SerializeType type, Traits *traits) +{ + switch ( type ) + { + case Serializer::NST_XML: + { + void *buf = serializerMemAlloc(sizeof(XmlSerializer), traits); + return buf ? PX_PLACEMENT_NEW(buf, XmlSerializer)(traits) : 0; + } + case Serializer::NST_BINARY: + { + void *buf = serializerMemAlloc(sizeof(BinSerializer), traits); + return buf ? PX_PLACEMENT_NEW(buf, BinSerializer)(traits) : 0; + } + case Serializer::NST_LAST: + default: + NV_PARAM_TRAITS_WARNING( + traits, + "Unknown serializer type: %d", + (int)type ); + break; + } + + return 0; +} + +Serializer::SerializeType Serializer::peekSerializeType(physx::PxFileBuf &stream) +{ + return isBinaryFormat(stream) ? Serializer::NST_BINARY + : isXmlFormat(stream) ? Serializer::NST_XML : Serializer::NST_LAST; +} + +Serializer::ErrorType Serializer::peekPlatform(physx::PxFileBuf &stream, SerializePlatform &platform_) +{ + if( isBinaryFormat(stream) ) + return peekBinaryPlatform(stream, platform_); + + //Xml has no native platform + platform_ = GetCurrentPlatform(); + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType Serializer::deserializeMetadata(physx::PxFileBuf & /*stream*/, DeserializedMetadata & /*desData*/) +{ + //Xml currently does not implement this + return Serializer::ERROR_NOT_IMPLEMENTED; +} + +Serializer::ErrorType Serializer::deserialize(physx::PxFileBuf &stream, Serializer::DeserializedData &desData) +{ + bool tmp; + return deserialize(stream, desData, tmp); +} + +Serializer::ErrorType Serializer::deserializeInplace(void *data, uint32_t dataLen, Serializer::DeserializedData &desData) +{ + bool tmp; + return deserializeInplace(data, dataLen, desData, tmp); +} + +}; // end of namespace diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.cpp old mode 100644 new mode 100755 index f1983a1..b340c8e --- a/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.cpp @@ -1,446 +1,446 @@ -#include "NvTraits.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PsUserAllocated.h" -#include "PsArray.h" -#include "PsAtomic.h" -#include "PsAlignedMalloc.h" -#include "PxFoundation.h" -#include "PxErrorCallback.h" -#include "PsString.h" - -#define ALIGNED_ALLOC(n, align) physx::shdfnd::AlignedAllocator().allocate(n, __FILE__, __LINE__) - -// Does not depend on alignment in AlignedAllocator -#define ALIGNED_FREE(p) physx::shdfnd::AlignedAllocator<16>().deallocate(p) - - -namespace NvParameterized -{ - -class NvTraits : public Traits, public physx::shdfnd::UserAllocated -{ -public: - NvTraits(void) - { - - } - - virtual ~NvTraits(void) - { - } - - virtual void release(void) - { - delete this; - } - - /** - \brief Register NvParameterized class factory - */ - virtual void registerFactory( ::NvParameterized::Factory & factory ) - { - bool ok = true; - - for (uint32_t i=0; igetClassName(),factory.getClassName()) == 0 && f->getVersion() == factory.getVersion() ) - { - ok = false; - traitsWarn("factory with this name and version already registered."); - break; - } - } - if ( ok ) - { - mFactories.pushBack(&factory); - } - } - - /** - \brief Remove NvParameterized class factory for current version of class - \return Removed factory or NULL if it is not found - */ - virtual ::NvParameterized::Factory *removeFactory( const char * className ) - { - NvParameterized::Factory *f = NULL; - uint32_t index=0; - uint32_t maxVersion = 0; - for (uint32_t i=0; igetClassName(),className) == 0 ) - { - if ( mFactories[i]->getVersion() >= maxVersion ) - { - f = mFactories[i]; - maxVersion = f->getVersion(); - index = i; - } - } - } - if ( f ) - { - mFactories.remove(index); - } - else - { - traitsWarn("Unable to remove factory."); - } - return f; - } - - /** - \brief Remove NvParameterized class factory for given version of class - \return Removed factory or NULL if it is not found - */ - virtual ::NvParameterized::Factory *removeFactory( const char * className, uint32_t version ) - { - Factory *f = NULL; - for (uint32_t i=0; igetClassName(),className) == 0 && mFactories[i]->getVersion() == version ) - { - f = mFactories[i]; - mFactories.remove(i); - break; - } - } - if ( !f ) - { - traitsWarn("Unable to remove factory, not found"); - } - return f; - } - - /** - \brief Checks whether any class factory is registered - */ - virtual bool doesFactoryExist(const char* className) - { - bool ret = false; - for (uint32_t i=0; igetClassName(),className) == 0 ) - { - ret = true; - break; - } - } - return ret; - } - - /** - \brief Checks whether class factory for given version is registered - */ - virtual bool doesFactoryExist(const char* className, uint32_t version) - { - bool ret = false; - for (uint32_t i=0; igetClassName(),className) == 0 && mFactories[i]->getVersion() == version ) - { - ret = true; - break; - } - } - return ret; - } - - // Helper method, locate a factory of this name and exact version, of it specific version not being searched for, return the highest registered version number. - Factory * locateFactory(const char *className,uint32_t version,bool useVersion) const - { - NvParameterized::Factory *f = NULL; - uint32_t maxVersion = 0; - for (uint32_t i=0; igetClassName(),className) == 0 ) - { - if ( useVersion ) - { - if ( mFactories[i]->getVersion() == version ) - { - f = mFactories[i]; - } - } - else if ( mFactories[i]->getVersion() >= maxVersion ) - { - f = mFactories[i]; - maxVersion = f->getVersion(); - } - } - } - return f; - } - - /** - \brief Create object of NvParameterized class - - Most probably this just calls Factory::create on appropriate factory. - */ - virtual ::NvParameterized::Interface * createNvParameterized( const char * name ) - { - NvParameterized::Interface *ret = NULL; - Factory *f = locateFactory(name,0,false); - if ( f ) - { - ret = f->create(this); - } - return ret; - } - - /** - \brief Create object of NvParameterized class - - Most probably this just calls Factory::create on appropriate factory. - */ - virtual ::NvParameterized::Interface * createNvParameterized( const char * name, uint32_t ver ) - { - NvParameterized::Interface *ret = NULL; - Factory *f = locateFactory(name,ver,true); - if ( f ) - { - ret = f->create(this); - } - return ret; - } - - /** - \brief Finish construction of inplace object of NvParameterized class - - Most probably this just calls Factory::finish using appropriate factory. - */ - virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, void *obj, void *buf, int32_t *refCount ) - { - Factory *f = locateFactory(name,0,false); - return f ? f->finish(this,obj,buf,refCount) : NULL; - } - - /** - \brief Finish construction of inplace object of NvParameterized class - - Most probably this just calls Factory::finish using appropriate factory. - */ - virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, uint32_t ver, void *obj, void *buf, int32_t *refCount ) - { - Factory *f = locateFactory(name,ver,true); - return f ? f->finish(this,obj,buf,refCount) : NULL; - } - - /** - \brief Get version of class which is currently used - */ - virtual uint32_t getCurrentVersion(const char *className) const - { - Factory *f = locateFactory(className,0,false); - return f ? f->getVersion() : 0; - } - - /** - \brief Get memory alignment required for objects of class - */ - virtual uint32_t getAlignment(const char *className, uint32_t classVersion) const - { - Factory *f = locateFactory(className,classVersion,true); - return f ? f->getAlignment() : 16; - } - - /** - \brief Register converter for legacy version of class - */ - virtual void registerConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/, Conversion & /*conv*/) - { - PX_ALWAYS_ASSERT(); // TODO : Not yet implemented - } - - /** - \brief Remove converter for legacy version of class - */ - virtual ::NvParameterized::Conversion *removeConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/) - { - PX_ALWAYS_ASSERT(); // TODO : Not yet implemented - return 0; - } - - /** - \brief Update legacy object (most probably using appropriate registered converter) - \param [in] legacyObj legacy object to be converted - \param [in] obj destination object - \return True if conversion was successful, false otherwise - \warning Note that update is intrusive - legacyObj may be modified as a result of update - */ - virtual bool updateLegacyNvParameterized(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) - { - PX_ALWAYS_ASSERT(); // TODO : Not yet implemented - PX_UNUSED(&legacyObj); - PX_UNUSED(&obj); - - return false; - } - - /** - \brief Get a list of the NvParameterized class type names - - \param [in] names buffer for names - \param [out] outCount minimal required length of buffer - \param [in] inCount length of buffer - \return False if 'inCount' is not large enough to contain all of the names, true otherwise - - \warning The memory for the strings returned is owned by the traits class - and should only be read, not written or freed. - */ - virtual bool getNvParameterizedNames( const char ** names, uint32_t &outCount, uint32_t inCount) const - { - bool ret = true; - - outCount = 0; - for (uint32_t i=0; igetClassName(); - for (uint32_t j=0; jgetClassName(); - if ( strcmp(name,className) == 0 ) - { - if ( outCount == inCount ) - { - ret = false; - break; - } - else - { - versions[outCount] = f->getVersion(); - outCount++; - } - } - } - return ret; - } - - /** - \brief Called when inplace object is destroyed - */ - virtual void onInplaceObjectDestroyed(void * /*buf*/, ::NvParameterized::Interface * /*obj*/) - { - - } - - /** - \brief Called when all inplace objects are destroyed - */ - virtual void onAllInplaceObjectsDestroyed(void *buf) - { - free(buf); - } - - void* alloc(uint32_t nbytes) - { - return alloc(nbytes, 16); - } - - void* alloc(uint32_t nbytes, uint32_t align) - { - if (align <= 16) - { - return ALIGNED_ALLOC(nbytes, 16); - } - else switch (align) - { - case 32: - return ALIGNED_ALLOC(nbytes, 32); - case 64: - return ALIGNED_ALLOC(nbytes, 64); - case 128: - return ALIGNED_ALLOC(nbytes, 128); - } - - // Do not support larger alignments - - return 0; - } - - void free(void* buf) - { - ALIGNED_FREE(buf); - } - - int32_t incRefCount(int32_t* refCount) - { - return physx::shdfnd::atomicIncrement(refCount); - } - - virtual int32_t decRefCount(int32_t* refCount) - { - return physx::shdfnd::atomicDecrement(refCount); - } - - - /** - \brief Warns user - */ - virtual void traitsWarn(const char * msg) const - { - char scratch[512]; - physx::shdfnd::snprintf(scratch,512,"NvParameterized::Traits::Warning(%s)", msg); - PxGetFoundation().getErrorCallback().reportError(physx::PxErrorCode::eDEBUG_WARNING,scratch,__FILE__,__LINE__ ); - } - - physx::shdfnd::Array< Factory * > mFactories; -}; - -Traits *createTraits(void) -{ - NvTraits *n = PX_NEW(NvTraits); - return static_cast< Traits *>(n); -} - -} +#include "NvTraits.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PsUserAllocated.h" +#include "PsArray.h" +#include "PsAtomic.h" +#include "PsAlignedMalloc.h" +#include "PxFoundation.h" +#include "PxErrorCallback.h" +#include "PsString.h" + +#define ALIGNED_ALLOC(n, align) physx::shdfnd::AlignedAllocator().allocate(n, __FILE__, __LINE__) + +// Does not depend on alignment in AlignedAllocator +#define ALIGNED_FREE(p) physx::shdfnd::AlignedAllocator<16>().deallocate(p) + + +namespace NvParameterized +{ + +class NvTraits : public Traits, public physx::shdfnd::UserAllocated +{ +public: + NvTraits(void) + { + + } + + virtual ~NvTraits(void) + { + } + + virtual void release(void) + { + delete this; + } + + /** + \brief Register NvParameterized class factory + */ + virtual void registerFactory( ::NvParameterized::Factory & factory ) + { + bool ok = true; + + for (uint32_t i=0; igetClassName(),factory.getClassName()) == 0 && f->getVersion() == factory.getVersion() ) + { + ok = false; + traitsWarn("factory with this name and version already registered."); + break; + } + } + if ( ok ) + { + mFactories.pushBack(&factory); + } + } + + /** + \brief Remove NvParameterized class factory for current version of class + \return Removed factory or NULL if it is not found + */ + virtual ::NvParameterized::Factory *removeFactory( const char * className ) + { + NvParameterized::Factory *f = NULL; + uint32_t index=0; + uint32_t maxVersion = 0; + for (uint32_t i=0; igetClassName(),className) == 0 ) + { + if ( mFactories[i]->getVersion() >= maxVersion ) + { + f = mFactories[i]; + maxVersion = f->getVersion(); + index = i; + } + } + } + if ( f ) + { + mFactories.remove(index); + } + else + { + traitsWarn("Unable to remove factory."); + } + return f; + } + + /** + \brief Remove NvParameterized class factory for given version of class + \return Removed factory or NULL if it is not found + */ + virtual ::NvParameterized::Factory *removeFactory( const char * className, uint32_t version ) + { + Factory *f = NULL; + for (uint32_t i=0; igetClassName(),className) == 0 && mFactories[i]->getVersion() == version ) + { + f = mFactories[i]; + mFactories.remove(i); + break; + } + } + if ( !f ) + { + traitsWarn("Unable to remove factory, not found"); + } + return f; + } + + /** + \brief Checks whether any class factory is registered + */ + virtual bool doesFactoryExist(const char* className) + { + bool ret = false; + for (uint32_t i=0; igetClassName(),className) == 0 ) + { + ret = true; + break; + } + } + return ret; + } + + /** + \brief Checks whether class factory for given version is registered + */ + virtual bool doesFactoryExist(const char* className, uint32_t version) + { + bool ret = false; + for (uint32_t i=0; igetClassName(),className) == 0 && mFactories[i]->getVersion() == version ) + { + ret = true; + break; + } + } + return ret; + } + + // Helper method, locate a factory of this name and exact version, of it specific version not being searched for, return the highest registered version number. + Factory * locateFactory(const char *className,uint32_t version,bool useVersion) const + { + NvParameterized::Factory *f = NULL; + uint32_t maxVersion = 0; + for (uint32_t i=0; igetClassName(),className) == 0 ) + { + if ( useVersion ) + { + if ( mFactories[i]->getVersion() == version ) + { + f = mFactories[i]; + } + } + else if ( mFactories[i]->getVersion() >= maxVersion ) + { + f = mFactories[i]; + maxVersion = f->getVersion(); + } + } + } + return f; + } + + /** + \brief Create object of NvParameterized class + + Most probably this just calls Factory::create on appropriate factory. + */ + virtual ::NvParameterized::Interface * createNvParameterized( const char * name ) + { + NvParameterized::Interface *ret = NULL; + Factory *f = locateFactory(name,0,false); + if ( f ) + { + ret = f->create(this); + } + return ret; + } + + /** + \brief Create object of NvParameterized class + + Most probably this just calls Factory::create on appropriate factory. + */ + virtual ::NvParameterized::Interface * createNvParameterized( const char * name, uint32_t ver ) + { + NvParameterized::Interface *ret = NULL; + Factory *f = locateFactory(name,ver,true); + if ( f ) + { + ret = f->create(this); + } + return ret; + } + + /** + \brief Finish construction of inplace object of NvParameterized class + + Most probably this just calls Factory::finish using appropriate factory. + */ + virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, void *obj, void *buf, int32_t *refCount ) + { + Factory *f = locateFactory(name,0,false); + return f ? f->finish(this,obj,buf,refCount) : NULL; + } + + /** + \brief Finish construction of inplace object of NvParameterized class + + Most probably this just calls Factory::finish using appropriate factory. + */ + virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, uint32_t ver, void *obj, void *buf, int32_t *refCount ) + { + Factory *f = locateFactory(name,ver,true); + return f ? f->finish(this,obj,buf,refCount) : NULL; + } + + /** + \brief Get version of class which is currently used + */ + virtual uint32_t getCurrentVersion(const char *className) const + { + Factory *f = locateFactory(className,0,false); + return f ? f->getVersion() : 0; + } + + /** + \brief Get memory alignment required for objects of class + */ + virtual uint32_t getAlignment(const char *className, uint32_t classVersion) const + { + Factory *f = locateFactory(className,classVersion,true); + return f ? f->getAlignment() : 16; + } + + /** + \brief Register converter for legacy version of class + */ + virtual void registerConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/, Conversion & /*conv*/) + { + PX_ALWAYS_ASSERT(); // TODO : Not yet implemented + } + + /** + \brief Remove converter for legacy version of class + */ + virtual ::NvParameterized::Conversion *removeConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/) + { + PX_ALWAYS_ASSERT(); // TODO : Not yet implemented + return 0; + } + + /** + \brief Update legacy object (most probably using appropriate registered converter) + \param [in] legacyObj legacy object to be converted + \param [in] obj destination object + \return True if conversion was successful, false otherwise + \warning Note that update is intrusive - legacyObj may be modified as a result of update + */ + virtual bool updateLegacyNvParameterized(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) + { + PX_ALWAYS_ASSERT(); // TODO : Not yet implemented + PX_UNUSED(&legacyObj); + PX_UNUSED(&obj); + + return false; + } + + /** + \brief Get a list of the NvParameterized class type names + + \param [in] names buffer for names + \param [out] outCount minimal required length of buffer + \param [in] inCount length of buffer + \return False if 'inCount' is not large enough to contain all of the names, true otherwise + + \warning The memory for the strings returned is owned by the traits class + and should only be read, not written or freed. + */ + virtual bool getNvParameterizedNames( const char ** names, uint32_t &outCount, uint32_t inCount) const + { + bool ret = true; + + outCount = 0; + for (uint32_t i=0; igetClassName(); + for (uint32_t j=0; jgetClassName(); + if ( strcmp(name,className) == 0 ) + { + if ( outCount == inCount ) + { + ret = false; + break; + } + else + { + versions[outCount] = f->getVersion(); + outCount++; + } + } + } + return ret; + } + + /** + \brief Called when inplace object is destroyed + */ + virtual void onInplaceObjectDestroyed(void * /*buf*/, ::NvParameterized::Interface * /*obj*/) + { + + } + + /** + \brief Called when all inplace objects are destroyed + */ + virtual void onAllInplaceObjectsDestroyed(void *buf) + { + free(buf); + } + + void* alloc(uint32_t nbytes) + { + return alloc(nbytes, 16); + } + + void* alloc(uint32_t nbytes, uint32_t align) + { + if (align <= 16) + { + return ALIGNED_ALLOC(nbytes, 16); + } + else switch (align) + { + case 32: + return ALIGNED_ALLOC(nbytes, 32); + case 64: + return ALIGNED_ALLOC(nbytes, 64); + case 128: + return ALIGNED_ALLOC(nbytes, 128); + } + + // Do not support larger alignments + + return 0; + } + + void free(void* buf) + { + ALIGNED_FREE(buf); + } + + int32_t incRefCount(int32_t* refCount) + { + return physx::shdfnd::atomicIncrement(refCount); + } + + virtual int32_t decRefCount(int32_t* refCount) + { + return physx::shdfnd::atomicDecrement(refCount); + } + + + /** + \brief Warns user + */ + virtual void traitsWarn(const char * msg) const + { + char scratch[512]; + physx::shdfnd::snprintf(scratch,512,"NvParameterized::Traits::Warning(%s)", msg); + PxGetFoundation().getErrorCallback().reportError(physx::PxErrorCode::eDEBUG_WARNING,scratch,__FILE__,__LINE__ ); + } + + physx::shdfnd::Array< Factory * > mFactories; +}; + +Traits *createTraits(void) +{ + NvTraits *n = PX_NEW(NvTraits); + return static_cast< Traits *>(n); +} + +} diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.h b/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.h old mode 100644 new mode 100755 index 159662a..60dd512 --- a/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.h +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/NvTraits.h @@ -1,41 +1,41 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef PX_TRAITS_H - -#define PX_TRAITS_H - -namespace NvParameterized -{ - -class Traits; - -Traits *createTraits(void); - -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef PX_TRAITS_H + +#define PX_TRAITS_H + +namespace NvParameterized +{ + +class Traits; + +Traits *createTraits(void); + +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformABI.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformABI.cpp old mode 100644 new mode 100755 index c2d32b6..e22a73a --- a/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformABI.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformABI.cpp @@ -1,429 +1,429 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "PxSimpleTypes.h" -#include "PlatformABI.h" -#include "NvSerializerInternal.h" -#include "SerializerCommon.h" - -using namespace NvParameterized; - -//Returns ABI for predefined platforms -Serializer::ErrorType PlatformABI::GetPredefinedABI(const SerializePlatform &platform, PlatformABI ¶ms) -{ - //Most common parameters - params.endian = LITTLE; - params.sizes.Char = 1; - params.sizes.Bool = 1; - params.sizes.pointer = 4; - params.sizes.real = 4; //float - params.aligns.Char = 1; - params.aligns.pointer = 4; - params.aligns.Bool = 1; - params.aligns.i8 = 1; - params.aligns.i16 = 2; - params.aligns.i32 = 4; - params.aligns.i64 = 8; - params.aligns.f32 = 4; - params.aligns.f64 = 8; - params.aligns.real = params.aligns.f32; - params.doReuseParentPadding = false; - params.doEbo = true; - - SerializePlatform knownPlatform; - - //TODO: all those GetPlatforms are ugly - - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcWin32", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - //Default params are ok - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcWin64", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - params.sizes.pointer = params.aligns.pointer = 8; - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcXbox360", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - //Pointers remain 32-bit - params.endian = BIG; - return Serializer::ERROR_NONE; - } - - // Snc says that it's binary compatible with Gcc... - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccPs3", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - //Pointers remain 32-bit - params.doReuseParentPadding = true; - params.endian = BIG; - return Serializer::ERROR_NONE; - } - - // Same as ps3 but little endian - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("AndroidARM", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - //Pointers remain 32-bit - params.doReuseParentPadding = true; - params.endian = LITTLE; - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN(GetPlatform("GccLinux32", knownPlatform), Serializer::ERROR_UNKNOWN); - if (knownPlatform == platform) - { - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN(GetPlatform("GccLinux64", knownPlatform), Serializer::ERROR_UNKNOWN); - if (knownPlatform == platform) - { - params.doReuseParentPadding = true; - params.sizes.pointer = params.aligns.pointer = 8; - return Serializer::ERROR_NONE; - } - - // FIXME: true ABI is much more complicated (sizeof(bool) is 4, etc.) - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccOsX32", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - params.doReuseParentPadding = true; // TODO (JPB): Is this correct? - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccOsX64", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - params.doReuseParentPadding = true; - params.sizes.pointer = params.aligns.pointer = 8; - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("Pib", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - params.endian = BIG; - - params.sizes.Char = params.sizes.Bool = 1; - params.sizes.pointer = 4; - params.sizes.real = 4; //float - - //All alignments are 1 to minimize space - uint32_t *aligns = (uint32_t *)¶ms.aligns; - for(uint32_t i = 0; i < sizeof(params.aligns)/sizeof(uint32_t); ++i) - aligns[i] = 1; - - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcXboxOne", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - params.sizes.pointer = params.aligns.pointer = 8; - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccPs4", knownPlatform), Serializer::ERROR_UNKNOWN ); - if( knownPlatform == platform ) - { - // if you don't set this then the in-place binary files could contain padding - // between the NvParameters class and the parameterized data. - params.doReuseParentPadding = true; - params.sizes.pointer = params.aligns.pointer = 8; - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN(GetPlatform("HOSARM32", knownPlatform), Serializer::ERROR_UNKNOWN); - if (knownPlatform == platform) - { - //Default params are ok - return Serializer::ERROR_NONE; - } - - NV_BOOL_ERR_CHECK_RETURN(GetPlatform("HOSARM64", knownPlatform), Serializer::ERROR_UNKNOWN); - if (knownPlatform == platform) - { - params.doReuseParentPadding = true; - params.sizes.pointer = params.aligns.pointer = 8; - return Serializer::ERROR_NONE; - } - - //Add new platforms here - - return Serializer::ERROR_INVALID_PLATFORM_NAME; -} - -uint32_t PlatformABI::getNatAlignment(const Definition *pd) const -{ - switch( pd->type() ) - { - case TYPE_ARRAY: - return pd->arraySizeIsFixed() - ? getAlignment(pd->child(0)) //Array alignment = mermber alignment - : NvMax3(aligns.pointer, aligns.Bool, aligns.i32); //Dynamic array is DummyDynamicArrayStruct - - case TYPE_STRUCT: - { - //Struct alignment is max of fields' alignment - uint32_t align = 1; - for(int32_t i = 0; i < pd->numChildren(); ++i) - align = physx::PxMax(align, getAlignment(pd->child(i))); - - return align; - } - - case TYPE_STRING: - return physx::PxMax(aligns.pointer, aligns.Bool); //String = DummyDynamicStringStruct - - case TYPE_I8: - case TYPE_U8: - return aligns.i8; - - case TYPE_I16: - case TYPE_U16: - return aligns.i16; - - case TYPE_I32: - case TYPE_U32: - return aligns.i32; - - case TYPE_I64: - case TYPE_U64: - return aligns.i64; - - case TYPE_F32: - case TYPE_VEC2: - case TYPE_VEC3: - case TYPE_VEC4: - case TYPE_QUAT: - case TYPE_MAT33: - case TYPE_BOUNDS3: - case TYPE_MAT34: - case TYPE_MAT44: - case TYPE_TRANSFORM: - return aligns.f32; - - case TYPE_F64: - return aligns.f64; - - case TYPE_ENUM: - case TYPE_REF: - case TYPE_POINTER: - return aligns.pointer; - - case TYPE_BOOL: - return aligns.Bool; - - NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - PX_ASSERT( 0 && "Unexpected type" ); - } - - return UINT32_MAX; -} - -//Returns alignment of given DataType -uint32_t PlatformABI::getAlignment(const Definition *pd) const -{ - uint32_t natAlign = getNatAlignment(pd), - customAlign = pd->alignment(); - - // Alignment of dynamic array means alignment of dynamic memory - return !customAlign || ( TYPE_ARRAY == pd->type() && !pd->arraySizeIsFixed() ) - ? natAlign - : physx::PxMax(natAlign, customAlign); -} - -//Returns alignment of given DataType -uint32_t PlatformABI::getPadding(const Definition *pd) const -{ - uint32_t natAlign = getNatAlignment(pd), - customPad = pd->padding(); - - // Alignment of dynamic array means alignment of dynamic memory - return !customPad || ( TYPE_ARRAY == pd->type() && !pd->arraySizeIsFixed() ) - ? natAlign - : physx::PxMax(natAlign, customPad); -} - -//Returns size of given DataType -uint32_t PlatformABI::getSize(const Definition *pd) const -{ - switch( pd->type() ) - { - case TYPE_ARRAY: - if( pd->arraySizeIsFixed() ) - { - //Size of static array = number of elements * size of element - const Definition *elemPd = pd; - uint32_t totalSize = 1; - for(int32_t i = 0; i < pd->arrayDimension(); ++i) - { - // Currently no nested dynamic arrays - NV_BOOL_ERR_CHECK_RETURN( elemPd->arraySizeIsFixed(), Serializer::ERROR_NOT_IMPLEMENTED ); - - int32_t size = elemPd->arraySize(); - totalSize *= size; - - elemPd = elemPd->child(0); - } - return totalSize * getSize(elemPd); - } - else - { - //Dynamic array = DummyDynamicArrayStruct - - uint32_t totalAlign = NvMax3(aligns.pointer, aligns.Bool, aligns.i32); - - uint32_t size = sizes.pointer; //buf - size = align(size, aligns.Bool) + 1U; //isAllocated - size = align(size, aligns.i32) + 4U; //elementSize - size = align(size, aligns.i32) + pd->arrayDimension() * 4U; //arraySizes - - uint32_t paddedSize = align(size, totalAlign); - - return paddedSize; - } - - case TYPE_STRUCT: - { - if( !pd->numChildren() ) - return 1; - - //Size of struct = sum of member sizes + sum of padding bytes + tail padding - - uint32_t totalAlign = 1, size = 0; - for(int32_t i = 0; i < pd->numChildren(); ++i) - { - uint32_t childAlign = getAlignment(pd->child(i)); - totalAlign = physx::PxMax(totalAlign, childAlign); - size = align(size, childAlign) + getSize(pd->child(i)); - } - - uint32_t customPad = pd->padding(); - if( customPad ) - totalAlign = physx::PxMax(totalAlign, customPad); - - return align(size, totalAlign); //Tail padding bytes - } - - case TYPE_STRING: - { - //String = DummyDynamicStringStruct - - uint32_t totalAlign = physx::PxMax(aligns.pointer, aligns.Bool); - - uint32_t size = sizes.pointer; //buf - size = align(size, aligns.Bool) + 1U; //isAllocated - - uint32_t paddedSize = align(size, totalAlign); - - return paddedSize; - } - - case TYPE_I8: - case TYPE_U8: - return 1; - - case TYPE_I16: - case TYPE_U16: - return 2; - - case TYPE_I32: - case TYPE_U32: - case TYPE_F32: - return 4; - - case TYPE_I64: - case TYPE_U64: - case TYPE_F64: - return 8; - - // Vectors and matrices are structs so we need tail padding - - case TYPE_VEC2: - return align(2 * sizes.real, aligns.real); - case TYPE_VEC3: - return align(3 * sizes.real, aligns.real); - case TYPE_VEC4: - return align(4 * sizes.real, aligns.real); - case TYPE_QUAT: - return align(4 * sizes.real, aligns.real); - case TYPE_MAT33: - return align(9 * sizes.real, aligns.real); - case TYPE_MAT34: - return align(12 * sizes.real, aligns.real); - case TYPE_MAT44: - return align(16 * sizes.real, aligns.real); - case TYPE_BOUNDS3: - return align(6 * sizes.real, aligns.real); - case TYPE_TRANSFORM: - return align(7 * sizes.real, aligns.real); - - case TYPE_ENUM: - case TYPE_REF: - case TYPE_POINTER: - return sizes.pointer; - - case TYPE_BOOL: - return sizes.Bool; - - NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - PX_ASSERT( 0 && "Unexpected type" ); - } - - return UINT32_MAX; //This is never reached -} - -bool PlatformABI::VerifyCurrentPlatform() -{ - //See PlatformABI::isNormal - - uint8_t one = 1, - zero = 0; - - struct Empty {}; - - return 1 == GetAlignment::value && 1 == sizeof(bool) - && 1 == GetAlignment::value - && 1 == GetAlignment::value - && 4 == sizeof(float) - && *(bool *)&one //We assume that 0x1 corresponds to true internally - && !*(bool *)&zero //We assume that 0x0 corresponds to false internally - && 1 == sizeof(Empty); // Serializer expects sizeof empty struct to be 1 -} +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "PxSimpleTypes.h" +#include "PlatformABI.h" +#include "NvSerializerInternal.h" +#include "SerializerCommon.h" + +using namespace NvParameterized; + +//Returns ABI for predefined platforms +Serializer::ErrorType PlatformABI::GetPredefinedABI(const SerializePlatform &platform, PlatformABI ¶ms) +{ + //Most common parameters + params.endian = LITTLE; + params.sizes.Char = 1; + params.sizes.Bool = 1; + params.sizes.pointer = 4; + params.sizes.real = 4; //float + params.aligns.Char = 1; + params.aligns.pointer = 4; + params.aligns.Bool = 1; + params.aligns.i8 = 1; + params.aligns.i16 = 2; + params.aligns.i32 = 4; + params.aligns.i64 = 8; + params.aligns.f32 = 4; + params.aligns.f64 = 8; + params.aligns.real = params.aligns.f32; + params.doReuseParentPadding = false; + params.doEbo = true; + + SerializePlatform knownPlatform; + + //TODO: all those GetPlatforms are ugly + + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcWin32", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + //Default params are ok + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcWin64", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + params.sizes.pointer = params.aligns.pointer = 8; + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcXbox360", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + //Pointers remain 32-bit + params.endian = BIG; + return Serializer::ERROR_NONE; + } + + // Snc says that it's binary compatible with Gcc... + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccPs3", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + //Pointers remain 32-bit + params.doReuseParentPadding = true; + params.endian = BIG; + return Serializer::ERROR_NONE; + } + + // Same as ps3 but little endian + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("AndroidARM", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + //Pointers remain 32-bit + params.doReuseParentPadding = true; + params.endian = LITTLE; + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN(GetPlatform("GccLinux32", knownPlatform), Serializer::ERROR_UNKNOWN); + if (knownPlatform == platform) + { + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN(GetPlatform("GccLinux64", knownPlatform), Serializer::ERROR_UNKNOWN); + if (knownPlatform == platform) + { + params.doReuseParentPadding = true; + params.sizes.pointer = params.aligns.pointer = 8; + return Serializer::ERROR_NONE; + } + + // FIXME: true ABI is much more complicated (sizeof(bool) is 4, etc.) + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccOsX32", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + params.doReuseParentPadding = true; // TODO (JPB): Is this correct? + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccOsX64", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + params.doReuseParentPadding = true; + params.sizes.pointer = params.aligns.pointer = 8; + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("Pib", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + params.endian = BIG; + + params.sizes.Char = params.sizes.Bool = 1; + params.sizes.pointer = 4; + params.sizes.real = 4; //float + + //All alignments are 1 to minimize space + uint32_t *aligns = (uint32_t *)¶ms.aligns; + for(uint32_t i = 0; i < sizeof(params.aligns)/sizeof(uint32_t); ++i) + aligns[i] = 1; + + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("VcXboxOne", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + params.sizes.pointer = params.aligns.pointer = 8; + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN( GetPlatform("GccPs4", knownPlatform), Serializer::ERROR_UNKNOWN ); + if( knownPlatform == platform ) + { + // if you don't set this then the in-place binary files could contain padding + // between the NvParameters class and the parameterized data. + params.doReuseParentPadding = true; + params.sizes.pointer = params.aligns.pointer = 8; + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN(GetPlatform("HOSARM32", knownPlatform), Serializer::ERROR_UNKNOWN); + if (knownPlatform == platform) + { + //Default params are ok + return Serializer::ERROR_NONE; + } + + NV_BOOL_ERR_CHECK_RETURN(GetPlatform("HOSARM64", knownPlatform), Serializer::ERROR_UNKNOWN); + if (knownPlatform == platform) + { + params.doReuseParentPadding = true; + params.sizes.pointer = params.aligns.pointer = 8; + return Serializer::ERROR_NONE; + } + + //Add new platforms here + + return Serializer::ERROR_INVALID_PLATFORM_NAME; +} + +uint32_t PlatformABI::getNatAlignment(const Definition *pd) const +{ + switch( pd->type() ) + { + case TYPE_ARRAY: + return pd->arraySizeIsFixed() + ? getAlignment(pd->child(0)) //Array alignment = mermber alignment + : NvMax3(aligns.pointer, aligns.Bool, aligns.i32); //Dynamic array is DummyDynamicArrayStruct + + case TYPE_STRUCT: + { + //Struct alignment is max of fields' alignment + uint32_t align = 1; + for(int32_t i = 0; i < pd->numChildren(); ++i) + align = physx::PxMax(align, getAlignment(pd->child(i))); + + return align; + } + + case TYPE_STRING: + return physx::PxMax(aligns.pointer, aligns.Bool); //String = DummyDynamicStringStruct + + case TYPE_I8: + case TYPE_U8: + return aligns.i8; + + case TYPE_I16: + case TYPE_U16: + return aligns.i16; + + case TYPE_I32: + case TYPE_U32: + return aligns.i32; + + case TYPE_I64: + case TYPE_U64: + return aligns.i64; + + case TYPE_F32: + case TYPE_VEC2: + case TYPE_VEC3: + case TYPE_VEC4: + case TYPE_QUAT: + case TYPE_MAT33: + case TYPE_BOUNDS3: + case TYPE_MAT34: + case TYPE_MAT44: + case TYPE_TRANSFORM: + return aligns.f32; + + case TYPE_F64: + return aligns.f64; + + case TYPE_ENUM: + case TYPE_REF: + case TYPE_POINTER: + return aligns.pointer; + + case TYPE_BOOL: + return aligns.Bool; + + NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + PX_ASSERT( 0 && "Unexpected type" ); + } + + return UINT32_MAX; +} + +//Returns alignment of given DataType +uint32_t PlatformABI::getAlignment(const Definition *pd) const +{ + uint32_t natAlign = getNatAlignment(pd), + customAlign = pd->alignment(); + + // Alignment of dynamic array means alignment of dynamic memory + return !customAlign || ( TYPE_ARRAY == pd->type() && !pd->arraySizeIsFixed() ) + ? natAlign + : physx::PxMax(natAlign, customAlign); +} + +//Returns alignment of given DataType +uint32_t PlatformABI::getPadding(const Definition *pd) const +{ + uint32_t natAlign = getNatAlignment(pd), + customPad = pd->padding(); + + // Alignment of dynamic array means alignment of dynamic memory + return !customPad || ( TYPE_ARRAY == pd->type() && !pd->arraySizeIsFixed() ) + ? natAlign + : physx::PxMax(natAlign, customPad); +} + +//Returns size of given DataType +uint32_t PlatformABI::getSize(const Definition *pd) const +{ + switch( pd->type() ) + { + case TYPE_ARRAY: + if( pd->arraySizeIsFixed() ) + { + //Size of static array = number of elements * size of element + const Definition *elemPd = pd; + uint32_t totalSize = 1; + for(int32_t i = 0; i < pd->arrayDimension(); ++i) + { + // Currently no nested dynamic arrays + NV_BOOL_ERR_CHECK_RETURN( elemPd->arraySizeIsFixed(), Serializer::ERROR_NOT_IMPLEMENTED ); + + int32_t size = elemPd->arraySize(); + totalSize *= size; + + elemPd = elemPd->child(0); + } + return totalSize * getSize(elemPd); + } + else + { + //Dynamic array = DummyDynamicArrayStruct + + uint32_t totalAlign = NvMax3(aligns.pointer, aligns.Bool, aligns.i32); + + uint32_t size = sizes.pointer; //buf + size = align(size, aligns.Bool) + 1U; //isAllocated + size = align(size, aligns.i32) + 4U; //elementSize + size = align(size, aligns.i32) + pd->arrayDimension() * 4U; //arraySizes + + uint32_t paddedSize = align(size, totalAlign); + + return paddedSize; + } + + case TYPE_STRUCT: + { + if( !pd->numChildren() ) + return 1; + + //Size of struct = sum of member sizes + sum of padding bytes + tail padding + + uint32_t totalAlign = 1, size = 0; + for(int32_t i = 0; i < pd->numChildren(); ++i) + { + uint32_t childAlign = getAlignment(pd->child(i)); + totalAlign = physx::PxMax(totalAlign, childAlign); + size = align(size, childAlign) + getSize(pd->child(i)); + } + + uint32_t customPad = pd->padding(); + if( customPad ) + totalAlign = physx::PxMax(totalAlign, customPad); + + return align(size, totalAlign); //Tail padding bytes + } + + case TYPE_STRING: + { + //String = DummyDynamicStringStruct + + uint32_t totalAlign = physx::PxMax(aligns.pointer, aligns.Bool); + + uint32_t size = sizes.pointer; //buf + size = align(size, aligns.Bool) + 1U; //isAllocated + + uint32_t paddedSize = align(size, totalAlign); + + return paddedSize; + } + + case TYPE_I8: + case TYPE_U8: + return 1; + + case TYPE_I16: + case TYPE_U16: + return 2; + + case TYPE_I32: + case TYPE_U32: + case TYPE_F32: + return 4; + + case TYPE_I64: + case TYPE_U64: + case TYPE_F64: + return 8; + + // Vectors and matrices are structs so we need tail padding + + case TYPE_VEC2: + return align(2 * sizes.real, aligns.real); + case TYPE_VEC3: + return align(3 * sizes.real, aligns.real); + case TYPE_VEC4: + return align(4 * sizes.real, aligns.real); + case TYPE_QUAT: + return align(4 * sizes.real, aligns.real); + case TYPE_MAT33: + return align(9 * sizes.real, aligns.real); + case TYPE_MAT34: + return align(12 * sizes.real, aligns.real); + case TYPE_MAT44: + return align(16 * sizes.real, aligns.real); + case TYPE_BOUNDS3: + return align(6 * sizes.real, aligns.real); + case TYPE_TRANSFORM: + return align(7 * sizes.real, aligns.real); + + case TYPE_ENUM: + case TYPE_REF: + case TYPE_POINTER: + return sizes.pointer; + + case TYPE_BOOL: + return sizes.Bool; + + NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + PX_ASSERT( 0 && "Unexpected type" ); + } + + return UINT32_MAX; //This is never reached +} + +bool PlatformABI::VerifyCurrentPlatform() +{ + //See PlatformABI::isNormal + + uint8_t one = 1, + zero = 0; + + struct Empty {}; + + return 1 == GetAlignment::value && 1 == sizeof(bool) + && 1 == GetAlignment::value + && 1 == GetAlignment::value + && 4 == sizeof(float) + && *(bool *)&one //We assume that 0x1 corresponds to true internally + && !*(bool *)&zero //We assume that 0x0 corresponds to false internally + && 1 == sizeof(Empty); // Serializer expects sizeof empty struct to be 1 +} diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformInputStream.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformInputStream.cpp old mode 100644 new mode 100755 index f3c6ace..04ba6c3 --- a/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformInputStream.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformInputStream.cpp @@ -1,336 +1,336 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "PlatformInputStream.h" - -using namespace NvParameterized; - -PlatformInputStream::PlatformInputStream(physx::PxFileBuf &stream, const PlatformABI &targetParams, Traits *traits) - : PlatformStream(targetParams, traits), mStream(stream), mPos(traits), mStartPos(stream.tellRead()) -{} - -Serializer::ErrorType PlatformInputStream::skipBytes(uint32_t nbytes) -{ - uint32_t newPos = mStream.tellRead() + nbytes; - - if( newPos >= mStream.getFileLength() ) - { - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_INTERNAL_PTR; - } - - mStream.seekRead(newPos); - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType PlatformInputStream::pushPos(uint32_t newPos) -{ - if( !newPos ) - { - //Trying to access NULL - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_INTERNAL_PTR; - } - - if( mStartPos + newPos >= mStream.getFileLength() ) - { - DEBUG_ALWAYS_ASSERT(); - return Serializer::ERROR_INVALID_INTERNAL_PTR; - } - - mPos.pushBack(mStream.tellRead()); - mStream.seekRead(mStartPos + newPos); - - return Serializer::ERROR_NONE; -} - -void PlatformInputStream::popPos() -{ - mStream.seekRead(mPos.back()); - mPos.popBack(); -} - -uint32_t PlatformInputStream::getPos() const -{ - return mStream.tellRead() - mStartPos; -} - -Serializer::ErrorType PlatformInputStream::readString(uint32_t off, const char *&s) -{ - if( !off ) - { - s = 0; - return Serializer::ERROR_NONE; - } - - NV_ERR_CHECK_RETURN( pushPos(off) ); - - StringBuf buf(mTraits); - buf.reserve(10); - - int8_t c; - do - { - NV_ERR_CHECK_RETURN( read(c) ); - buf.append((char)c); - } while( c ); - - popPos(); - - s = buf.getBuffer(); - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType PlatformInputStream::readObjHeader(ObjHeader &hdr) -{ - uint32_t align_ = NvMax3(mTargetParams.aligns.Bool, mTargetParams.aligns.i32, mTargetParams.aligns.pointer); - - beginStruct(align_); - - uint32_t prevPos = getPos(); - - uint32_t relOffset; - NV_ERR_CHECK_RETURN(read(relOffset)); - - hdr.dataOffset = prevPos + relOffset; //Convert relative offset to absolute - - uint32_t classNameOff; - NV_ERR_CHECK_RETURN( readPtr(classNameOff) ); - NV_ERR_CHECK_RETURN( readString(classNameOff, hdr.className) ); - - uint32_t nameOff; - NV_ERR_CHECK_RETURN( readPtr(nameOff) ); - NV_ERR_CHECK_RETURN( readString(nameOff, hdr.name) ); - - NV_ERR_CHECK_RETURN( read(hdr.isIncluded) ); - NV_ERR_CHECK_RETURN( read(hdr.version) ); - NV_ERR_CHECK_RETURN( read(hdr.checksumSize) ); - - uint32_t chkOff; - NV_ERR_CHECK_RETURN( readPtr(chkOff) ); - - if( !chkOff ) - hdr.checksum = 0; - else - { - NV_ERR_CHECK_RETURN( pushPos(chkOff) ); - - //TODO: usually we can avoid memory allocation here because checksumSize is 4 - hdr.checksum = (uint32_t *)mTraits->alloc(4 * hdr.checksumSize); - for(uint32_t i = 0; i < hdr.checksumSize; ++i) - NV_ERR_CHECK_RETURN( read( const_cast(hdr.checksum[i]) ) ); - - popPos(); - } - - closeStruct(); - - NV_ERR_CHECK_RETURN( pushPos(hdr.dataOffset) ); - - //Skip NvParameters fields - //WARN: this depends on implementation of NvParameters - - beginStruct(physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool)); - - uint32_t tmp; - for(uint32_t i = 0; i < 8; readPtr(tmp), ++i); //vtable and other fields - - bool mDoDeallocateSelf; - NV_ERR_CHECK_RETURN( read(mDoDeallocateSelf) ); - - bool mDoDeallocateName; - NV_ERR_CHECK_RETURN( read(mDoDeallocateName) ); - - bool mDoDeallocateClassName; - NV_ERR_CHECK_RETURN( read(mDoDeallocateClassName) ); - - //See note in beginObject - if( !mTargetParams.doReuseParentPadding ) - closeStruct(); - - hdr.dataOffset = getPos(); - - popPos(); - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType PlatformInputStream::readSimpleStructArray(Handle &handle) -{ - int32_t n; - handle.getArraySize(n); - - const NvParameterized::Definition *pdStruct = handle.parameterDefinition()->child(0); - int32_t nfields = pdStruct->numChildren(); - - uint32_t align_ = getTargetAlignment(pdStruct), - pad_ = getTargetPadding(pdStruct); - - align(align_); - - for(int32_t i = 0; i < n; ++i) - { - beginStruct(align_, pad_); - handle.set(i); - - for(int32_t j = 0; j < nfields; ++j) - { - handle.set(j); - - const Definition *pdField = pdStruct->child(j); - - if( pdField->alignment() ) - align( pdField->alignment() ); - - if( pdField->hint("DONOTSERIALIZE") ) - { - //Simply skip bytes - align(getTargetAlignment(pdField)); - NV_ERR_CHECK_RETURN( skipBytes(getTargetSize(pdField)) ); - } - else - { - //No need to align structs because of tail padding - switch( pdField->type() ) - { -# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name: \ - { \ - c_type val; \ - NV_ERR_CHECK_RETURN(read(val)); \ - handle.setParam##type_name(val); \ - break; \ - } -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_MAT34: - { - float val[12]; - for (int k = 0; k < 12; ++k) - { - NV_ERR_CHECK_RETURN(read(val[k])); - } - handle.setParamMat34Legacy(val); - break; - } - NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS - default: - DEBUG_ASSERT( 0 && "Unexpected type" ); - return Serializer::ERROR_UNKNOWN; - } - } - - handle.popIndex(); - } //j - - handle.popIndex(); - closeStruct(); - } //i - - return Serializer::ERROR_NONE; -} - -void PlatformInputStream::beginStruct(uint32_t align_, uint32_t pad_) -{ - mStack.pushBack(Agregate(Agregate::STRUCT, pad_)); - align(align_); // Align _after_ we push array because otherwise align() would be ignored -} - -void PlatformInputStream::beginStruct(uint32_t align_) -{ - beginStruct(align_, align_); -} - -void PlatformInputStream::beginStruct(const Definition *pd) -{ - beginStruct(getTargetAlignment(pd), getTargetPadding(pd)); -} - -void PlatformInputStream::closeStruct() -{ - PX_ASSERT(mStack.size() > 0); - - align(mStack.back().align); //Tail padding - mStack.popBack(); -} - -void PlatformInputStream::beginString() -{ - beginStruct(physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool)); -} - -void PlatformInputStream::closeString() -{ - closeStruct(); -} - -void PlatformInputStream::beginArray(const Definition *pd) -{ - uint32_t align_ = getTargetAlignment(pd); - align(align_); // Align _before_ we push array because otherwise align() would be ignored - mStack.pushBack(Agregate(Agregate::ARRAY, align_)); -} - -void PlatformInputStream::closeArray() -{ - // No padding in arrays - mStack.popBack(); -} - -void PlatformInputStream::align(uint32_t border) -{ - mStream.seekRead(mStartPos + getAlign(getPos(), border)); -} - -Serializer::ErrorType PlatformInputStream::readPtr(uint32_t &val) -{ - //Do not align on uint32_t or uint64_t boundary (already aligned at pointer boundary) - align(mTargetParams.aligns.pointer); - if( 4 == mTargetParams.sizes.pointer ) - { - return read(val, false); - } - else - { - PX_ASSERT( 8 == mTargetParams.sizes.pointer ); - - uint64_t val64; - NV_ERR_CHECK_RETURN( read(val64, false) ); - - val = (uint32_t)val64; - PX_ASSERT( val == val64 ); - - return Serializer::ERROR_NONE; - } -} +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "PlatformInputStream.h" + +using namespace NvParameterized; + +PlatformInputStream::PlatformInputStream(physx::PxFileBuf &stream, const PlatformABI &targetParams, Traits *traits) + : PlatformStream(targetParams, traits), mStream(stream), mPos(traits), mStartPos(stream.tellRead()) +{} + +Serializer::ErrorType PlatformInputStream::skipBytes(uint32_t nbytes) +{ + uint32_t newPos = mStream.tellRead() + nbytes; + + if( newPos >= mStream.getFileLength() ) + { + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_INTERNAL_PTR; + } + + mStream.seekRead(newPos); + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType PlatformInputStream::pushPos(uint32_t newPos) +{ + if( !newPos ) + { + //Trying to access NULL + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_INTERNAL_PTR; + } + + if( mStartPos + newPos >= mStream.getFileLength() ) + { + DEBUG_ALWAYS_ASSERT(); + return Serializer::ERROR_INVALID_INTERNAL_PTR; + } + + mPos.pushBack(mStream.tellRead()); + mStream.seekRead(mStartPos + newPos); + + return Serializer::ERROR_NONE; +} + +void PlatformInputStream::popPos() +{ + mStream.seekRead(mPos.back()); + mPos.popBack(); +} + +uint32_t PlatformInputStream::getPos() const +{ + return mStream.tellRead() - mStartPos; +} + +Serializer::ErrorType PlatformInputStream::readString(uint32_t off, const char *&s) +{ + if( !off ) + { + s = 0; + return Serializer::ERROR_NONE; + } + + NV_ERR_CHECK_RETURN( pushPos(off) ); + + StringBuf buf(mTraits); + buf.reserve(10); + + int8_t c; + do + { + NV_ERR_CHECK_RETURN( read(c) ); + buf.append((char)c); + } while( c ); + + popPos(); + + s = buf.getBuffer(); + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType PlatformInputStream::readObjHeader(ObjHeader &hdr) +{ + uint32_t align_ = NvMax3(mTargetParams.aligns.Bool, mTargetParams.aligns.i32, mTargetParams.aligns.pointer); + + beginStruct(align_); + + uint32_t prevPos = getPos(); + + uint32_t relOffset; + NV_ERR_CHECK_RETURN(read(relOffset)); + + hdr.dataOffset = prevPos + relOffset; //Convert relative offset to absolute + + uint32_t classNameOff; + NV_ERR_CHECK_RETURN( readPtr(classNameOff) ); + NV_ERR_CHECK_RETURN( readString(classNameOff, hdr.className) ); + + uint32_t nameOff; + NV_ERR_CHECK_RETURN( readPtr(nameOff) ); + NV_ERR_CHECK_RETURN( readString(nameOff, hdr.name) ); + + NV_ERR_CHECK_RETURN( read(hdr.isIncluded) ); + NV_ERR_CHECK_RETURN( read(hdr.version) ); + NV_ERR_CHECK_RETURN( read(hdr.checksumSize) ); + + uint32_t chkOff; + NV_ERR_CHECK_RETURN( readPtr(chkOff) ); + + if( !chkOff ) + hdr.checksum = 0; + else + { + NV_ERR_CHECK_RETURN( pushPos(chkOff) ); + + //TODO: usually we can avoid memory allocation here because checksumSize is 4 + hdr.checksum = (uint32_t *)mTraits->alloc(4 * hdr.checksumSize); + for(uint32_t i = 0; i < hdr.checksumSize; ++i) + NV_ERR_CHECK_RETURN( read( const_cast(hdr.checksum[i]) ) ); + + popPos(); + } + + closeStruct(); + + NV_ERR_CHECK_RETURN( pushPos(hdr.dataOffset) ); + + //Skip NvParameters fields + //WARN: this depends on implementation of NvParameters + + beginStruct(physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool)); + + uint32_t tmp; + for(uint32_t i = 0; i < 8; readPtr(tmp), ++i); //vtable and other fields + + bool mDoDeallocateSelf; + NV_ERR_CHECK_RETURN( read(mDoDeallocateSelf) ); + + bool mDoDeallocateName; + NV_ERR_CHECK_RETURN( read(mDoDeallocateName) ); + + bool mDoDeallocateClassName; + NV_ERR_CHECK_RETURN( read(mDoDeallocateClassName) ); + + //See note in beginObject + if( !mTargetParams.doReuseParentPadding ) + closeStruct(); + + hdr.dataOffset = getPos(); + + popPos(); + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType PlatformInputStream::readSimpleStructArray(Handle &handle) +{ + int32_t n; + handle.getArraySize(n); + + const NvParameterized::Definition *pdStruct = handle.parameterDefinition()->child(0); + int32_t nfields = pdStruct->numChildren(); + + uint32_t align_ = getTargetAlignment(pdStruct), + pad_ = getTargetPadding(pdStruct); + + align(align_); + + for(int32_t i = 0; i < n; ++i) + { + beginStruct(align_, pad_); + handle.set(i); + + for(int32_t j = 0; j < nfields; ++j) + { + handle.set(j); + + const Definition *pdField = pdStruct->child(j); + + if( pdField->alignment() ) + align( pdField->alignment() ); + + if( pdField->hint("DONOTSERIALIZE") ) + { + //Simply skip bytes + align(getTargetAlignment(pdField)); + NV_ERR_CHECK_RETURN( skipBytes(getTargetSize(pdField)) ); + } + else + { + //No need to align structs because of tail padding + switch( pdField->type() ) + { +# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name: \ + { \ + c_type val; \ + NV_ERR_CHECK_RETURN(read(val)); \ + handle.setParam##type_name(val); \ + break; \ + } +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_MAT34: + { + float val[12]; + for (int k = 0; k < 12; ++k) + { + NV_ERR_CHECK_RETURN(read(val[k])); + } + handle.setParamMat34Legacy(val); + break; + } + NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS + default: + DEBUG_ASSERT( 0 && "Unexpected type" ); + return Serializer::ERROR_UNKNOWN; + } + } + + handle.popIndex(); + } //j + + handle.popIndex(); + closeStruct(); + } //i + + return Serializer::ERROR_NONE; +} + +void PlatformInputStream::beginStruct(uint32_t align_, uint32_t pad_) +{ + mStack.pushBack(Agregate(Agregate::STRUCT, pad_)); + align(align_); // Align _after_ we push array because otherwise align() would be ignored +} + +void PlatformInputStream::beginStruct(uint32_t align_) +{ + beginStruct(align_, align_); +} + +void PlatformInputStream::beginStruct(const Definition *pd) +{ + beginStruct(getTargetAlignment(pd), getTargetPadding(pd)); +} + +void PlatformInputStream::closeStruct() +{ + PX_ASSERT(mStack.size() > 0); + + align(mStack.back().align); //Tail padding + mStack.popBack(); +} + +void PlatformInputStream::beginString() +{ + beginStruct(physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool)); +} + +void PlatformInputStream::closeString() +{ + closeStruct(); +} + +void PlatformInputStream::beginArray(const Definition *pd) +{ + uint32_t align_ = getTargetAlignment(pd); + align(align_); // Align _before_ we push array because otherwise align() would be ignored + mStack.pushBack(Agregate(Agregate::ARRAY, align_)); +} + +void PlatformInputStream::closeArray() +{ + // No padding in arrays + mStack.popBack(); +} + +void PlatformInputStream::align(uint32_t border) +{ + mStream.seekRead(mStartPos + getAlign(getPos(), border)); +} + +Serializer::ErrorType PlatformInputStream::readPtr(uint32_t &val) +{ + //Do not align on uint32_t or uint64_t boundary (already aligned at pointer boundary) + align(mTargetParams.aligns.pointer); + if( 4 == mTargetParams.sizes.pointer ) + { + return read(val, false); + } + else + { + PX_ASSERT( 8 == mTargetParams.sizes.pointer ); + + uint64_t val64; + NV_ERR_CHECK_RETURN( read(val64, false) ); + + val = (uint32_t)val64; + PX_ASSERT( val == val64 ); + + return Serializer::ERROR_NONE; + } +} diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformOutputStream.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformOutputStream.cpp old mode 100644 new mode 100755 index 74ae68e..437e72c --- a/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformOutputStream.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/PlatformOutputStream.cpp @@ -1,560 +1,560 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -// WARNING: before doing any changes to this file -// check comments at the head of BinSerializer.cpp - -#include "PlatformOutputStream.h" -#include - -using namespace NvParameterized; - -#ifndef WITHOUT_APEX_SERIALIZATION - -Reloc::Reloc(RelocType type_, uint32_t ptrPos_, const PlatformOutputStream &parent) - : type(type_), - ptrPos(ptrPos_), - traits(parent.mTraits) -{ - ptrData = reinterpret_cast(traits->alloc(sizeof(PlatformOutputStream))); - PX_PLACEMENT_NEW(ptrData, PlatformOutputStream)(parent.mTargetParams, parent.mTraits, parent.dict); -} - -Reloc::Reloc(const Reloc &cinfo): type(cinfo.type), ptrPos(cinfo.ptrPos), traits(cinfo.traits) -{ - Reloc &info = (Reloc &)cinfo; - - //Take ownership of stream to avoid slow recursive copies (especially when reallocating array elements) - ptrData = info.ptrData; - info.ptrData = 0; -} - -Reloc::~Reloc() -{ - if( ptrData ) - { - ptrData->~PlatformOutputStream(); - traits->free(ptrData); - } -} - -PlatformOutputStream::PlatformOutputStream(const PlatformABI &targetParams, Traits *traits, Dictionary &dict_) - : PlatformStream(targetParams, traits), - data(traits), - mRelocs(Traits::Allocator(traits)), - mStrings(Traits::Allocator(traits)), - mMerges(Traits::Allocator(traits)), - dict(dict_), - mTotalAlign(1) -{} - -PlatformOutputStream::PlatformOutputStream(const PlatformOutputStream &s) - : PlatformStream(s), - data(s.data), - mRelocs(Traits::Allocator(s.mTraits)), - mStrings(Traits::Allocator(s.mTraits)), - mMerges(Traits::Allocator(s.mTraits)), - dict(s.dict), - mTotalAlign(1) -{ - mRelocs.reserve(s.mRelocs.size()); - for(uint32_t i = 0; i < s.mRelocs.size(); ++i) - mRelocs.pushBack(s.mRelocs[i]); - - mStrings.reserve(s.mStrings.size()); - for(uint32_t i = 0; i < s.mStrings.size(); ++i) - mStrings.pushBack(s.mStrings[i]); - - mMerges.reserve(s.mMerges.size()); - for(uint32_t i = 0; i < s.mMerges.size(); ++i) - mMerges.pushBack(s.mMerges[i]); -} - -#ifndef NDEBUG -void PlatformOutputStream::dump() const -{ - PlatformStream::dump(); - - dumpBytes(data, size()); - - fflush(stdout); - for(uint32_t i = 0; i < mRelocs.size(); ++i) - { - printf("Relocation %d at %x:\n", (int)i, mRelocs[i].ptrPos); - mRelocs[i].ptrData->dump(); - } - - fflush(stdout); -} -#endif - -void PlatformOutputStream::storeU32At(uint32_t x, uint32_t i) -{ - if( mCurParams.endian != mTargetParams.endian ) - SwapBytes(reinterpret_cast(&x), 4U, TYPE_U32); - - *reinterpret_cast(&data[i]) = x; -} - -uint32_t PlatformOutputStream::storeString(const char *s) -{ - uint32_t off = storeSimple((uint8_t)*s); - while( *s++ ) - storeSimple((uint8_t)*s); - - return off; -} - -uint32_t PlatformOutputStream::storeBytes(const char *s, uint32_t n) -{ - if( !n ) - return size(); - - uint32_t off = storeSimple((uint8_t)s[0]); - for(uint32_t i = 1; i < n; ++i) - storeSimple((uint8_t)s[i]); - - return off; -} - -uint32_t PlatformOutputStream::beginStruct(uint32_t align_, uint32_t pad_) -{ - uint32_t off = size(); - mStack.pushBack(Agregate(Agregate::STRUCT, pad_)); - align(align_); // Align _after_ we push struct to avoid ignored align() when inside array - return off; -} - -uint32_t PlatformOutputStream::beginStruct(uint32_t align_) -{ - return beginStruct(align_, align_); -} - -uint32_t PlatformOutputStream::beginStruct(const Definition *pd) -{ - return beginStruct(getTargetAlignment(pd), getTargetPadding(pd)); -} - -void PlatformOutputStream::closeStruct() -{ - PX_ASSERT(mStack.size() > 0); - - //Tail padding - align(mStack.back().align);// Align _before_ we pop struct to avoid ignored align() when inside array - mStack.popBack(); -} - -uint32_t PlatformOutputStream::beginString() -{ - return beginStruct(physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool)); -} - -void PlatformOutputStream::closeString() -{ - closeStruct(); -} - -uint32_t PlatformOutputStream::beginArray(const Definition *pd) -{ - return beginArray(getTargetAlignment(pd)); -} - -uint32_t PlatformOutputStream::beginArray(uint32_t align_) -{ - align(align_); // Align _before_ we push array because otherwise align() would be ignored - uint32_t off = size(); - mStack.pushBack(Agregate(Agregate::ARRAY, align_)); - return off; -} - -void PlatformOutputStream::closeArray() -{ - // No tail padding when in array - mStack.popBack(); -} - -void PlatformOutputStream::skipBytes(uint32_t nbytes) -{ - data.skipBytes(nbytes); -} - -void PlatformOutputStream::align(uint32_t border) -{ - bool isAligned; - uint32_t newSize = getAlign(size(), border, isAligned); - - if( isAligned ) - mTotalAlign = physx::PxMax(mTotalAlign, border); - - data.skipBytes(newSize - size()); -} - -void PlatformOutputStream::mergeDict() -{ - for(uint32_t i = 0; i < dict.size(); ++i) - { - const char *s = dict.get(i); - uint32_t off = storeString(s); - dict.setOffset(s, off); - } -} - -uint32_t PlatformOutputStream::storeNullPtr() -{ - //Do not align on uint32_t or uint64_t boundary (already aligned at pointer boundary) - align(mTargetParams.aligns.pointer); - uint32_t off = size(); - if( 4 == mTargetParams.sizes.pointer ) - data.skipBytes(4); - else - { - PX_ASSERT( 8 == mTargetParams.sizes.pointer ); - data.skipBytes(8); - } - return off; -} - -Reloc &PlatformOutputStream::storePtr(RelocType type, uint32_t align) -{ - uint32_t off = storeNullPtr(); - mRelocs.pushBack(Reloc(type, off, *this)); - mRelocs.back().ptrData->setAlignment(align); - return mRelocs.back(); -} - -Reloc &PlatformOutputStream::storePtr(RelocType type, const Definition *pd) -{ - return storePtr(type, getTargetAlignment(pd)); -} - -void PlatformOutputStream::storeStringPtr(const char *s) -{ - uint32_t off = storeNullPtr(); - if( s ) - { - mStrings.pushBack(StringReloc(off, s)); - dict.put(s); - } -} - -uint32_t PlatformOutputStream::storeSimpleStructArray(Handle &handle) -{ - int32_t n; - handle.getArraySize(n); - - const NvParameterized::Definition *pdStruct = handle.parameterDefinition()->child(0); - int32_t nfields = pdStruct->numChildren(); - - uint32_t align_ = getTargetAlignment(pdStruct), - size_ = getTargetSize(pdStruct), - pad_ = getTargetPadding(pdStruct); - - align(align_); - uint32_t off = size(); - - data.reserve(size() + n * physx::PxMax(align_, size_)); - - char *p = data; - p += data.size(); - - for(int32_t i = 0; i < n; ++i) - { - beginStruct(align_, pad_); - handle.set(i); - - for(int32_t j = 0; j < nfields; ++j) - { - handle.set(j); - - const Definition *pdField = pdStruct->child(j); - - if( pdField->alignment() ) - align( pdField->alignment() ); - - if( pdField->hint("DONOTSERIALIZE") ) - { - //Simply skip bytes - align(getTargetAlignment(pdField)); - skipBytes(getTargetSize(pdField)); - } - else - { - //No need to align structs because of tail padding - switch( pdField->type() ) - { -# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - case TYPE_##enum_name: \ - { \ - c_type val; \ - handle.getParam##type_name(val); \ - storeSimple(val); \ - break; \ - } -# include "nvparameterized/NvParameterized_types.h" - - case TYPE_MAT34: - { - float val[12]; - handle.getParamMat34Legacy(val); - storeSimple(val, 12); - break; - } - - NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS - default: - DEBUG_ASSERT( 0 && "Unexpected type" ); - return UINT32_MAX; - } - } - - handle.popIndex(); - } //j - - handle.popIndex(); - closeStruct(); - } //i - - return off; -} - -uint32_t PlatformOutputStream::storeObjHeader(const NvParameterized::Interface &obj, bool isIncluded) -{ - uint32_t align_ = NvMax3(mTargetParams.aligns.Bool, mTargetParams.aligns.i32, mTargetParams.aligns.pointer); - - uint32_t off = beginStruct(align_); - - uint32_t hdrOff = data.size(); - PX_ASSERT( hdrOff % sizeof(uint32_t) == 0 ); - - storeSimple(uint32_t(0)); //Data offset - - //className - storeStringPtr(obj.className()); - - //name - storeStringPtr(obj.name()); - - //isIncluded - storeSimple(isIncluded); - - //version - storeSimple(obj.version()); - - //checksum size - uint32_t bits = (uint32_t)-1; - const uint32_t *checksum = obj.checksum(bits); - PX_ASSERT( bits % 32 == 0 ); //32 bits in uint32_t - uint32_t i32s = bits / 32; - storeSimple(i32s); - - //checksum pointer - Reloc &reloc = storePtr(RELOC_ABS_RAW, mTargetParams.aligns.i32); - for(uint32_t i = 0; i < i32s; ++i) - reloc.ptrData->storeSimple(checksum[i]); - - closeStruct(); - - //We force alignment to calculate dataOffset - //(when object is inserted no additional padding will be inserted) - - const Definition *pd = obj.rootParameterDefinition(); - uint32_t customAlign = pd ? getTargetAlignment(pd) : 1; - align(physx::PxMax(16U, customAlign)); //16 for safety - - storeU32At(data.size() - hdrOff, hdrOff); //Now we know object data offset - - return off; -} - -uint32_t PlatformOutputStream::beginObject(const NvParameterized::Interface &obj, bool /*isRoot*/, const Definition *pd) -{ - //NvParameterized objects is derived from NvParameters so we need to store its fields as well. - - //WARN: this implementation _heavily_ depends on implementation of NvParameters - - //Alignment of NvParameters - uint32_t parentAlign = physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool), - childAlign = pd ? getTargetAlignment(pd) : 1, - totalAlign = physx::PxMax(parentAlign, childAlign); - - uint32_t off = beginStruct(totalAlign); - - //NvParameters fields - for(uint32_t i = 0; i < 6; storeNullPtr(), ++i); //vtable and other fields - storeStringPtr(obj.name()); //mName - storeStringPtr(obj.className()); //mClassName - storeSimple(true); //mDoDeallocateSelf (all objects are responsible for memory deallocation) - storeSimple(false); //mDoDeallocateName - storeSimple(false); //mDoDeallocateClassName - - //Some general theory of alignment handling - //Imagine that we have class: - //class A: A1, A2, ... An - //{ - // T1 f1; - // T2 f2; - //}; - //Then all Ai/fi are aligned on natural boundary. Whether or not padding bytes for Ai are inserted - //and whether or not Ai+1 or fi may reuse those bytes depends on compiler; - //we store this info in PlatformABI's doReusePadding flag. - //doReusePadding == false means that padding bytes are always there. - //doReusePadding == true means that padding bytes are _not_ inserted for non-POD Ai but are inserted for POD Ai. - //(I have yet to see compiler that does not insert padding bytes for POD base class!). - - //Compilers may handle derived classes in two different ways. - //Say we have - // class B {int x; char y; }; - // class A: public B {char z; }; - //Then in pure C code this may look like either as - // struct A { struct { int x; char y; } b; char z; }; - //or as - // struct A { int x; char y; char z; }; - //(the latter is usual if B is not POD). - //Take care of that here (NvParameters is not POD!). - if( !mTargetParams.doReuseParentPadding ) - align(parentAlign); //Insert tail padding for NvParameters - - //ParametersStruct is aligned on natural boundary - align(childAlign); - - return off; -} - -uint32_t PlatformOutputStream::merge(const PlatformOutputStream &mergee) -{ - //All structs should be closed - PX_ASSERT( !mergee.mStack.size() ); - - align(mergee.alignment()); - - uint32_t base = data.size(); - - data.appendBytes(mergee.data, mergee.data.size()); - - //Update relocations - - mRelocs.reserve(mRelocs.size() + mergee.mRelocs.size()); - for(uint32_t i = 0; i < mergee.mRelocs.size(); ++i) - { - mRelocs.pushBack(mergee.mRelocs[i]); - mRelocs.back().ptrPos += base; - } - - mStrings.reserve(mStrings.size() + mergee.mStrings.size()); - for(uint32_t i = 0; i < mergee.mStrings.size(); ++i) - { - mStrings.pushBack(mergee.mStrings[i]); - mStrings.back().ptrPos += base; - } - - mMerges.reserve(mMerges.size() + mergee.mMerges.size()); - for(uint32_t i = 0; i < mergee.mMerges.size(); ++i) - { - mMerges.pushBack(mergee.mMerges[i]); - - mMerges.back().ptrPos += base; - if( !mergee.mMerges[i].isExtern ) - mMerges.back().targetPos += base; - } - - return base; -} - -void PlatformOutputStream::flatten() -{ - //It's very important that data for child objects is stored - //after current object to allow safe initialization - - //Generic pointers - for(uint32_t i = 0; i < mRelocs.size(); ++i) - { - Reloc &reloc = mRelocs[i]; - - //Recursively add data which is pointed-to - - align( reloc.ptrData->alignment() ); - - MergedReloc m = { reloc.ptrPos, data.size(), reloc.type, false }; - mMerges.pushBack(m); - - merge(*reloc.ptrData); //Internal pointers are recursively added here - } - - //String pointers - for(uint32_t i = 0; i < mStrings.size(); ++i) - { - //String pointers are external and absolute - MergedReloc m = { mStrings[i].ptrPos, dict.getOffset(mStrings[i].s), RELOC_ABS_RAW, true }; - mMerges.pushBack(m); - } - - mRelocs.clear(); - mStrings.clear(); -} - -uint32_t PlatformOutputStream::writeRelocs() -{ - uint32_t ptrOff = storeSimple(mMerges.size()); //Offset of relocation table - - data.reserve(mMerges.size() * 2 * physx::PxMax(4U, mTargetParams.aligns.i32)); - - for(uint32_t i = 0; i < mMerges.size(); ++i) - { - char *ptr = &data[mMerges[i].ptrPos]; - if( 4 == mTargetParams.sizes.pointer ) - { - uint32_t *ptrAsInt = reinterpret_cast(ptr); - *ptrAsInt = mMerges[i].targetPos; - if( mTargetParams.endian != mCurParams.endian ) - SwapBytes(ptr, 4U, TYPE_U32); - } - else - { - PX_ASSERT(8 == mTargetParams.sizes.pointer); - - uint64_t *ptrAsInt = reinterpret_cast(ptr); - *ptrAsInt = mMerges[i].targetPos; - if( mTargetParams.endian != mCurParams.endian ) - SwapBytes(ptr, 8U, TYPE_U64); - } - - //BinaryReloc struct - beginStruct(mTargetParams.aligns.i32); - storeSimple(static_cast(mMerges[i].type)); - storeSimple(mMerges[i].ptrPos); - closeStruct(); - } - - mMerges.clear(); - - return ptrOff; -} - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +// WARNING: before doing any changes to this file +// check comments at the head of BinSerializer.cpp + +#include "PlatformOutputStream.h" +#include + +using namespace NvParameterized; + +#ifndef WITHOUT_APEX_SERIALIZATION + +Reloc::Reloc(RelocType type_, uint32_t ptrPos_, const PlatformOutputStream &parent) + : type(type_), + ptrPos(ptrPos_), + traits(parent.mTraits) +{ + ptrData = reinterpret_cast(traits->alloc(sizeof(PlatformOutputStream))); + PX_PLACEMENT_NEW(ptrData, PlatformOutputStream)(parent.mTargetParams, parent.mTraits, parent.dict); +} + +Reloc::Reloc(const Reloc &cinfo): type(cinfo.type), ptrPos(cinfo.ptrPos), traits(cinfo.traits) +{ + Reloc &info = (Reloc &)cinfo; + + //Take ownership of stream to avoid slow recursive copies (especially when reallocating array elements) + ptrData = info.ptrData; + info.ptrData = 0; +} + +Reloc::~Reloc() +{ + if( ptrData ) + { + ptrData->~PlatformOutputStream(); + traits->free(ptrData); + } +} + +PlatformOutputStream::PlatformOutputStream(const PlatformABI &targetParams, Traits *traits, Dictionary &dict_) + : PlatformStream(targetParams, traits), + data(traits), + mRelocs(Traits::Allocator(traits)), + mStrings(Traits::Allocator(traits)), + mMerges(Traits::Allocator(traits)), + dict(dict_), + mTotalAlign(1) +{} + +PlatformOutputStream::PlatformOutputStream(const PlatformOutputStream &s) + : PlatformStream(s), + data(s.data), + mRelocs(Traits::Allocator(s.mTraits)), + mStrings(Traits::Allocator(s.mTraits)), + mMerges(Traits::Allocator(s.mTraits)), + dict(s.dict), + mTotalAlign(1) +{ + mRelocs.reserve(s.mRelocs.size()); + for(uint32_t i = 0; i < s.mRelocs.size(); ++i) + mRelocs.pushBack(s.mRelocs[i]); + + mStrings.reserve(s.mStrings.size()); + for(uint32_t i = 0; i < s.mStrings.size(); ++i) + mStrings.pushBack(s.mStrings[i]); + + mMerges.reserve(s.mMerges.size()); + for(uint32_t i = 0; i < s.mMerges.size(); ++i) + mMerges.pushBack(s.mMerges[i]); +} + +#ifndef NDEBUG +void PlatformOutputStream::dump() const +{ + PlatformStream::dump(); + + dumpBytes(data, size()); + + fflush(stdout); + for(uint32_t i = 0; i < mRelocs.size(); ++i) + { + printf("Relocation %d at %x:\n", (int)i, mRelocs[i].ptrPos); + mRelocs[i].ptrData->dump(); + } + + fflush(stdout); +} +#endif + +void PlatformOutputStream::storeU32At(uint32_t x, uint32_t i) +{ + if( mCurParams.endian != mTargetParams.endian ) + SwapBytes(reinterpret_cast(&x), 4U, TYPE_U32); + + *reinterpret_cast(&data[i]) = x; +} + +uint32_t PlatformOutputStream::storeString(const char *s) +{ + uint32_t off = storeSimple((uint8_t)*s); + while( *s++ ) + storeSimple((uint8_t)*s); + + return off; +} + +uint32_t PlatformOutputStream::storeBytes(const char *s, uint32_t n) +{ + if( !n ) + return size(); + + uint32_t off = storeSimple((uint8_t)s[0]); + for(uint32_t i = 1; i < n; ++i) + storeSimple((uint8_t)s[i]); + + return off; +} + +uint32_t PlatformOutputStream::beginStruct(uint32_t align_, uint32_t pad_) +{ + uint32_t off = size(); + mStack.pushBack(Agregate(Agregate::STRUCT, pad_)); + align(align_); // Align _after_ we push struct to avoid ignored align() when inside array + return off; +} + +uint32_t PlatformOutputStream::beginStruct(uint32_t align_) +{ + return beginStruct(align_, align_); +} + +uint32_t PlatformOutputStream::beginStruct(const Definition *pd) +{ + return beginStruct(getTargetAlignment(pd), getTargetPadding(pd)); +} + +void PlatformOutputStream::closeStruct() +{ + PX_ASSERT(mStack.size() > 0); + + //Tail padding + align(mStack.back().align);// Align _before_ we pop struct to avoid ignored align() when inside array + mStack.popBack(); +} + +uint32_t PlatformOutputStream::beginString() +{ + return beginStruct(physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool)); +} + +void PlatformOutputStream::closeString() +{ + closeStruct(); +} + +uint32_t PlatformOutputStream::beginArray(const Definition *pd) +{ + return beginArray(getTargetAlignment(pd)); +} + +uint32_t PlatformOutputStream::beginArray(uint32_t align_) +{ + align(align_); // Align _before_ we push array because otherwise align() would be ignored + uint32_t off = size(); + mStack.pushBack(Agregate(Agregate::ARRAY, align_)); + return off; +} + +void PlatformOutputStream::closeArray() +{ + // No tail padding when in array + mStack.popBack(); +} + +void PlatformOutputStream::skipBytes(uint32_t nbytes) +{ + data.skipBytes(nbytes); +} + +void PlatformOutputStream::align(uint32_t border) +{ + bool isAligned; + uint32_t newSize = getAlign(size(), border, isAligned); + + if( isAligned ) + mTotalAlign = physx::PxMax(mTotalAlign, border); + + data.skipBytes(newSize - size()); +} + +void PlatformOutputStream::mergeDict() +{ + for(uint32_t i = 0; i < dict.size(); ++i) + { + const char *s = dict.get(i); + uint32_t off = storeString(s); + dict.setOffset(s, off); + } +} + +uint32_t PlatformOutputStream::storeNullPtr() +{ + //Do not align on uint32_t or uint64_t boundary (already aligned at pointer boundary) + align(mTargetParams.aligns.pointer); + uint32_t off = size(); + if( 4 == mTargetParams.sizes.pointer ) + data.skipBytes(4); + else + { + PX_ASSERT( 8 == mTargetParams.sizes.pointer ); + data.skipBytes(8); + } + return off; +} + +Reloc &PlatformOutputStream::storePtr(RelocType type, uint32_t align) +{ + uint32_t off = storeNullPtr(); + mRelocs.pushBack(Reloc(type, off, *this)); + mRelocs.back().ptrData->setAlignment(align); + return mRelocs.back(); +} + +Reloc &PlatformOutputStream::storePtr(RelocType type, const Definition *pd) +{ + return storePtr(type, getTargetAlignment(pd)); +} + +void PlatformOutputStream::storeStringPtr(const char *s) +{ + uint32_t off = storeNullPtr(); + if( s ) + { + mStrings.pushBack(StringReloc(off, s)); + dict.put(s); + } +} + +uint32_t PlatformOutputStream::storeSimpleStructArray(Handle &handle) +{ + int32_t n; + handle.getArraySize(n); + + const NvParameterized::Definition *pdStruct = handle.parameterDefinition()->child(0); + int32_t nfields = pdStruct->numChildren(); + + uint32_t align_ = getTargetAlignment(pdStruct), + size_ = getTargetSize(pdStruct), + pad_ = getTargetPadding(pdStruct); + + align(align_); + uint32_t off = size(); + + data.reserve(size() + n * physx::PxMax(align_, size_)); + + char *p = data; + p += data.size(); + + for(int32_t i = 0; i < n; ++i) + { + beginStruct(align_, pad_); + handle.set(i); + + for(int32_t j = 0; j < nfields; ++j) + { + handle.set(j); + + const Definition *pdField = pdStruct->child(j); + + if( pdField->alignment() ) + align( pdField->alignment() ); + + if( pdField->hint("DONOTSERIALIZE") ) + { + //Simply skip bytes + align(getTargetAlignment(pdField)); + skipBytes(getTargetSize(pdField)); + } + else + { + //No need to align structs because of tail padding + switch( pdField->type() ) + { +# define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +# define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + case TYPE_##enum_name: \ + { \ + c_type val; \ + handle.getParam##type_name(val); \ + storeSimple(val); \ + break; \ + } +# include "nvparameterized/NvParameterized_types.h" + + case TYPE_MAT34: + { + float val[12]; + handle.getParamMat34Legacy(val); + storeSimple(val, 12); + break; + } + + NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS + default: + DEBUG_ASSERT( 0 && "Unexpected type" ); + return UINT32_MAX; + } + } + + handle.popIndex(); + } //j + + handle.popIndex(); + closeStruct(); + } //i + + return off; +} + +uint32_t PlatformOutputStream::storeObjHeader(const NvParameterized::Interface &obj, bool isIncluded) +{ + uint32_t align_ = NvMax3(mTargetParams.aligns.Bool, mTargetParams.aligns.i32, mTargetParams.aligns.pointer); + + uint32_t off = beginStruct(align_); + + uint32_t hdrOff = data.size(); + PX_ASSERT( hdrOff % sizeof(uint32_t) == 0 ); + + storeSimple(uint32_t(0)); //Data offset + + //className + storeStringPtr(obj.className()); + + //name + storeStringPtr(obj.name()); + + //isIncluded + storeSimple(isIncluded); + + //version + storeSimple(obj.version()); + + //checksum size + uint32_t bits = (uint32_t)-1; + const uint32_t *checksum = obj.checksum(bits); + PX_ASSERT( bits % 32 == 0 ); //32 bits in uint32_t + uint32_t i32s = bits / 32; + storeSimple(i32s); + + //checksum pointer + Reloc &reloc = storePtr(RELOC_ABS_RAW, mTargetParams.aligns.i32); + for(uint32_t i = 0; i < i32s; ++i) + reloc.ptrData->storeSimple(checksum[i]); + + closeStruct(); + + //We force alignment to calculate dataOffset + //(when object is inserted no additional padding will be inserted) + + const Definition *pd = obj.rootParameterDefinition(); + uint32_t customAlign = pd ? getTargetAlignment(pd) : 1; + align(physx::PxMax(16U, customAlign)); //16 for safety + + storeU32At(data.size() - hdrOff, hdrOff); //Now we know object data offset + + return off; +} + +uint32_t PlatformOutputStream::beginObject(const NvParameterized::Interface &obj, bool /*isRoot*/, const Definition *pd) +{ + //NvParameterized objects is derived from NvParameters so we need to store its fields as well. + + //WARN: this implementation _heavily_ depends on implementation of NvParameters + + //Alignment of NvParameters + uint32_t parentAlign = physx::PxMax(mTargetParams.aligns.pointer, mTargetParams.aligns.Bool), + childAlign = pd ? getTargetAlignment(pd) : 1, + totalAlign = physx::PxMax(parentAlign, childAlign); + + uint32_t off = beginStruct(totalAlign); + + //NvParameters fields + for(uint32_t i = 0; i < 6; storeNullPtr(), ++i); //vtable and other fields + storeStringPtr(obj.name()); //mName + storeStringPtr(obj.className()); //mClassName + storeSimple(true); //mDoDeallocateSelf (all objects are responsible for memory deallocation) + storeSimple(false); //mDoDeallocateName + storeSimple(false); //mDoDeallocateClassName + + //Some general theory of alignment handling + //Imagine that we have class: + //class A: A1, A2, ... An + //{ + // T1 f1; + // T2 f2; + //}; + //Then all Ai/fi are aligned on natural boundary. Whether or not padding bytes for Ai are inserted + //and whether or not Ai+1 or fi may reuse those bytes depends on compiler; + //we store this info in PlatformABI's doReusePadding flag. + //doReusePadding == false means that padding bytes are always there. + //doReusePadding == true means that padding bytes are _not_ inserted for non-POD Ai but are inserted for POD Ai. + //(I have yet to see compiler that does not insert padding bytes for POD base class!). + + //Compilers may handle derived classes in two different ways. + //Say we have + // class B {int x; char y; }; + // class A: public B {char z; }; + //Then in pure C code this may look like either as + // struct A { struct { int x; char y; } b; char z; }; + //or as + // struct A { int x; char y; char z; }; + //(the latter is usual if B is not POD). + //Take care of that here (NvParameters is not POD!). + if( !mTargetParams.doReuseParentPadding ) + align(parentAlign); //Insert tail padding for NvParameters + + //ParametersStruct is aligned on natural boundary + align(childAlign); + + return off; +} + +uint32_t PlatformOutputStream::merge(const PlatformOutputStream &mergee) +{ + //All structs should be closed + PX_ASSERT( !mergee.mStack.size() ); + + align(mergee.alignment()); + + uint32_t base = data.size(); + + data.appendBytes(mergee.data, mergee.data.size()); + + //Update relocations + + mRelocs.reserve(mRelocs.size() + mergee.mRelocs.size()); + for(uint32_t i = 0; i < mergee.mRelocs.size(); ++i) + { + mRelocs.pushBack(mergee.mRelocs[i]); + mRelocs.back().ptrPos += base; + } + + mStrings.reserve(mStrings.size() + mergee.mStrings.size()); + for(uint32_t i = 0; i < mergee.mStrings.size(); ++i) + { + mStrings.pushBack(mergee.mStrings[i]); + mStrings.back().ptrPos += base; + } + + mMerges.reserve(mMerges.size() + mergee.mMerges.size()); + for(uint32_t i = 0; i < mergee.mMerges.size(); ++i) + { + mMerges.pushBack(mergee.mMerges[i]); + + mMerges.back().ptrPos += base; + if( !mergee.mMerges[i].isExtern ) + mMerges.back().targetPos += base; + } + + return base; +} + +void PlatformOutputStream::flatten() +{ + //It's very important that data for child objects is stored + //after current object to allow safe initialization + + //Generic pointers + for(uint32_t i = 0; i < mRelocs.size(); ++i) + { + Reloc &reloc = mRelocs[i]; + + //Recursively add data which is pointed-to + + align( reloc.ptrData->alignment() ); + + MergedReloc m = { reloc.ptrPos, data.size(), reloc.type, false }; + mMerges.pushBack(m); + + merge(*reloc.ptrData); //Internal pointers are recursively added here + } + + //String pointers + for(uint32_t i = 0; i < mStrings.size(); ++i) + { + //String pointers are external and absolute + MergedReloc m = { mStrings[i].ptrPos, dict.getOffset(mStrings[i].s), RELOC_ABS_RAW, true }; + mMerges.pushBack(m); + } + + mRelocs.clear(); + mStrings.clear(); +} + +uint32_t PlatformOutputStream::writeRelocs() +{ + uint32_t ptrOff = storeSimple(mMerges.size()); //Offset of relocation table + + data.reserve(mMerges.size() * 2 * physx::PxMax(4U, mTargetParams.aligns.i32)); + + for(uint32_t i = 0; i < mMerges.size(); ++i) + { + char *ptr = &data[mMerges[i].ptrPos]; + if( 4 == mTargetParams.sizes.pointer ) + { + uint32_t *ptrAsInt = reinterpret_cast(ptr); + *ptrAsInt = mMerges[i].targetPos; + if( mTargetParams.endian != mCurParams.endian ) + SwapBytes(ptr, 4U, TYPE_U32); + } + else + { + PX_ASSERT(8 == mTargetParams.sizes.pointer); + + uint64_t *ptrAsInt = reinterpret_cast(ptr); + *ptrAsInt = mMerges[i].targetPos; + if( mTargetParams.endian != mCurParams.endian ) + SwapBytes(ptr, 8U, TYPE_U64); + } + + //BinaryReloc struct + beginStruct(mTargetParams.aligns.i32); + storeSimple(static_cast(mMerges[i].type)); + storeSimple(mMerges[i].ptrPos); + closeStruct(); + } + + mMerges.clear(); + + return ptrOff; +} + +#endif diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/SerializerCommon.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/SerializerCommon.cpp old mode 100644 new mode 100755 index b00a80f..bc65fb4 --- a/sdk/extensions/import/apexmodules/NvParameterized/src/SerializerCommon.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/SerializerCommon.cpp @@ -1,234 +1,234 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#include "PxSimpleTypes.h" -#include "SerializerCommon.h" -#include "NvTraitsInternal.h" - -namespace NvParameterized -{ - -#define CHECK(x) NV_BOOL_ERR_CHECK_RETURN(x, 0) - -bool UpgradeLegacyObjects(Serializer::DeserializedData &data, bool &isUpdated, Traits *t) -{ - isUpdated = false; - - for(uint32_t i = 0; i < data.size(); ++i) - { - Interface *obj = data[i]; - if( !obj ) - continue; - - Interface *newObj = UpgradeObject(*obj, isUpdated, t); - if( !newObj ) - { - NV_PARAM_TRAITS_WARNING( - t, - "Failed to upgrade object of class %s and version %u", - obj->className(), - (unsigned)obj->version()); - - DEBUG_ALWAYS_ASSERT(); - - for(uint32_t j = 0; j < data.size(); ++j) - data[i]->destroy(); - - data.init(0, 0); - - return false; - } - - if( newObj != obj ) - { - // Need to retain the name of the old object into the new object - const char *name = obj->name(); - newObj->setName(name); - obj->destroy(); - data[i] = newObj; - } - } - - return true; -} - -bool UpgradeIncludedRefs(Handle &h, bool &isUpdated, Traits *t) -{ - const Definition *pd = h.parameterDefinition(); - - switch( pd->type() ) - { - case TYPE_ARRAY: - { - if( pd->child(0)->isSimpleType() ) - break; - - int32_t size; - CHECK( NvParameterized::ERROR_NONE == h.getArraySize(size) ); - - for(int32_t i = 0; i < size; ++i) - { - h.set(i); - CHECK( UpgradeIncludedRefs(h, isUpdated, t) ); - h.popIndex(); - } - - break; - } - - case TYPE_STRUCT: - { - if( pd->isSimpleType() ) - break; - - for(int32_t i = 0; i < pd->numChildren(); ++i) - { - h.set(i); - CHECK( UpgradeIncludedRefs(h, isUpdated, t) ); - h.popIndex(); - } - - break; - } - - case TYPE_REF: - { - if( !pd->isIncludedRef() ) - break; - - Interface *refObj = 0; - h.getParamRef(refObj); - - if( !refObj ) // No reference there? - break; - - Interface *newRefObj = UpgradeObject(*refObj, isUpdated, t); - CHECK( newRefObj ); - - if( newRefObj == refObj ) // No update? - break; - - refObj->destroy(); - - if( NvParameterized::ERROR_NONE != h.setParamRef(newRefObj) ) - { - DEBUG_ALWAYS_ASSERT(); - newRefObj->destroy(); - return false; - } - - break; - } - NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS - default: - { - break; - } - - } - - return true; -} - -bool UpgradeIncludedRefs(Interface &obj, bool &isUpdated, Traits *t) -{ - Handle h(obj, ""); - CHECK( h.isValid() ); - - return UpgradeIncludedRefs(h, isUpdated, t); -} - -Interface *UpgradeObject(Interface &obj, bool &isUpdated, Traits *t) -{ - const char *className = obj.className(); - - Interface *newObj = &obj; - - if( obj.version() != t->getCurrentVersion(className) ) - { - isUpdated = true; - - newObj = t->createNvParameterized(className); - - if( !newObj ) - { - NV_PARAM_TRAITS_WARNING(t, "Failed to create object of class %s", className); - DEBUG_ALWAYS_ASSERT(); - return 0; - } - - if( !t->updateLegacyNvParameterized(obj, *newObj) ) - { - NV_PARAM_TRAITS_WARNING(t, "Failed to upgrade object of class %s and version %u", - className, - (unsigned)obj.version() ); - newObj->destroy(); - return 0; - } - } - - if( !UpgradeIncludedRefs(*newObj, isUpdated, t) ) - { - newObj->destroy(); - return 0; - } - - return newObj; -} - -void *serializerMemAlloc(uint32_t size, Traits *t) -{ - if( t ) - return t->alloc(size); - else - { - DEBUG_ALWAYS_ASSERT(); // indicates a memory leak - return ::malloc(size); - } -} - -void serializerMemFree(void *data, Traits *t) -{ - if( t ) - t->free(data); - else - { - DEBUG_ALWAYS_ASSERT(); - ::free(data); - } -} - -bool DoIgnoreChecksum(const NvParameterized::Interface &obj) -{ - // Most of our classes initially do not have classVersion field. - // When it is finally added (e.g. after adding new version) - // schema checksum changes and we get invalid "checksum not equal" warnings; - // because of that we ignore checksum differences for all 0.0 classes. - return 0 == obj.version(); -} - -} // namespace NvParameterized +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#include "PxSimpleTypes.h" +#include "SerializerCommon.h" +#include "NvTraitsInternal.h" + +namespace NvParameterized +{ + +#define CHECK(x) NV_BOOL_ERR_CHECK_RETURN(x, 0) + +bool UpgradeLegacyObjects(Serializer::DeserializedData &data, bool &isUpdated, Traits *t) +{ + isUpdated = false; + + for(uint32_t i = 0; i < data.size(); ++i) + { + Interface *obj = data[i]; + if( !obj ) + continue; + + Interface *newObj = UpgradeObject(*obj, isUpdated, t); + if( !newObj ) + { + NV_PARAM_TRAITS_WARNING( + t, + "Failed to upgrade object of class %s and version %u", + obj->className(), + (unsigned)obj->version()); + + DEBUG_ALWAYS_ASSERT(); + + for(uint32_t j = 0; j < data.size(); ++j) + data[i]->destroy(); + + data.init(0, 0); + + return false; + } + + if( newObj != obj ) + { + // Need to retain the name of the old object into the new object + const char *name = obj->name(); + newObj->setName(name); + obj->destroy(); + data[i] = newObj; + } + } + + return true; +} + +bool UpgradeIncludedRefs(Handle &h, bool &isUpdated, Traits *t) +{ + const Definition *pd = h.parameterDefinition(); + + switch( pd->type() ) + { + case TYPE_ARRAY: + { + if( pd->child(0)->isSimpleType() ) + break; + + int32_t size; + CHECK( NvParameterized::ERROR_NONE == h.getArraySize(size) ); + + for(int32_t i = 0; i < size; ++i) + { + h.set(i); + CHECK( UpgradeIncludedRefs(h, isUpdated, t) ); + h.popIndex(); + } + + break; + } + + case TYPE_STRUCT: + { + if( pd->isSimpleType() ) + break; + + for(int32_t i = 0; i < pd->numChildren(); ++i) + { + h.set(i); + CHECK( UpgradeIncludedRefs(h, isUpdated, t) ); + h.popIndex(); + } + + break; + } + + case TYPE_REF: + { + if( !pd->isIncludedRef() ) + break; + + Interface *refObj = 0; + h.getParamRef(refObj); + + if( !refObj ) // No reference there? + break; + + Interface *newRefObj = UpgradeObject(*refObj, isUpdated, t); + CHECK( newRefObj ); + + if( newRefObj == refObj ) // No update? + break; + + refObj->destroy(); + + if( NvParameterized::ERROR_NONE != h.setParamRef(newRefObj) ) + { + DEBUG_ALWAYS_ASSERT(); + newRefObj->destroy(); + return false; + } + + break; + } + NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS + default: + { + break; + } + + } + + return true; +} + +bool UpgradeIncludedRefs(Interface &obj, bool &isUpdated, Traits *t) +{ + Handle h(obj, ""); + CHECK( h.isValid() ); + + return UpgradeIncludedRefs(h, isUpdated, t); +} + +Interface *UpgradeObject(Interface &obj, bool &isUpdated, Traits *t) +{ + const char *className = obj.className(); + + Interface *newObj = &obj; + + if( obj.version() != t->getCurrentVersion(className) ) + { + isUpdated = true; + + newObj = t->createNvParameterized(className); + + if( !newObj ) + { + NV_PARAM_TRAITS_WARNING(t, "Failed to create object of class %s", className); + DEBUG_ALWAYS_ASSERT(); + return 0; + } + + if( !t->updateLegacyNvParameterized(obj, *newObj) ) + { + NV_PARAM_TRAITS_WARNING(t, "Failed to upgrade object of class %s and version %u", + className, + (unsigned)obj.version() ); + newObj->destroy(); + return 0; + } + } + + if( !UpgradeIncludedRefs(*newObj, isUpdated, t) ) + { + newObj->destroy(); + return 0; + } + + return newObj; +} + +void *serializerMemAlloc(uint32_t size, Traits *t) +{ + if( t ) + return t->alloc(size); + else + { + DEBUG_ALWAYS_ASSERT(); // indicates a memory leak + return ::malloc(size); + } +} + +void serializerMemFree(void *data, Traits *t) +{ + if( t ) + t->free(data); + else + { + DEBUG_ALWAYS_ASSERT(); + ::free(data); + } +} + +bool DoIgnoreChecksum(const NvParameterized::Interface &obj) +{ + // Most of our classes initially do not have classVersion field. + // When it is finally added (e.g. after adding new version) + // schema checksum changes and we get invalid "checksum not equal" warnings; + // because of that we ignore checksum differences for all 0.0 classes. + return 0 == obj.version(); +} + +} // namespace NvParameterized diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/XmlDeserializer.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/XmlDeserializer.cpp old mode 100644 new mode 100755 index 69253e6..cf1eaad --- a/sdk/extensions/import/apexmodules/NvParameterized/src/XmlDeserializer.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/XmlDeserializer.cpp @@ -1,759 +1,759 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#include "PxSimpleTypes.h" -#include "NvParameters.h" -#include "nvparameterized/NvParameterizedTraits.h" - -#include "NvTraitsInternal.h" - -#include "XmlDeserializer.h" - -#define XML_WARNING(_format, ...) \ - NV_PARAM_TRAITS_WARNING(mTraits, "XML serializer: " _format, ##__VA_ARGS__) - - - -namespace NvParameterized -{ - -/*! -Get number of elements in array -*/ -template -char (&ArraySizeHelper(T (&array)[N]))[N]; -#define PX_ARRAY_SIZE(_array) (sizeof(ArraySizeHelper(_array))) - - static uint32_t ReadVersion(const physx::shdfnd::FastXml::AttributePairs& attr) - { - const char *versionText = attr.get("version"); - - // If there's no version, assume version is 0.0 - if( !versionText ) - return 0; - - //XML stores versions in "x.y"-format - //FIXME: strtoul is unsafe - - const char *dot = strchr(versionText, '.'); - uint32_t minor = dot ? strtoul(dot + 1, 0, 10) : 0; - - uint32_t major = strtoul(versionText, 0, 10); - - return (major << 16) + minor; - } - - static PX_INLINE bool isWhiteSpace(char c) - { - return c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == ','; - } - - static PX_INLINE const char * skipWhiteSpace(const char *scan) - { - while ( isWhiteSpace(*scan) && *scan ) scan++; - return *scan ? scan : 0; - } - - static PX_FORCE_INLINE const char * skipNonWhiteSpace(const char* scan) - { - while ( !isWhiteSpace(*scan) && *scan ) scan++; - return *scan ? scan : 0; - } - - bool XmlDeserializer::verifyObject(Interface *obj, const physx::shdfnd::FastXml::AttributePairs& attr) - { - if( ReadVersion(attr) != obj->version() ) - { - XML_WARNING("unknown error"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_UNKNOWN; - return false; - } - - char *checksum = (char *)attr.get("checksum"); - if( checksum && !DoIgnoreChecksum(*obj) ) - { - uint32_t objBits; - const uint32_t *objChecksum = obj->checksum(objBits); - - uint32_t bits = 0; - - char *cur = checksum, *next = 0; - bool sameBits = true; - for(uint32_t i = 0; ; ++i, cur = next) - { - uint32_t val = (uint32_t)strtoul(cur, &next, 0); //FIXME: strtoul is not safe - if( cur == next ) - break; - - bits += 32; - if( bits > objBits || val != objChecksum[i] ) - { - NV_PARAM_TRAITS_WARNING( - mTraits, - "Schema checksum is different for object of class %s and version %u, " - "asset may be corrupted", - obj->className(), - (unsigned)obj->version() - ); - sameBits = false; - break; - } - } - - if( objBits != bits && sameBits ) - { - NV_PARAM_TRAITS_WARNING( - mTraits, - "Schema checksum is different for object of class %s and version %u, " - "asset may be corrupted", - obj->className(), - (unsigned)obj->version() - ); - } - } //if( checksum ) - - return true; - } - - bool XmlDeserializer::initAddressString(char *dest, uint32_t len, const char *name) - { - char *end = dest + len; - - for (uint32_t i = 0; i < tos().getIndex(); i++) - { - FieldInfo &field = tos().getFieldInfo(i); - - const char *n = field.name; - FieldType type = field.type; - - if( SKIP == type ) - continue; - - while ( n && *n && dest < end ) - *dest++ = *n++; - - if ( ARRAY == type ) - { - char temp[512]; - physx::shdfnd::snprintf(temp, 512, "[%d]", field.idx); - - if( dest + ::strlen(temp) >= end ) - { - XML_WARNING("buffer overflow"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; - return false; - } - - const char *scan = temp; - while ( *scan && dest < end ) - { - *dest++ = *scan++; - } - } - else - { - if( dest + 1 >= end ) - { - XML_WARNING("buffer overflow"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; - return false; - } - - *dest++ = '.'; - } - } - - while ( name && *name && dest < end ) - { - *dest++ = *name++; - } - - *dest = 0; - //printf("Fully qualified name: %s\n", scratch ); - - return true; - } - - bool XmlDeserializer::processClose(const char *tag,uint32_t depth,bool &isError) - { - isError = true; //By default if we return with false it's due to error - - if( strcmp(tag, "NxParameters") == 0 || - strcmp(tag, "NvParameters") == 0) - { - mInRootElement = false; - - // in xml there's only 1 root element allowed, - // so we want to stop after the first NvParameters - isError = false; - return false; - } - - static const char *validTags[] = { - "struct", - "value", - "array" - }; - - for(uint32_t i = 0; i < PX_ARRAY_SIZE(validTags); ++i) - { - if( 0 != ::strcmp(validTags[i], tag) ) - continue; - -# ifndef NDEBUG - uint32_t idx = tos().getIndex(); - DEBUG_ASSERT( idx > 0 ); - - static FieldType validTypes[] = { - STRUCT, - VALUE, - ARRAY - }; - - // Make gcc happy - const FieldType* tmp = &validTypes[0]; - PX_UNUSED(tmp); - - FieldType type = tos().getFieldInfo(idx - 1).type; - PX_UNUSED(type); - DEBUG_ASSERT( type == SKIP || type == validTypes[i] ); -# endif - - if( !popField() ) - return false; - - if (depth == 1 && mRootIndex > MAX_ROOT_OBJ) - { - DEBUG_ASSERT(i == 1); - mObjects[0].getObject()->destroy(); - } - - return tos().getIndex() ? depth != 0 : popObj(); - } - - return false; - } - - bool XmlDeserializer::processElement( - const char *elementName, - const char *elementData, - const physx::shdfnd::FastXml::AttributePairs& attr, - int32_t /*lineno*/) - { - //Force DOCTYPE - if( !mHasDoctype ) - { - XML_WARNING("DOCTYPE is missing"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_MISSING_DOCTYPE; - return false; - } - - if( strcmp(elementName, "NxParameters") == 0 || - strcmp(elementName, "NvParameters") == 0) - { - if( mObjIndex ) - { - XML_WARNING("NvParameters must be root element"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_MISSING_ROOT_ELEMENT; - return false; - } - - if( mInRootElement ) - { - XML_WARNING("More than one root element encountered"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_NESTING; - return false; - } - - uint32_t ver = ReadVersion(attr); - if( ver != mVer ) - { - XML_WARNING("unknown version of APX file format: %u", (unsigned)ver); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_FILE_VERSION; - return false; - } - - const char* numObjects = attr.get("numObjects"); - if (numObjects != NULL) - { - PX_ASSERT(atoi(numObjects) >= 0); - const uint32_t num = static_cast(atoi(numObjects)); - if (num > MAX_ROOT_OBJ) - { - XML_WARNING("APX file has more than %d root objects, only %d will be read", num, MAX_ROOT_OBJ); - } - } - - - ++mRootTags; - mInRootElement = true; - - return true; - } - - if( mRootTags > 0 && !mInRootElement ) - { - XML_WARNING("element %s not under root element", elementName); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_MISSING_ROOT_ELEMENT; - return false; - } - - if ( strcmp(elementName, "struct") == 0 ) - { - const char *name = attr.get("name"); - - if( !mObjIndex ) - { - XML_WARNING("struct-element %s not under value-element", name); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_NESTING; - return false; - } - - pushField(name, STRUCT); - } - else if ( strcmp(elementName, "value") == 0 ) - { - if( !mObjIndex ) //Root object? - { - const char *className = attr.get("className"); - - uint32_t version = ReadVersion(attr); - - Interface *obj = mTraits->createNvParameterized(className, version); - if( !obj ) - { - XML_WARNING("failed to create object of type %s and version %u", className, (unsigned)version); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_OBJECT_CREATION_FAILED; - return false; - } - - const char *objectName = attr.get("objectName"); - if( objectName ) - obj->setName(objectName); - - if (mRootIndex < MAX_ROOT_OBJ) - { - mRootObjs[mRootIndex] = obj; - } - mRootIndex++; - - pushObj(obj); - pushField("", SKIP); //Root should not be used in initAddressString - - return true; - } - - const char *name = attr.get("name"); - - char scratch[2048]; - if( !initAddressString(scratch, sizeof(scratch), name) ) - { - return false; - } - - pushField(name, VALUE); - - Interface *obj = tos().getObject(); - if( !obj ) - { - XML_WARNING("unknown error"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_UNKNOWN; - return false; - } - - Handle handle(*obj, scratch); - if( !handle.isValid() ) - { - XML_WARNING("%s: invalid path", scratch); - DEBUG_ALWAYS_ASSERT(); -// mError = Serializer::ERROR_INVALID_PARAM_HANDLE; - return true; - } - - const char *type = attr.get("type"); - const char *expectedType = typeToStr(handle.parameterDefinition()->type()); - if ( type && 0 != physx::shdfnd::stricmp(type, expectedType) ) - { - XML_WARNING("%s: invalid type %s (expected %s)", scratch, type, expectedType); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_ATTR; - return false; - } - - const char *included = attr.get("included"); - if ( included ) - { - bool isIncludedRef = 0 != atoi(included); - if( isIncludedRef != handle.parameterDefinition()->isIncludedRef() ) - { - XML_WARNING("%s: unexpected included-attribute", scratch); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_ATTR; - return false; - } - - const char *className = attr.get("className"); - if( !className ) - { - if( attr.get("classNames") ) - { - // Ref is NULL - - Interface *oldObj = 0; - if( NvParameterized::ERROR_NONE != handle.getParamRef(oldObj) ) - return false; - if( oldObj ) - oldObj->destroy(); - - handle.setParamRef(0); - - return true; - } - else - { - XML_WARNING("%s: missing both className and classNames attribute", scratch); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_ATTR; - return false; - } - } - - uint32_t version = ReadVersion(attr); - - Interface *refObj = 0; - if( isIncludedRef ) - refObj = mTraits->createNvParameterized(className, version); - else - { - void *buf = mTraits->alloc(sizeof(NvParameters)); - refObj = PX_PLACEMENT_NEW(buf, NvParameters)(mTraits); - - refObj->setClassName(className); - } - - if( !refObj ) - { - XML_WARNING("%s: failed to create object of type %s and version %u", scratch, className, (unsigned)version); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_OBJECT_CREATION_FAILED; - return false; - } - - if( refObj && (-1 == handle.parameterDefinition()->refVariantValIndex(refObj->className())) ) - { - char longName[256]; - handle.getLongName(longName, sizeof(longName)); - NV_PARAM_TRAITS_WARNING( - mTraits, - "%s: setting reference of invalid class %s", - longName, - refObj->className() - ); - } - - if( NvParameterized::ERROR_NONE != handle.setParamRef(refObj) ) - { - XML_WARNING("%s: failed to set reference of type %s", scratch, className); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_REFERENCE; - return false; - } - - const char *objectName = attr.get("objectName"); - if( objectName && refObj ) - refObj->setName(objectName); - - if( isIncludedRef ) - pushObj(refObj); - else if ( elementData && refObj ) - refObj->setName(elementData); - } - else - { - if ( elementData == 0 ) - elementData = ""; - - const char *isNull = attr.get("null"); - if( isNull && 0 != atoi(isNull) ) - { - //Only strings and enums may be NULL so it's safe to call setParamString - - DataType t = handle.parameterDefinition()->type(); - PX_UNUSED(t); - DEBUG_ASSERT( TYPE_STRING == t || TYPE_ENUM == t ); - - handle.setParamString(0); - } - else - { - if( NvParameterized::ERROR_NONE != handle.strToValue(elementData, 0) ) - { - XML_WARNING("%s: failed to convert string to value: %10s", scratch, elementData); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_STRING2VAL_FAILED; - return false; - } - } - } //if ( included ) - } - else if ( strcmp(elementName, "array") == 0 ) - { - const char *name = attr.get("name"); - - if( !mObjIndex ) - { - XML_WARNING("array-element %s not under value-element", name); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_NESTING; - return false; - } - - int32_t arraySize = 0; - if ( const char *sz = attr.get("size") ) - { - PX_ASSERT(atoi(sz) >= 0); - arraySize = (int32_t)atoi(sz); - } - - if ( arraySize > 0 ) - { - Interface *obj = tos().getObject(); - if( !obj ) - { - XML_WARNING("unknown error"); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_UNKNOWN; - return false; - } - - char scratch[2048]; - if( !initAddressString(scratch, sizeof(scratch), name) ) - { - return false; - } - - Handle handle(*obj, scratch); - if( !handle.isValid() ) - { - - mError = Serializer::ERROR_INVALID_PARAM_HANDLE; - XML_WARNING("%s: invalid path", scratch); - DEBUG_ALWAYS_ASSERT(); - - return false; - } - - if( !handle.parameterDefinition()->arraySizeIsFixed() ) - if( NvParameterized::ERROR_NONE != handle.resizeArray(arraySize) ) - { - XML_WARNING("%s: failed to resize array", scratch); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_ARRAY; - return false; - } - if ( elementData ) - { - const char *scan = elementData; - - handle.set(0); - const Definition *paramDef = handle.parameterDefinition(); - handle.popIndex(); - - - if ( paramDef->type() == TYPE_STRUCT ) - { - // read the structElements field - const char* structElements = attr.get("structElements"); - - int32_t* simpleStructRedirect = getSimpleStructRedirect(static_cast(paramDef->numChildren())); - uint32_t numRedirects = 0; - while (structElements && *structElements) - { - char fieldName[64]; - char type[16]; - - size_t count = 0; - while(*structElements != 0 && *structElements != ',' && *structElements != '(') - fieldName[count++] = *structElements++; - if( count >= sizeof(fieldName) ) - { - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; - return false; - } - fieldName[count] = 0; - - if (*structElements == '(') - { - structElements++; - count = 0; - while(*structElements != 0 && *structElements != ',' && *structElements != ')') - type[count++] = *structElements++; - if( count >= sizeof(type) ) - { - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; - return false; - } - type[count] = 0; - - } - if (*structElements == ')') - structElements++; - if (*structElements == ',') - structElements++; - - const Definition* childDef = paramDef->child(fieldName, simpleStructRedirect[numRedirects]); - const char* trueType = childDef ? typeToStr(childDef->type()) : 0; - if (childDef && ::strcmp(trueType, type) != 0) - { - XML_WARNING( - "%s[].%s: unexpected type: %s (must be %s)", - scratch, fieldName, type, trueType ? trueType : ""); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_DATA_TYPE; - return false; - } - - // -2 means to reed the data but not storing it - // -1 means to not read the data as it was not serialized' - // i = [0 .. n] means to read the data and store it in child i - if (childDef == NULL) - { - simpleStructRedirect[numRedirects] = -2; - - // Fail fast - XML_WARNING("%s[]: unexpected structure field: %s", scratch, fieldName); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_INVALID_PARAM_HANDLE; - return false; - } - - numRedirects++; - } - - const int32_t numChildren = paramDef->numChildren(); - for(int32_t i = 0; i < arraySize; ++i) - { - handle.set(i); - for( int32_t j=0; j 0 ) - - pushField(name, ARRAY); - } - else - { - XML_WARNING("unknown element %s", elementName); - DEBUG_ALWAYS_ASSERT(); - mError = Serializer::ERROR_UNKNOWN_XML_TAG; - return false; - } - - return true; - } - - int32_t* XmlDeserializer::getSimpleStructRedirect(uint32_t size) - { - if (mSimpleStructRedirectSize < size) - { - if (mSimpleStructRedirect != NULL) - mTraits->free(mSimpleStructRedirect); - - if (size < 16) - size = 16; // just to not allocate all these small things more than once - - mSimpleStructRedirect = (int32_t*)mTraits->alloc(sizeof(int32_t) * size); - mSimpleStructRedirectSize = size; - } - - memset(mSimpleStructRedirect, -1, sizeof(int32_t) * size); - return mSimpleStructRedirect; - } - -} +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#include "PxSimpleTypes.h" +#include "NvParameters.h" +#include "nvparameterized/NvParameterizedTraits.h" + +#include "NvTraitsInternal.h" + +#include "XmlDeserializer.h" + +#define XML_WARNING(_format, ...) \ + NV_PARAM_TRAITS_WARNING(mTraits, "XML serializer: " _format, ##__VA_ARGS__) + + + +namespace NvParameterized +{ + +/*! +Get number of elements in array +*/ +template +char (&ArraySizeHelper(T (&array)[N]))[N]; +#define PX_ARRAY_SIZE(_array) (sizeof(ArraySizeHelper(_array))) + + static uint32_t ReadVersion(const physx::shdfnd::FastXml::AttributePairs& attr) + { + const char *versionText = attr.get("version"); + + // If there's no version, assume version is 0.0 + if( !versionText ) + return 0; + + //XML stores versions in "x.y"-format + //FIXME: strtoul is unsafe + + const char *dot = strchr(versionText, '.'); + uint32_t minor = dot ? strtoul(dot + 1, 0, 10) : 0; + + uint32_t major = strtoul(versionText, 0, 10); + + return (major << 16) + minor; + } + + static PX_INLINE bool isWhiteSpace(char c) + { + return c == ' ' || c == '\t' || c == '\r' || c == '\n' || c == ','; + } + + static PX_INLINE const char * skipWhiteSpace(const char *scan) + { + while ( isWhiteSpace(*scan) && *scan ) scan++; + return *scan ? scan : 0; + } + + static PX_FORCE_INLINE const char * skipNonWhiteSpace(const char* scan) + { + while ( !isWhiteSpace(*scan) && *scan ) scan++; + return *scan ? scan : 0; + } + + bool XmlDeserializer::verifyObject(Interface *obj, const physx::shdfnd::FastXml::AttributePairs& attr) + { + if( ReadVersion(attr) != obj->version() ) + { + XML_WARNING("unknown error"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_UNKNOWN; + return false; + } + + char *checksum = (char *)attr.get("checksum"); + if( checksum && !DoIgnoreChecksum(*obj) ) + { + uint32_t objBits; + const uint32_t *objChecksum = obj->checksum(objBits); + + uint32_t bits = 0; + + char *cur = checksum, *next = 0; + bool sameBits = true; + for(uint32_t i = 0; ; ++i, cur = next) + { + uint32_t val = (uint32_t)strtoul(cur, &next, 0); //FIXME: strtoul is not safe + if( cur == next ) + break; + + bits += 32; + if( bits > objBits || val != objChecksum[i] ) + { + NV_PARAM_TRAITS_WARNING( + mTraits, + "Schema checksum is different for object of class %s and version %u, " + "asset may be corrupted", + obj->className(), + (unsigned)obj->version() + ); + sameBits = false; + break; + } + } + + if( objBits != bits && sameBits ) + { + NV_PARAM_TRAITS_WARNING( + mTraits, + "Schema checksum is different for object of class %s and version %u, " + "asset may be corrupted", + obj->className(), + (unsigned)obj->version() + ); + } + } //if( checksum ) + + return true; + } + + bool XmlDeserializer::initAddressString(char *dest, uint32_t len, const char *name) + { + char *end = dest + len; + + for (uint32_t i = 0; i < tos().getIndex(); i++) + { + FieldInfo &field = tos().getFieldInfo(i); + + const char *n = field.name; + FieldType type = field.type; + + if( SKIP == type ) + continue; + + while ( n && *n && dest < end ) + *dest++ = *n++; + + if ( ARRAY == type ) + { + char temp[512]; + physx::shdfnd::snprintf(temp, 512, "[%d]", field.idx); + + if( dest + ::strlen(temp) >= end ) + { + XML_WARNING("buffer overflow"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; + return false; + } + + const char *scan = temp; + while ( *scan && dest < end ) + { + *dest++ = *scan++; + } + } + else + { + if( dest + 1 >= end ) + { + XML_WARNING("buffer overflow"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; + return false; + } + + *dest++ = '.'; + } + } + + while ( name && *name && dest < end ) + { + *dest++ = *name++; + } + + *dest = 0; + //printf("Fully qualified name: %s\n", scratch ); + + return true; + } + + bool XmlDeserializer::processClose(const char *tag,uint32_t depth,bool &isError) + { + isError = true; //By default if we return with false it's due to error + + if( strcmp(tag, "NxParameters") == 0 || + strcmp(tag, "NvParameters") == 0) + { + mInRootElement = false; + + // in xml there's only 1 root element allowed, + // so we want to stop after the first NvParameters + isError = false; + return false; + } + + static const char *validTags[] = { + "struct", + "value", + "array" + }; + + for(uint32_t i = 0; i < PX_ARRAY_SIZE(validTags); ++i) + { + if( 0 != ::strcmp(validTags[i], tag) ) + continue; + +# ifndef NDEBUG + uint32_t idx = tos().getIndex(); + DEBUG_ASSERT( idx > 0 ); + + static FieldType validTypes[] = { + STRUCT, + VALUE, + ARRAY + }; + + // Make gcc happy + const FieldType* tmp = &validTypes[0]; + PX_UNUSED(tmp); + + FieldType type = tos().getFieldInfo(idx - 1).type; + PX_UNUSED(type); + DEBUG_ASSERT( type == SKIP || type == validTypes[i] ); +# endif + + if( !popField() ) + return false; + + if (depth == 1 && mRootIndex > MAX_ROOT_OBJ) + { + DEBUG_ASSERT(i == 1); + mObjects[0].getObject()->destroy(); + } + + return tos().getIndex() ? depth != 0 : popObj(); + } + + return false; + } + + bool XmlDeserializer::processElement( + const char *elementName, + const char *elementData, + const physx::shdfnd::FastXml::AttributePairs& attr, + int32_t /*lineno*/) + { + //Force DOCTYPE + if( !mHasDoctype ) + { + XML_WARNING("DOCTYPE is missing"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_MISSING_DOCTYPE; + return false; + } + + if( strcmp(elementName, "NxParameters") == 0 || + strcmp(elementName, "NvParameters") == 0) + { + if( mObjIndex ) + { + XML_WARNING("NvParameters must be root element"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_MISSING_ROOT_ELEMENT; + return false; + } + + if( mInRootElement ) + { + XML_WARNING("More than one root element encountered"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_NESTING; + return false; + } + + uint32_t ver = ReadVersion(attr); + if( ver != mVer ) + { + XML_WARNING("unknown version of APX file format: %u", (unsigned)ver); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_FILE_VERSION; + return false; + } + + const char* numObjects = attr.get("numObjects"); + if (numObjects != NULL) + { + PX_ASSERT(atoi(numObjects) >= 0); + const uint32_t num = static_cast(atoi(numObjects)); + if (num > MAX_ROOT_OBJ) + { + XML_WARNING("APX file has more than %d root objects, only %d will be read", num, MAX_ROOT_OBJ); + } + } + + + ++mRootTags; + mInRootElement = true; + + return true; + } + + if( mRootTags > 0 && !mInRootElement ) + { + XML_WARNING("element %s not under root element", elementName); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_MISSING_ROOT_ELEMENT; + return false; + } + + if ( strcmp(elementName, "struct") == 0 ) + { + const char *name = attr.get("name"); + + if( !mObjIndex ) + { + XML_WARNING("struct-element %s not under value-element", name); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_NESTING; + return false; + } + + pushField(name, STRUCT); + } + else if ( strcmp(elementName, "value") == 0 ) + { + if( !mObjIndex ) //Root object? + { + const char *className = attr.get("className"); + + uint32_t version = ReadVersion(attr); + + Interface *obj = mTraits->createNvParameterized(className, version); + if( !obj ) + { + XML_WARNING("failed to create object of type %s and version %u", className, (unsigned)version); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_OBJECT_CREATION_FAILED; + return false; + } + + const char *objectName = attr.get("objectName"); + if( objectName ) + obj->setName(objectName); + + if (mRootIndex < MAX_ROOT_OBJ) + { + mRootObjs[mRootIndex] = obj; + } + mRootIndex++; + + pushObj(obj); + pushField("", SKIP); //Root should not be used in initAddressString + + return true; + } + + const char *name = attr.get("name"); + + char scratch[2048]; + if( !initAddressString(scratch, sizeof(scratch), name) ) + { + return false; + } + + pushField(name, VALUE); + + Interface *obj = tos().getObject(); + if( !obj ) + { + XML_WARNING("unknown error"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_UNKNOWN; + return false; + } + + Handle handle(*obj, scratch); + if( !handle.isValid() ) + { + XML_WARNING("%s: invalid path", scratch); + DEBUG_ALWAYS_ASSERT(); +// mError = Serializer::ERROR_INVALID_PARAM_HANDLE; + return true; + } + + const char *type = attr.get("type"); + const char *expectedType = typeToStr(handle.parameterDefinition()->type()); + if ( type && 0 != physx::shdfnd::stricmp(type, expectedType) ) + { + XML_WARNING("%s: invalid type %s (expected %s)", scratch, type, expectedType); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_ATTR; + return false; + } + + const char *included = attr.get("included"); + if ( included ) + { + bool isIncludedRef = 0 != atoi(included); + if( isIncludedRef != handle.parameterDefinition()->isIncludedRef() ) + { + XML_WARNING("%s: unexpected included-attribute", scratch); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_ATTR; + return false; + } + + const char *className = attr.get("className"); + if( !className ) + { + if( attr.get("classNames") ) + { + // Ref is NULL + + Interface *oldObj = 0; + if( NvParameterized::ERROR_NONE != handle.getParamRef(oldObj) ) + return false; + if( oldObj ) + oldObj->destroy(); + + handle.setParamRef(0); + + return true; + } + else + { + XML_WARNING("%s: missing both className and classNames attribute", scratch); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_ATTR; + return false; + } + } + + uint32_t version = ReadVersion(attr); + + Interface *refObj = 0; + if( isIncludedRef ) + refObj = mTraits->createNvParameterized(className, version); + else + { + void *buf = mTraits->alloc(sizeof(NvParameters)); + refObj = PX_PLACEMENT_NEW(buf, NvParameters)(mTraits); + + refObj->setClassName(className); + } + + if( !refObj ) + { + XML_WARNING("%s: failed to create object of type %s and version %u", scratch, className, (unsigned)version); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_OBJECT_CREATION_FAILED; + return false; + } + + if( refObj && (-1 == handle.parameterDefinition()->refVariantValIndex(refObj->className())) ) + { + char longName[256]; + handle.getLongName(longName, sizeof(longName)); + NV_PARAM_TRAITS_WARNING( + mTraits, + "%s: setting reference of invalid class %s", + longName, + refObj->className() + ); + } + + if( NvParameterized::ERROR_NONE != handle.setParamRef(refObj) ) + { + XML_WARNING("%s: failed to set reference of type %s", scratch, className); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_REFERENCE; + return false; + } + + const char *objectName = attr.get("objectName"); + if( objectName && refObj ) + refObj->setName(objectName); + + if( isIncludedRef ) + pushObj(refObj); + else if ( elementData && refObj ) + refObj->setName(elementData); + } + else + { + if ( elementData == 0 ) + elementData = ""; + + const char *isNull = attr.get("null"); + if( isNull && 0 != atoi(isNull) ) + { + //Only strings and enums may be NULL so it's safe to call setParamString + + DataType t = handle.parameterDefinition()->type(); + PX_UNUSED(t); + DEBUG_ASSERT( TYPE_STRING == t || TYPE_ENUM == t ); + + handle.setParamString(0); + } + else + { + if( NvParameterized::ERROR_NONE != handle.strToValue(elementData, 0) ) + { + XML_WARNING("%s: failed to convert string to value: %10s", scratch, elementData); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_STRING2VAL_FAILED; + return false; + } + } + } //if ( included ) + } + else if ( strcmp(elementName, "array") == 0 ) + { + const char *name = attr.get("name"); + + if( !mObjIndex ) + { + XML_WARNING("array-element %s not under value-element", name); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_NESTING; + return false; + } + + int32_t arraySize = 0; + if ( const char *sz = attr.get("size") ) + { + PX_ASSERT(atoi(sz) >= 0); + arraySize = (int32_t)atoi(sz); + } + + if ( arraySize > 0 ) + { + Interface *obj = tos().getObject(); + if( !obj ) + { + XML_WARNING("unknown error"); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_UNKNOWN; + return false; + } + + char scratch[2048]; + if( !initAddressString(scratch, sizeof(scratch), name) ) + { + return false; + } + + Handle handle(*obj, scratch); + if( !handle.isValid() ) + { + + mError = Serializer::ERROR_INVALID_PARAM_HANDLE; + XML_WARNING("%s: invalid path", scratch); + DEBUG_ALWAYS_ASSERT(); + + return false; + } + + if( !handle.parameterDefinition()->arraySizeIsFixed() ) + if( NvParameterized::ERROR_NONE != handle.resizeArray(arraySize) ) + { + XML_WARNING("%s: failed to resize array", scratch); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_ARRAY; + return false; + } + if ( elementData ) + { + const char *scan = elementData; + + handle.set(0); + const Definition *paramDef = handle.parameterDefinition(); + handle.popIndex(); + + + if ( paramDef->type() == TYPE_STRUCT ) + { + // read the structElements field + const char* structElements = attr.get("structElements"); + + int32_t* simpleStructRedirect = getSimpleStructRedirect(static_cast(paramDef->numChildren())); + uint32_t numRedirects = 0; + while (structElements && *structElements) + { + char fieldName[64]; + char type[16]; + + size_t count = 0; + while(*structElements != 0 && *structElements != ',' && *structElements != '(') + fieldName[count++] = *structElements++; + if( count >= sizeof(fieldName) ) + { + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; + return false; + } + fieldName[count] = 0; + + if (*structElements == '(') + { + structElements++; + count = 0; + while(*structElements != 0 && *structElements != ',' && *structElements != ')') + type[count++] = *structElements++; + if( count >= sizeof(type) ) + { + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INTERNAL_BUFFER_OVERFLOW; + return false; + } + type[count] = 0; + + } + if (*structElements == ')') + structElements++; + if (*structElements == ',') + structElements++; + + const Definition* childDef = paramDef->child(fieldName, simpleStructRedirect[numRedirects]); + const char* trueType = childDef ? typeToStr(childDef->type()) : 0; + if (childDef && ::strcmp(trueType, type) != 0) + { + XML_WARNING( + "%s[].%s: unexpected type: %s (must be %s)", + scratch, fieldName, type, trueType ? trueType : ""); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_DATA_TYPE; + return false; + } + + // -2 means to reed the data but not storing it + // -1 means to not read the data as it was not serialized' + // i = [0 .. n] means to read the data and store it in child i + if (childDef == NULL) + { + simpleStructRedirect[numRedirects] = -2; + + // Fail fast + XML_WARNING("%s[]: unexpected structure field: %s", scratch, fieldName); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_INVALID_PARAM_HANDLE; + return false; + } + + numRedirects++; + } + + const int32_t numChildren = paramDef->numChildren(); + for(int32_t i = 0; i < arraySize; ++i) + { + handle.set(i); + for( int32_t j=0; j 0 ) + + pushField(name, ARRAY); + } + else + { + XML_WARNING("unknown element %s", elementName); + DEBUG_ALWAYS_ASSERT(); + mError = Serializer::ERROR_UNKNOWN_XML_TAG; + return false; + } + + return true; + } + + int32_t* XmlDeserializer::getSimpleStructRedirect(uint32_t size) + { + if (mSimpleStructRedirectSize < size) + { + if (mSimpleStructRedirect != NULL) + mTraits->free(mSimpleStructRedirect); + + if (size < 16) + size = 16; // just to not allocate all these small things more than once + + mSimpleStructRedirect = (int32_t*)mTraits->alloc(sizeof(int32_t) * size); + mSimpleStructRedirectSize = size; + } + + memset(mSimpleStructRedirect, -1, sizeof(int32_t) * size); + return mSimpleStructRedirect; + } + +} diff --git a/sdk/extensions/import/apexmodules/NvParameterized/src/XmlSerializer.cpp b/sdk/extensions/import/apexmodules/NvParameterized/src/XmlSerializer.cpp old mode 100644 new mode 100755 index b3f3c22..120815e --- a/sdk/extensions/import/apexmodules/NvParameterized/src/XmlSerializer.cpp +++ b/sdk/extensions/import/apexmodules/NvParameterized/src/XmlSerializer.cpp @@ -1,1270 +1,1270 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#include "PxSimpleTypes.h" -#include "PxAssert.h" -#include "PsArray.h" -#include "PxVec3.h" -#include "PxQuat.h" -#include "PxBounds3.h" -#include "PsFastXml.h" -#include "PsIOStream.h" - -#include "nvparameterized/NvSerializer.h" -#include "XmlSerializer.h" -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" - -#include "NvTraitsInternal.h" -#include "XmlDeserializer.h" - -#define PRINT_ELEMENT_HINTS 0 -#define PRINT_ELEMENTS_WITHIN_EMPTY_ARRAYS 0 - -#define UNOPTIMIZED_XML 0 - -namespace NvParameterized -{ - -static const char indentStr[] = " "; - -struct traversalState -{ - traversalState() - { - indent[0] = 0; - indentLen = 0; - level = 0; - } - - void incLevel() - { - physx::shdfnd::strlcat(indent, (uint32_t)strlen(indent) + (uint32_t)strlen(indentStr) + 1, indentStr); - level++; - } - - void decLevel() - { - level--; - indentLen = (sizeof(indentStr) - 1) * level; - if(indentLen < sizeof(indent)) - indent[indentLen] = 0; - } - - char indent[4096]; - uint32_t indentLen; - int32_t level; -}; - -Serializer::ErrorType XmlSerializer::peekNumObjects(char *data, uint32_t len, uint32_t &numObjects) -{ - //FIXME: this code is not robust - - data[len-1] = 0; - - const char *root = ::strstr(data, " => read className - mClassNames[mNumObjs] = mTraits->strdup( attr.get("className") ); - ++mNumObjs; - - return mNumObjs < mNumClassNames; - } - - void *allocate(uint32_t size) { return ::malloc(size); } - void deallocate(void *ptr) { ::free(ptr); }; - }; - - ClassNameReader myReader(classNames, numClassNames, mTraits); - physx::shdfnd::FastXml *xmlParser = physx::shdfnd::createFastXml(&myReader); - - InputDataFromPxFileBuf inputData(stream); - xmlParser->processXml(inputData); - numClassNames = myReader.numObjs(); - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType XmlSerializer::peekNumObjectsInplace(const void * data, uint32_t dataLen, uint32_t & numObjects) -{ - if ( !dataLen || ! data ) - return ERROR_STREAM_ERROR; - - char hdr[100]; - uint32_t len = physx::PxMin(dataLen, sizeof(hdr) - 1); - physx::shdfnd::strlcpy(hdr, len+1, (const char *)data); - - return peekNumObjects(hdr, len, numObjects); -} - -Serializer::ErrorType XmlSerializer::peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects) -{ - //FIXME: this code is not robust - - char hdr[100]; - uint32_t len = stream.peek(hdr, sizeof(hdr)); - - return peekNumObjects(hdr, len, numObjects); -} - -#ifndef WITHOUT_APEX_SERIALIZATION - -static void storeVersionAndChecksum(physx::PsIOStream &stream, const Interface *obj) -{ - uint16_t major = obj->getMajorVersion(), - minor = obj->getMinorVersion(); - - stream << " version=\"" << major << '.' << minor << '"'; - - uint32_t bits; - const uint32_t *checksum = obj->checksum(bits); - - uint32_t u32s = bits / 32; - PX_ASSERT( 0 == bits % 32 ); - - stream << " checksum=\""; - for(uint32_t i = 0; i < u32s; ++i) - { - char hex[20]; - physx::shdfnd::snprintf(hex, sizeof(hex), "0x%x", checksum[i]); - stream << hex; - if( u32s - 1 != i ) - stream << ' '; - } - stream << '"'; -} - -static bool IsSimpleType(const Definition *d) -{ - //We do not consider strings simple because it causes errors with NULL and "" - if (d->type() == TYPE_ARRAY || d->type() == TYPE_STRUCT || - d->type() == TYPE_REF || d->type() == TYPE_STRING || - d->type() == TYPE_ENUM) - { - return false; - } - else - { - PX_ASSERT( d->numChildren() == 0 ); - return true; - } -} - -static bool IsSimpleStruct(const Definition *pd) -{ - bool ret = true; - - int32_t count = pd->numChildren(); - for (int32_t i=0; i < count; i++) - { - const Definition *d = pd->child(i); - if ( !IsSimpleType(d) ) - { - ret = false; - break; - } - } - - return ret; -} - -static bool DoesNeedQuote(const char *c) -{ - bool ret = false; - while ( *c ) - { - if ( *c == 32 || *c == ',' || *c == '<' || *c == '>' || *c == 9 ) - { - ret = true; - break; - } - c++; - } - - return ret; -} - -Serializer::ErrorType XmlSerializer::traverseParamDefTree( - const Interface &obj, - physx::PsIOStream &stream, - traversalState &state, - Handle &handle, - bool printValues) -{ - bool isRoot = !handle.numIndexes() && 0 == state.level; - - if( !handle.numIndexes() ) - { - NV_PARAM_ERR_CHECK_RETURN( obj.getParameterHandle("", handle), Serializer::ERROR_UNKNOWN ); - - if( isRoot ) - { - NV_ERR_CHECK_RETURN( emitElement(obj, stream, "value", handle, false, true, true) ); - stream << "\n"; - - state.incLevel(); - } - } - - const Definition *paramDef = handle.parameterDefinition(); - - if( !paramDef->hint("DONOTSERIALIZE") ) - { - -# if PRINT_ELEMENT_HINTS - bool includedRef = false; - - NV_ERR_CHECK_RETURN( emitElementNxHints(stream, handle, state, includedRef) ); -# else - bool includedRef = paramDef->isIncludedRef(); -# endif - - switch( paramDef->type() ) - { - case TYPE_STRUCT: - { - stream << state.indent; - NV_ERR_CHECK_RETURN( emitElement(obj, stream, "struct", handle, false, true) ); - stream << "\n"; - - state.incLevel(); - for(int32_t i = 0; i < paramDef->numChildren(); ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); - handle.popIndex(); - } - - state.decLevel(); - - stream << state.indent << "\n"; - - break; - } - - case TYPE_ARRAY: - { - stream << state.indent; - NV_ERR_CHECK_RETURN( emitElement(obj, stream, "array", handle, false, true) ); - - int32_t arraySize; - NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(arraySize), Serializer::ERROR_INVALID_ARRAY ); - - if( arraySize) - stream << "\n"; - - state.incLevel(); - - if ( arraySize > 0 ) - { -#if UNOPTIMIZED_XML - for(int32_t i = 0; i < arraySize; ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); - handle.popIndex(); - } -#else - handle.set(0); - const Definition *pd = handle.parameterDefinition(); - handle.popIndex(); - switch ( pd->type() ) - { - case TYPE_STRUCT: - { - if ( IsSimpleStruct(pd) ) - { - for(int32_t i = 0; i < arraySize; ++i) - { - - if ( (i&3) == 0 ) - { - if ( i ) - stream << "\n"; - stream << state.indent; - } - - handle.set(i); - - for( int32_t j=0; jnumChildren(); j++ ) - { - if (pd->child(j)->hint("DONOTSERIALIZE")) - continue; - - handle.set(j); - - char buf[512]; - const char *str = 0; - NV_PARAM_ERR_CHECK_RETURN( handle.valueToStr(buf, sizeof(buf), str), Serializer::ERROR_VAL2STRING_FAILED ); - - stream << str; - - if ( (j+1) < pd->numChildren() ) - { - stream << " "; - } - - handle.popIndex(); - } - - if ( (i+1) < arraySize ) - { - stream << ","; - } - - handle.popIndex(); - } //i - stream << "\n"; - } - else - { - for(int32_t i = 0; i < arraySize; ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); - handle.popIndex(); - } - } - } - break; - - case TYPE_REF: - for(int32_t i = 0; i < arraySize; ++i) - { - handle.set(i); - NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); - handle.popIndex(); - } - break; - - case TYPE_BOOL: - { - bool v = false; - stream << state.indent; - for (int32_t i=0; i\n"; - - break; - } - - case TYPE_REF: - { - stream << state.indent; - NV_ERR_CHECK_RETURN( emitElement(obj, stream, "value", handle, includedRef, printValues) ); - - if( printValues && includedRef ) - { - stream << state.indent << "\n"; - - Interface *refObj = 0; - NV_PARAM_ERR_CHECK_RETURN( handle.getParamRef(refObj), Serializer::ERROR_UNKNOWN ); - - if( refObj ) - { - Handle refHandle(refObj); - state.incLevel(); - NV_ERR_CHECK_RETURN( traverseParamDefTree(*refObj, stream, state, refHandle) ); - state.decLevel(); - stream << state.indent; - } - } - - stream << "\n"; - - break; - } - - case TYPE_POINTER: - //Don't do anything with pointer - break; - -NV_PARAMETRIZED_LINAL_DATATYPE_LABELS -NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS -NV_PARAMETRIZED_STRING_DATATYPE_LABELS -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - { - stream << state.indent; - NV_ERR_CHECK_RETURN( emitElement(obj, stream, "value", handle, includedRef, printValues) ); - - char buf[512]; - const char *str = 0; - if( printValues ) - NV_PARAM_ERR_CHECK_RETURN( handle.valueToStr(buf, sizeof(buf), str), Serializer::ERROR_VAL2STRING_FAILED ); - - if( str ) - stream << str; - - stream << "\n"; - - break; - } //default - } //switch - - } //DONOTSERIALIZE - - if( isRoot ) - { - state.decLevel(); - stream << "\n"; - } - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType XmlSerializer::emitElementNxHints( - physx::PsIOStream &stream, - Handle &handle, - traversalState &state, - bool &includedRef) -{ - const Definition *paramDef = handle.parameterDefinition(); - - for(int32_t j = 0; j < paramDef->numHints(); ++j) - { - if( 0 == j ) - stream << "\n"; - - const Hint *hint = paramDef->hint(j); - - stream << state.indent << "\n"; - } - - includedRef = paramDef->isIncludedRef(); - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType XmlSerializer::emitElement( - const Interface &obj, - physx::PsIOStream &stream, - const char *elementName, - Handle &handle, - bool includedRef, - bool printValues, - bool isRoot) -{ - const Definition *paramDef = handle.parameterDefinition(); - - DataType parentType = TYPE_UNDEFINED; - - if( paramDef->parent() ) - parentType = paramDef->parent()->type(); - - stream << '<' << elementName; - - if( isRoot ) - { - stream << " name=\"\"" - << " type=\"Ref\"" - << " className=\"" << obj.className() << "\""; - - const char *objectName = obj.name(); - if( objectName ) - stream << " objectName=\"" << objectName << "\""; - - if( isRoot ) //We only emit version info for root - storeVersionAndChecksum(stream, &obj); - } - else - { - if( parentType != TYPE_ARRAY ) - { - const char *name = paramDef->name(); - stream << " name=\"" << (name ? name : "") << "\""; - } - } - - switch( paramDef->type() ) - { - case TYPE_STRUCT: - break; - - case TYPE_ARRAY: - { - int32_t arraySize; - NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(arraySize), Serializer::ERROR_INVALID_ARRAY ); - stream << " size=\"" << arraySize << '"'; - handle.set(0); - const Definition *pd = handle.parameterDefinition(); - handle.popIndex(); - stream << " type=\"" << typeToStr(pd->type()) << '"'; - // ** handle use case for simple structs written out flat.. -#if !UNOPTIMIZED_XML - if ( pd->type() == TYPE_STRUCT && IsSimpleStruct(pd) ) - { - stream << " structElements=\""; - const int32_t count = pd->numChildren(); - - // find how many of them need serialization - int32_t serializeCount = 0; - for (int32_t i=0; ichild(i); - if (d->hint("DONOTSERIALIZE") == NULL) - { - serializeCount++; - } - } - - for (int32_t i=0; ichild(i); - if (d->hint("DONOTSERIALIZE")) - continue; - - stream << d->name(); - stream << "("; - stream << typeToStr(d->type()); - stream << ")"; - if ( (i+1) < serializeCount ) - { - stream<<","; - } - } - stream << "\""; - } -#endif - // - break; - } - - case TYPE_REF: - { - stream << " type=\"" << typeToStr(paramDef->type()) << '"'; - - Interface *paramPtr = 0; - if( printValues ) - NV_PARAM_ERR_CHECK_RETURN( handle.getParamRef(paramPtr), Serializer::ERROR_UNKNOWN ); - - stream << " included=\"" << ( includedRef ? "1" : "0" ) << "\""; - - if( !printValues || !paramPtr ) - { - stream << " classNames=\""; - for(int32_t i = 0; i < paramDef->numRefVariants(); ++i) - { - const char *ref = paramDef->refVariantVal(i); - if ( DoesNeedQuote(ref) ) - stream << "%20" << ref << "%20" << " "; - else - stream << ref << " "; - } - stream << '"'; - - break; - } - - stream << " className=\"" << paramPtr->className() << '"'; - - const char *objectName = paramPtr->name(); - if( objectName ) - stream << " objectName=\"" << objectName << "\""; - - if( includedRef ) - storeVersionAndChecksum(stream, paramPtr); - - break; - } - - case TYPE_STRING: - case TYPE_ENUM: - { - const char *val; - NV_PARAM_ERR_CHECK_RETURN( handle.getParamString(val), Serializer::ERROR_UNKNOWN ); - - //Make a note if value is NULL - if( !val ) - stream << " null=\"1\""; - } - - //Fall-through to default - -NV_PARAMETRIZED_LINAL_DATATYPE_LABELS -NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - default: - stream << " type=\"" << typeToStr(paramDef->type()) << "\""; - break; - } //switch - - stream << '>'; - - return Serializer::ERROR_NONE; -} - -Serializer::ErrorType XmlSerializer::internalSerialize(physx::PxFileBuf &fbuf, const Interface **objs, uint32_t n, bool doMetadata) -{ - PX_UNUSED(doMetadata); - - physx::PsIOStream stream(fbuf, fbuf.getFileLength()); - stream.setBinary(false); - - uint32_t minor = version() & 0xffffUL, - major = version() >> 16; - - stream << "\n" - << "\n"; - - for(uint32_t i = 0; i < n; ++i) - { - const Interface &obj = *objs[i]; - Handle handle(obj); - - traversalState state; - NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle) ); - } - - stream << "\n"; - - return Serializer::ERROR_NONE; -} - -#endif - -Serializer::ErrorType XmlSerializer::internalDeserialize( - physx::PxFileBuf &stream, - Serializer::DeserializedData &res, - bool & /*doesNeedUpdate*/) -{ - XmlDeserializer *d = XmlDeserializer::Create(mTraits, XmlSerializer::version()); - physx::shdfnd::FastXml *xmlParser = physx::shdfnd::createFastXml(d); - InputDataFromPxFileBuf inputData(stream); - if( xmlParser && !xmlParser->processXml(inputData) ) - { - Serializer::ErrorType err = d->getLastError(); - if( Serializer::ERROR_NONE == err ) //Proper error code not set? - { - DEBUG_ALWAYS_ASSERT(); //XmlDeserializer should set explicit error codes - err = Serializer::ERROR_UNKNOWN; - } - - xmlParser->release(); - - d->releaseAll(); - d->destroy(); - - return err; - } - - if ( xmlParser ) - xmlParser->release(); - - res.init(mTraits, d->getObjs(), d->getNobjs()); - - d->destroy(); - - return Serializer::ERROR_NONE; -} -bool isXmlFormat(physx::PxFileBuf &stream) -{ - // if it is at least 32 bytes long and the first 32 byte are all ASCII, then consider it potentially valid XML - - if( stream.getFileLength() < 32 ) - return false; - - char hdr[32]; - stream.peek(hdr, sizeof(hdr)); - - for(size_t i = 0; i < sizeof(hdr); ++i) - { - char c = hdr[i]; - if( !(c == '\r' || c == '\t' || c == '\n' || ( c >= 32 && c < 127)) ) - return false; - } - - const char *magic1 = ""; - const char *magic2 = ""; - return 0 == ::strncmp(hdr, magic1, strlen(magic1)) || - 0 == ::strncmp(hdr, magic2, strlen(magic2)); -} - -} // namespace NvParameterized - +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#include "PxSimpleTypes.h" +#include "PxAssert.h" +#include "PsArray.h" +#include "PxVec3.h" +#include "PxQuat.h" +#include "PxBounds3.h" +#include "PsFastXml.h" +#include "PsIOStream.h" + +#include "nvparameterized/NvSerializer.h" +#include "XmlSerializer.h" +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" + +#include "NvTraitsInternal.h" +#include "XmlDeserializer.h" + +#define PRINT_ELEMENT_HINTS 0 +#define PRINT_ELEMENTS_WITHIN_EMPTY_ARRAYS 0 + +#define UNOPTIMIZED_XML 0 + +namespace NvParameterized +{ + +static const char indentStr[] = " "; + +struct traversalState +{ + traversalState() + { + indent[0] = 0; + indentLen = 0; + level = 0; + } + + void incLevel() + { + physx::shdfnd::strlcat(indent, (uint32_t)strlen(indent) + (uint32_t)strlen(indentStr) + 1, indentStr); + level++; + } + + void decLevel() + { + level--; + indentLen = (sizeof(indentStr) - 1) * level; + if(indentLen < sizeof(indent)) + indent[indentLen] = 0; + } + + char indent[4096]; + uint32_t indentLen; + int32_t level; +}; + +Serializer::ErrorType XmlSerializer::peekNumObjects(char *data, uint32_t len, uint32_t &numObjects) +{ + //FIXME: this code is not robust + + data[len-1] = 0; + + const char *root = ::strstr(data, " => read className + mClassNames[mNumObjs] = mTraits->strdup( attr.get("className") ); + ++mNumObjs; + + return mNumObjs < mNumClassNames; + } + + void *allocate(uint32_t size) { return ::malloc(size); } + void deallocate(void *ptr) { ::free(ptr); }; + }; + + ClassNameReader myReader(classNames, numClassNames, mTraits); + physx::shdfnd::FastXml *xmlParser = physx::shdfnd::createFastXml(&myReader); + + InputDataFromPxFileBuf inputData(stream); + xmlParser->processXml(inputData); + numClassNames = myReader.numObjs(); + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType XmlSerializer::peekNumObjectsInplace(const void * data, uint32_t dataLen, uint32_t & numObjects) +{ + if ( !dataLen || ! data ) + return ERROR_STREAM_ERROR; + + char hdr[100]; + uint32_t len = physx::PxMin(dataLen, sizeof(hdr) - 1); + physx::shdfnd::strlcpy(hdr, len+1, (const char *)data); + + return peekNumObjects(hdr, len, numObjects); +} + +Serializer::ErrorType XmlSerializer::peekNumObjects(physx::PxFileBuf &stream, uint32_t &numObjects) +{ + //FIXME: this code is not robust + + char hdr[100]; + uint32_t len = stream.peek(hdr, sizeof(hdr)); + + return peekNumObjects(hdr, len, numObjects); +} + +#ifndef WITHOUT_APEX_SERIALIZATION + +static void storeVersionAndChecksum(physx::PsIOStream &stream, const Interface *obj) +{ + uint16_t major = obj->getMajorVersion(), + minor = obj->getMinorVersion(); + + stream << " version=\"" << major << '.' << minor << '"'; + + uint32_t bits; + const uint32_t *checksum = obj->checksum(bits); + + uint32_t u32s = bits / 32; + PX_ASSERT( 0 == bits % 32 ); + + stream << " checksum=\""; + for(uint32_t i = 0; i < u32s; ++i) + { + char hex[20]; + physx::shdfnd::snprintf(hex, sizeof(hex), "0x%x", checksum[i]); + stream << hex; + if( u32s - 1 != i ) + stream << ' '; + } + stream << '"'; +} + +static bool IsSimpleType(const Definition *d) +{ + //We do not consider strings simple because it causes errors with NULL and "" + if (d->type() == TYPE_ARRAY || d->type() == TYPE_STRUCT || + d->type() == TYPE_REF || d->type() == TYPE_STRING || + d->type() == TYPE_ENUM) + { + return false; + } + else + { + PX_ASSERT( d->numChildren() == 0 ); + return true; + } +} + +static bool IsSimpleStruct(const Definition *pd) +{ + bool ret = true; + + int32_t count = pd->numChildren(); + for (int32_t i=0; i < count; i++) + { + const Definition *d = pd->child(i); + if ( !IsSimpleType(d) ) + { + ret = false; + break; + } + } + + return ret; +} + +static bool DoesNeedQuote(const char *c) +{ + bool ret = false; + while ( *c ) + { + if ( *c == 32 || *c == ',' || *c == '<' || *c == '>' || *c == 9 ) + { + ret = true; + break; + } + c++; + } + + return ret; +} + +Serializer::ErrorType XmlSerializer::traverseParamDefTree( + const Interface &obj, + physx::PsIOStream &stream, + traversalState &state, + Handle &handle, + bool printValues) +{ + bool isRoot = !handle.numIndexes() && 0 == state.level; + + if( !handle.numIndexes() ) + { + NV_PARAM_ERR_CHECK_RETURN( obj.getParameterHandle("", handle), Serializer::ERROR_UNKNOWN ); + + if( isRoot ) + { + NV_ERR_CHECK_RETURN( emitElement(obj, stream, "value", handle, false, true, true) ); + stream << "\n"; + + state.incLevel(); + } + } + + const Definition *paramDef = handle.parameterDefinition(); + + if( !paramDef->hint("DONOTSERIALIZE") ) + { + +# if PRINT_ELEMENT_HINTS + bool includedRef = false; + + NV_ERR_CHECK_RETURN( emitElementNxHints(stream, handle, state, includedRef) ); +# else + bool includedRef = paramDef->isIncludedRef(); +# endif + + switch( paramDef->type() ) + { + case TYPE_STRUCT: + { + stream << state.indent; + NV_ERR_CHECK_RETURN( emitElement(obj, stream, "struct", handle, false, true) ); + stream << "\n"; + + state.incLevel(); + for(int32_t i = 0; i < paramDef->numChildren(); ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); + handle.popIndex(); + } + + state.decLevel(); + + stream << state.indent << "\n"; + + break; + } + + case TYPE_ARRAY: + { + stream << state.indent; + NV_ERR_CHECK_RETURN( emitElement(obj, stream, "array", handle, false, true) ); + + int32_t arraySize; + NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(arraySize), Serializer::ERROR_INVALID_ARRAY ); + + if( arraySize) + stream << "\n"; + + state.incLevel(); + + if ( arraySize > 0 ) + { +#if UNOPTIMIZED_XML + for(int32_t i = 0; i < arraySize; ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); + handle.popIndex(); + } +#else + handle.set(0); + const Definition *pd = handle.parameterDefinition(); + handle.popIndex(); + switch ( pd->type() ) + { + case TYPE_STRUCT: + { + if ( IsSimpleStruct(pd) ) + { + for(int32_t i = 0; i < arraySize; ++i) + { + + if ( (i&3) == 0 ) + { + if ( i ) + stream << "\n"; + stream << state.indent; + } + + handle.set(i); + + for( int32_t j=0; jnumChildren(); j++ ) + { + if (pd->child(j)->hint("DONOTSERIALIZE")) + continue; + + handle.set(j); + + char buf[512]; + const char *str = 0; + NV_PARAM_ERR_CHECK_RETURN( handle.valueToStr(buf, sizeof(buf), str), Serializer::ERROR_VAL2STRING_FAILED ); + + stream << str; + + if ( (j+1) < pd->numChildren() ) + { + stream << " "; + } + + handle.popIndex(); + } + + if ( (i+1) < arraySize ) + { + stream << ","; + } + + handle.popIndex(); + } //i + stream << "\n"; + } + else + { + for(int32_t i = 0; i < arraySize; ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); + handle.popIndex(); + } + } + } + break; + + case TYPE_REF: + for(int32_t i = 0; i < arraySize; ++i) + { + handle.set(i); + NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle, printValues) ); + handle.popIndex(); + } + break; + + case TYPE_BOOL: + { + bool v = false; + stream << state.indent; + for (int32_t i=0; i\n"; + + break; + } + + case TYPE_REF: + { + stream << state.indent; + NV_ERR_CHECK_RETURN( emitElement(obj, stream, "value", handle, includedRef, printValues) ); + + if( printValues && includedRef ) + { + stream << state.indent << "\n"; + + Interface *refObj = 0; + NV_PARAM_ERR_CHECK_RETURN( handle.getParamRef(refObj), Serializer::ERROR_UNKNOWN ); + + if( refObj ) + { + Handle refHandle(refObj); + state.incLevel(); + NV_ERR_CHECK_RETURN( traverseParamDefTree(*refObj, stream, state, refHandle) ); + state.decLevel(); + stream << state.indent; + } + } + + stream << "\n"; + + break; + } + + case TYPE_POINTER: + //Don't do anything with pointer + break; + +NV_PARAMETRIZED_LINAL_DATATYPE_LABELS +NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS +NV_PARAMETRIZED_STRING_DATATYPE_LABELS +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + { + stream << state.indent; + NV_ERR_CHECK_RETURN( emitElement(obj, stream, "value", handle, includedRef, printValues) ); + + char buf[512]; + const char *str = 0; + if( printValues ) + NV_PARAM_ERR_CHECK_RETURN( handle.valueToStr(buf, sizeof(buf), str), Serializer::ERROR_VAL2STRING_FAILED ); + + if( str ) + stream << str; + + stream << "\n"; + + break; + } //default + } //switch + + } //DONOTSERIALIZE + + if( isRoot ) + { + state.decLevel(); + stream << "\n"; + } + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType XmlSerializer::emitElementNxHints( + physx::PsIOStream &stream, + Handle &handle, + traversalState &state, + bool &includedRef) +{ + const Definition *paramDef = handle.parameterDefinition(); + + for(int32_t j = 0; j < paramDef->numHints(); ++j) + { + if( 0 == j ) + stream << "\n"; + + const Hint *hint = paramDef->hint(j); + + stream << state.indent << "\n"; + } + + includedRef = paramDef->isIncludedRef(); + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType XmlSerializer::emitElement( + const Interface &obj, + physx::PsIOStream &stream, + const char *elementName, + Handle &handle, + bool includedRef, + bool printValues, + bool isRoot) +{ + const Definition *paramDef = handle.parameterDefinition(); + + DataType parentType = TYPE_UNDEFINED; + + if( paramDef->parent() ) + parentType = paramDef->parent()->type(); + + stream << '<' << elementName; + + if( isRoot ) + { + stream << " name=\"\"" + << " type=\"Ref\"" + << " className=\"" << obj.className() << "\""; + + const char *objectName = obj.name(); + if( objectName ) + stream << " objectName=\"" << objectName << "\""; + + if( isRoot ) //We only emit version info for root + storeVersionAndChecksum(stream, &obj); + } + else + { + if( parentType != TYPE_ARRAY ) + { + const char *name = paramDef->name(); + stream << " name=\"" << (name ? name : "") << "\""; + } + } + + switch( paramDef->type() ) + { + case TYPE_STRUCT: + break; + + case TYPE_ARRAY: + { + int32_t arraySize; + NV_PARAM_ERR_CHECK_RETURN( handle.getArraySize(arraySize), Serializer::ERROR_INVALID_ARRAY ); + stream << " size=\"" << arraySize << '"'; + handle.set(0); + const Definition *pd = handle.parameterDefinition(); + handle.popIndex(); + stream << " type=\"" << typeToStr(pd->type()) << '"'; + // ** handle use case for simple structs written out flat.. +#if !UNOPTIMIZED_XML + if ( pd->type() == TYPE_STRUCT && IsSimpleStruct(pd) ) + { + stream << " structElements=\""; + const int32_t count = pd->numChildren(); + + // find how many of them need serialization + int32_t serializeCount = 0; + for (int32_t i=0; ichild(i); + if (d->hint("DONOTSERIALIZE") == NULL) + { + serializeCount++; + } + } + + for (int32_t i=0; ichild(i); + if (d->hint("DONOTSERIALIZE")) + continue; + + stream << d->name(); + stream << "("; + stream << typeToStr(d->type()); + stream << ")"; + if ( (i+1) < serializeCount ) + { + stream<<","; + } + } + stream << "\""; + } +#endif + // + break; + } + + case TYPE_REF: + { + stream << " type=\"" << typeToStr(paramDef->type()) << '"'; + + Interface *paramPtr = 0; + if( printValues ) + NV_PARAM_ERR_CHECK_RETURN( handle.getParamRef(paramPtr), Serializer::ERROR_UNKNOWN ); + + stream << " included=\"" << ( includedRef ? "1" : "0" ) << "\""; + + if( !printValues || !paramPtr ) + { + stream << " classNames=\""; + for(int32_t i = 0; i < paramDef->numRefVariants(); ++i) + { + const char *ref = paramDef->refVariantVal(i); + if ( DoesNeedQuote(ref) ) + stream << "%20" << ref << "%20" << " "; + else + stream << ref << " "; + } + stream << '"'; + + break; + } + + stream << " className=\"" << paramPtr->className() << '"'; + + const char *objectName = paramPtr->name(); + if( objectName ) + stream << " objectName=\"" << objectName << "\""; + + if( includedRef ) + storeVersionAndChecksum(stream, paramPtr); + + break; + } + + case TYPE_STRING: + case TYPE_ENUM: + { + const char *val; + NV_PARAM_ERR_CHECK_RETURN( handle.getParamString(val), Serializer::ERROR_UNKNOWN ); + + //Make a note if value is NULL + if( !val ) + stream << " null=\"1\""; + } + + //Fall-through to default + +NV_PARAMETRIZED_LINAL_DATATYPE_LABELS +NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + default: + stream << " type=\"" << typeToStr(paramDef->type()) << "\""; + break; + } //switch + + stream << '>'; + + return Serializer::ERROR_NONE; +} + +Serializer::ErrorType XmlSerializer::internalSerialize(physx::PxFileBuf &fbuf, const Interface **objs, uint32_t n, bool doMetadata) +{ + PX_UNUSED(doMetadata); + + physx::PsIOStream stream(fbuf, fbuf.getFileLength()); + stream.setBinary(false); + + uint32_t minor = version() & 0xffffUL, + major = version() >> 16; + + stream << "\n" + << "\n"; + + for(uint32_t i = 0; i < n; ++i) + { + const Interface &obj = *objs[i]; + Handle handle(obj); + + traversalState state; + NV_ERR_CHECK_RETURN( traverseParamDefTree(obj, stream, state, handle) ); + } + + stream << "\n"; + + return Serializer::ERROR_NONE; +} + +#endif + +Serializer::ErrorType XmlSerializer::internalDeserialize( + physx::PxFileBuf &stream, + Serializer::DeserializedData &res, + bool & /*doesNeedUpdate*/) +{ + XmlDeserializer *d = XmlDeserializer::Create(mTraits, XmlSerializer::version()); + physx::shdfnd::FastXml *xmlParser = physx::shdfnd::createFastXml(d); + InputDataFromPxFileBuf inputData(stream); + if( xmlParser && !xmlParser->processXml(inputData) ) + { + Serializer::ErrorType err = d->getLastError(); + if( Serializer::ERROR_NONE == err ) //Proper error code not set? + { + DEBUG_ALWAYS_ASSERT(); //XmlDeserializer should set explicit error codes + err = Serializer::ERROR_UNKNOWN; + } + + xmlParser->release(); + + d->releaseAll(); + d->destroy(); + + return err; + } + + if ( xmlParser ) + xmlParser->release(); + + res.init(mTraits, d->getObjs(), d->getNobjs()); + + d->destroy(); + + return Serializer::ERROR_NONE; +} +bool isXmlFormat(physx::PxFileBuf &stream) +{ + // if it is at least 32 bytes long and the first 32 byte are all ASCII, then consider it potentially valid XML + + if( stream.getFileLength() < 32 ) + return false; + + char hdr[32]; + stream.peek(hdr, sizeof(hdr)); + + for(size_t i = 0; i < sizeof(hdr); ++i) + { + char c = hdr[i]; + if( !(c == '\r' || c == '\t' || c == '\n' || ( c >= 32 && c < 127)) ) + return false; + } + + const char *magic1 = ""; + const char *magic2 = ""; + return 0 == ::strncmp(hdr, magic1, strlen(magic1)) || + 0 == ::strncmp(hdr, magic2, strlen(magic2)); +} + +} // namespace NvParameterized + diff --git a/sdk/extensions/import/apexmodules/modules/common/include/ApexCommonStructs.h b/sdk/extensions/import/apexmodules/modules/common/include/ApexCommonStructs.h old mode 100644 new mode 100755 index 4488c46..c7ff826 --- a/sdk/extensions/import/apexmodules/modules/common/include/ApexCommonStructs.h +++ b/sdk/extensions/import/apexmodules/modules/common/include/ApexCommonStructs.h @@ -1,251 +1,251 @@ -#ifndef APEXCOMMONSTRUCTS_H -#define APEXCOMMONSTRUCTS_H - -#include -#include "PxAssert.h" -#include "PxMat44.h" - - -using namespace physx; - -/* -From APEX -*/ - -struct IntPair -{ - void set(int32_t _i0, int32_t _i1) - { - i0 = _i0; - i1 = _i1; - } - - int32_t i0, i1; - - static int compare(const void* a, const void* b) - { - const int32_t diff0 = ((IntPair*)a)->i0 - ((IntPair*)b)->i0; - return diff0 ? diff0 : (((IntPair*)a)->i1 - ((IntPair*)b)->i1); - } -}; - -struct RenderVertexSemantic -{ - /** - \brief Enum of vertex buffer semantics types - */ - enum Enum - { - CUSTOM = -1, //!< User-defined - - POSITION = 0, //!< Position of vertex - NORMAL, //!< Normal at vertex - TANGENT, //!< Tangent at vertex - BINORMAL, //!< Binormal at vertex - COLOR, //!< Color at vertex - TEXCOORD0, //!< Texture coord 0 of vertex - TEXCOORD1, //!< Texture coord 1 of vertex - TEXCOORD2, //!< Texture coord 2 of vertex - TEXCOORD3, //!< Texture coord 3 of vertex - BONE_INDEX, //!< Bone index of vertex - BONE_WEIGHT, //!< Bone weight of vertex - - DISPLACEMENT_TEXCOORD, //!< X Displacement map texture coord of vertex - DISPLACEMENT_FLAGS, //!< Displacement map flags of vertex - - NUM_SEMANTICS //!< Count of standard semantics, not a valid semantic - }; -}; - -namespace nvidia -{ - namespace apex - { - - PX_PUSH_PACK_DEFAULT - - /** - \brief Enumeration of possible formats of various buffer semantics - - N.B.: DO NOT CHANGE THE VALUES OF OLD FORMATS. - */ - struct RenderDataFormat - { - /** \brief the enum type */ - enum Enum - { - UNSPECIFIED = 0, //!< No format (semantic not used) - - //!< Integer formats - UBYTE1 = 1, //!< One unsigned 8-bit integer (uint8_t[1]) - UBYTE2 = 2, //!< Two unsigned 8-bit integers (uint8_t[2]) - UBYTE3 = 3, //!< Three unsigned 8-bit integers (uint8_t[3]) - UBYTE4 = 4, //!< Four unsigned 8-bit integers (uint8_t[4]) - - USHORT1 = 5, //!< One unsigned 16-bit integer (uint16_t[1]) - USHORT2 = 6, //!< Two unsigned 16-bit integers (uint16_t[2]) - USHORT3 = 7, //!< Three unsigned 16-bit integers (uint16_t[3]) - USHORT4 = 8, //!< Four unsigned 16-bit integers (uint16_t[4]) - - SHORT1 = 9, //!< One signed 16-bit integer (int16_t[1]) - SHORT2 = 10, //!< Two signed 16-bit integers (int16_t[2]) - SHORT3 = 11, //!< Three signed 16-bit integers (int16_t[3]) - SHORT4 = 12, //!< Four signed 16-bit integers (int16_t[4]) - - UINT1 = 13, //!< One unsigned integer (uint32_t[1]) - UINT2 = 14, //!< Two unsigned integers (uint32_t[2]) - UINT3 = 15, //!< Three unsigned integers (uint32_t[3]) - UINT4 = 16, //!< Four unsigned integers (uint32_t[4]) - - //!< Color formats - R8G8B8A8 = 17, //!< Four unsigned bytes (uint8_t[4]) representing red, green, blue, alpha - B8G8R8A8 = 18, //!< Four unsigned bytes (uint8_t[4]) representing blue, green, red, alpha - R32G32B32A32_FLOAT = 19, //!< Four floats (float[4]) representing red, green, blue, alpha - B32G32R32A32_FLOAT = 20, //!< Four floats (float[4]) representing blue, green, red, alpha - - //!< Normalized formats - BYTE_UNORM1 = 21, //!< One unsigned normalized value in the range [0,1], packed into 8 bits (uint8_t[1]) - BYTE_UNORM2 = 22, //!< Two unsigned normalized value in the range [0,1], each packed into 8 bits (uint8_t[2]) - BYTE_UNORM3 = 23, //!< Three unsigned normalized value in the range [0,1], each packed into bits (uint8_t[3]) - BYTE_UNORM4 = 24, //!< Four unsigned normalized value in the range [0,1], each packed into 8 bits (uint8_t[4]) - - SHORT_UNORM1 = 25, //!< One unsigned normalized value in the range [0,1], packed into 16 bits (uint16_t[1]) - SHORT_UNORM2 = 26, //!< Two unsigned normalized value in the range [0,1], each packed into 16 bits (uint16_t[2]) - SHORT_UNORM3 = 27, //!< Three unsigned normalized value in the range [0,1], each packed into 16 bits (uint16_t[3]) - SHORT_UNORM4 = 28, //!< Four unsigned normalized value in the range [0,1], each packed into 16 bits (uint16_t[4]) - - BYTE_SNORM1 = 29, //!< One signed normalized value in the range [-1,1], packed into 8 bits (uint8_t[1]) - BYTE_SNORM2 = 30, //!< Two signed normalized value in the range [-1,1], each packed into 8 bits (uint8_t[2]) - BYTE_SNORM3 = 31, //!< Three signed normalized value in the range [-1,1], each packed into bits (uint8_t[3]) - BYTE_SNORM4 = 32, //!< Four signed normalized value in the range [-1,1], each packed into 8 bits (uint8_t[4]) - - SHORT_SNORM1 = 33, //!< One signed normalized value in the range [-1,1], packed into 16 bits (uint16_t[1]) - SHORT_SNORM2 = 34, //!< Two signed normalized value in the range [-1,1], each packed into 16 bits (uint16_t[2]) - SHORT_SNORM3 = 35, //!< Three signed normalized value in the range [-1,1], each packed into 16 bits (uint16_t[3]) - SHORT_SNORM4 = 36, //!< Four signed normalized value in the range [-1,1], each packed into 16 bits (uint16_t[4]) - - //!< Float formats - HALF1 = 37, //!< One 16-bit floating point value - HALF2 = 38, //!< Two 16-bit floating point values - HALF3 = 39, //!< Three 16-bit floating point values - HALF4 = 40, //!< Four 16-bit floating point values - - FLOAT1 = 41, //!< One 32-bit floating point value - FLOAT2 = 42, //!< Two 32-bit floating point values - FLOAT3 = 43, //!< Three 32-bit floating point values - FLOAT4 = 44, //!< Four 32-bit floating point values - - FLOAT4x4 = 45, //!< A 4x4 matrix (see PxMat44) - FLOAT3x4 = 46, //!< A 3x4 matrix (see float[12]) - FLOAT3x3 = 47, //!< A 3x3 matrix (see PxMat33) - - FLOAT4_QUAT = 48, //!< A quaternion (see PxQuat) - BYTE_SNORM4_QUATXYZW = 49, //!< A normalized quaternion with signed byte elements, X,Y,Z,W format (uint8_t[4]) - SHORT_SNORM4_QUATXYZW = 50, //!< A normalized quaternion with signed short elements, X,Y,Z,W format (uint16_t[4]) - - NUM_FORMATS - }; - - /// Get byte size of format type - static PX_INLINE uint32_t getFormatDataSize(Enum format) - { - switch (format) - { - default: - PX_ALWAYS_ASSERT(); - case UNSPECIFIED: - return 0; - - case UBYTE1: - case BYTE_UNORM1: - case BYTE_SNORM1: - return sizeof(uint8_t); - case UBYTE2: - case BYTE_UNORM2: - case BYTE_SNORM2: - return sizeof(uint8_t) * 2; - case UBYTE3: - case BYTE_UNORM3: - case BYTE_SNORM3: - return sizeof(uint8_t) * 3; - case UBYTE4: - case BYTE_UNORM4: - case BYTE_SNORM4: - case BYTE_SNORM4_QUATXYZW: - return sizeof(uint8_t) * 4; - - case USHORT1: - case SHORT1: - case HALF1: - case SHORT_UNORM1: - case SHORT_SNORM1: - return sizeof(uint16_t); - case USHORT2: - case SHORT2: - case HALF2: - case SHORT_UNORM2: - case SHORT_SNORM2: - return sizeof(uint16_t) * 2; - case USHORT3: - case SHORT3: - case HALF3: - case SHORT_UNORM3: - case SHORT_SNORM3: - return sizeof(uint16_t) * 3; - case USHORT4: - case SHORT4: - case HALF4: - case SHORT_UNORM4: - case SHORT_SNORM4: - case SHORT_SNORM4_QUATXYZW: - return sizeof(uint16_t) * 4; - - case UINT1: - return sizeof(uint32_t); - case UINT2: - return sizeof(uint32_t) * 2; - case UINT3: - return sizeof(uint32_t) * 3; - case UINT4: - return sizeof(uint32_t) * 4; - - case R8G8B8A8: - case B8G8R8A8: - return sizeof(uint8_t) * 4; - - case R32G32B32A32_FLOAT: - case B32G32R32A32_FLOAT: - return sizeof(float) * 4; - - case FLOAT1: - return sizeof(float); - case FLOAT2: - return sizeof(float) * 2; - case FLOAT3: - return sizeof(float) * 3; - case FLOAT4: - return sizeof(float) * 4; - - case FLOAT4x4: - return sizeof(PxMat44); - - case FLOAT3x4: - return sizeof(float) * 12; - - case FLOAT3x3: - return sizeof(PxMat33); - - case FLOAT4_QUAT: - return sizeof(PxQuat); - } - } - }; - - PX_POP_PACK - - } -} // end namespace nvidia::apex - - - +#ifndef APEXCOMMONSTRUCTS_H +#define APEXCOMMONSTRUCTS_H + +#include +#include "PxAssert.h" +#include "PxMat44.h" + + +using namespace physx; + +/* +From APEX +*/ + +struct IntPair +{ + void set(int32_t _i0, int32_t _i1) + { + i0 = _i0; + i1 = _i1; + } + + int32_t i0, i1; + + static int compare(const void* a, const void* b) + { + const int32_t diff0 = ((IntPair*)a)->i0 - ((IntPair*)b)->i0; + return diff0 ? diff0 : (((IntPair*)a)->i1 - ((IntPair*)b)->i1); + } +}; + +struct RenderVertexSemantic +{ + /** + \brief Enum of vertex buffer semantics types + */ + enum Enum + { + CUSTOM = -1, //!< User-defined + + POSITION = 0, //!< Position of vertex + NORMAL, //!< Normal at vertex + TANGENT, //!< Tangent at vertex + BINORMAL, //!< Binormal at vertex + COLOR, //!< Color at vertex + TEXCOORD0, //!< Texture coord 0 of vertex + TEXCOORD1, //!< Texture coord 1 of vertex + TEXCOORD2, //!< Texture coord 2 of vertex + TEXCOORD3, //!< Texture coord 3 of vertex + BONE_INDEX, //!< Bone index of vertex + BONE_WEIGHT, //!< Bone weight of vertex + + DISPLACEMENT_TEXCOORD, //!< X Displacement map texture coord of vertex + DISPLACEMENT_FLAGS, //!< Displacement map flags of vertex + + NUM_SEMANTICS //!< Count of standard semantics, not a valid semantic + }; +}; + +namespace nvidia +{ + namespace apex + { + + PX_PUSH_PACK_DEFAULT + + /** + \brief Enumeration of possible formats of various buffer semantics + + N.B.: DO NOT CHANGE THE VALUES OF OLD FORMATS. + */ + struct RenderDataFormat + { + /** \brief the enum type */ + enum Enum + { + UNSPECIFIED = 0, //!< No format (semantic not used) + + //!< Integer formats + UBYTE1 = 1, //!< One unsigned 8-bit integer (uint8_t[1]) + UBYTE2 = 2, //!< Two unsigned 8-bit integers (uint8_t[2]) + UBYTE3 = 3, //!< Three unsigned 8-bit integers (uint8_t[3]) + UBYTE4 = 4, //!< Four unsigned 8-bit integers (uint8_t[4]) + + USHORT1 = 5, //!< One unsigned 16-bit integer (uint16_t[1]) + USHORT2 = 6, //!< Two unsigned 16-bit integers (uint16_t[2]) + USHORT3 = 7, //!< Three unsigned 16-bit integers (uint16_t[3]) + USHORT4 = 8, //!< Four unsigned 16-bit integers (uint16_t[4]) + + SHORT1 = 9, //!< One signed 16-bit integer (int16_t[1]) + SHORT2 = 10, //!< Two signed 16-bit integers (int16_t[2]) + SHORT3 = 11, //!< Three signed 16-bit integers (int16_t[3]) + SHORT4 = 12, //!< Four signed 16-bit integers (int16_t[4]) + + UINT1 = 13, //!< One unsigned integer (uint32_t[1]) + UINT2 = 14, //!< Two unsigned integers (uint32_t[2]) + UINT3 = 15, //!< Three unsigned integers (uint32_t[3]) + UINT4 = 16, //!< Four unsigned integers (uint32_t[4]) + + //!< Color formats + R8G8B8A8 = 17, //!< Four unsigned bytes (uint8_t[4]) representing red, green, blue, alpha + B8G8R8A8 = 18, //!< Four unsigned bytes (uint8_t[4]) representing blue, green, red, alpha + R32G32B32A32_FLOAT = 19, //!< Four floats (float[4]) representing red, green, blue, alpha + B32G32R32A32_FLOAT = 20, //!< Four floats (float[4]) representing blue, green, red, alpha + + //!< Normalized formats + BYTE_UNORM1 = 21, //!< One unsigned normalized value in the range [0,1], packed into 8 bits (uint8_t[1]) + BYTE_UNORM2 = 22, //!< Two unsigned normalized value in the range [0,1], each packed into 8 bits (uint8_t[2]) + BYTE_UNORM3 = 23, //!< Three unsigned normalized value in the range [0,1], each packed into bits (uint8_t[3]) + BYTE_UNORM4 = 24, //!< Four unsigned normalized value in the range [0,1], each packed into 8 bits (uint8_t[4]) + + SHORT_UNORM1 = 25, //!< One unsigned normalized value in the range [0,1], packed into 16 bits (uint16_t[1]) + SHORT_UNORM2 = 26, //!< Two unsigned normalized value in the range [0,1], each packed into 16 bits (uint16_t[2]) + SHORT_UNORM3 = 27, //!< Three unsigned normalized value in the range [0,1], each packed into 16 bits (uint16_t[3]) + SHORT_UNORM4 = 28, //!< Four unsigned normalized value in the range [0,1], each packed into 16 bits (uint16_t[4]) + + BYTE_SNORM1 = 29, //!< One signed normalized value in the range [-1,1], packed into 8 bits (uint8_t[1]) + BYTE_SNORM2 = 30, //!< Two signed normalized value in the range [-1,1], each packed into 8 bits (uint8_t[2]) + BYTE_SNORM3 = 31, //!< Three signed normalized value in the range [-1,1], each packed into bits (uint8_t[3]) + BYTE_SNORM4 = 32, //!< Four signed normalized value in the range [-1,1], each packed into 8 bits (uint8_t[4]) + + SHORT_SNORM1 = 33, //!< One signed normalized value in the range [-1,1], packed into 16 bits (uint16_t[1]) + SHORT_SNORM2 = 34, //!< Two signed normalized value in the range [-1,1], each packed into 16 bits (uint16_t[2]) + SHORT_SNORM3 = 35, //!< Three signed normalized value in the range [-1,1], each packed into 16 bits (uint16_t[3]) + SHORT_SNORM4 = 36, //!< Four signed normalized value in the range [-1,1], each packed into 16 bits (uint16_t[4]) + + //!< Float formats + HALF1 = 37, //!< One 16-bit floating point value + HALF2 = 38, //!< Two 16-bit floating point values + HALF3 = 39, //!< Three 16-bit floating point values + HALF4 = 40, //!< Four 16-bit floating point values + + FLOAT1 = 41, //!< One 32-bit floating point value + FLOAT2 = 42, //!< Two 32-bit floating point values + FLOAT3 = 43, //!< Three 32-bit floating point values + FLOAT4 = 44, //!< Four 32-bit floating point values + + FLOAT4x4 = 45, //!< A 4x4 matrix (see PxMat44) + FLOAT3x4 = 46, //!< A 3x4 matrix (see float[12]) + FLOAT3x3 = 47, //!< A 3x3 matrix (see PxMat33) + + FLOAT4_QUAT = 48, //!< A quaternion (see PxQuat) + BYTE_SNORM4_QUATXYZW = 49, //!< A normalized quaternion with signed byte elements, X,Y,Z,W format (uint8_t[4]) + SHORT_SNORM4_QUATXYZW = 50, //!< A normalized quaternion with signed short elements, X,Y,Z,W format (uint16_t[4]) + + NUM_FORMATS + }; + + /// Get byte size of format type + static PX_INLINE uint32_t getFormatDataSize(Enum format) + { + switch (format) + { + default: + PX_ALWAYS_ASSERT(); + case UNSPECIFIED: + return 0; + + case UBYTE1: + case BYTE_UNORM1: + case BYTE_SNORM1: + return sizeof(uint8_t); + case UBYTE2: + case BYTE_UNORM2: + case BYTE_SNORM2: + return sizeof(uint8_t) * 2; + case UBYTE3: + case BYTE_UNORM3: + case BYTE_SNORM3: + return sizeof(uint8_t) * 3; + case UBYTE4: + case BYTE_UNORM4: + case BYTE_SNORM4: + case BYTE_SNORM4_QUATXYZW: + return sizeof(uint8_t) * 4; + + case USHORT1: + case SHORT1: + case HALF1: + case SHORT_UNORM1: + case SHORT_SNORM1: + return sizeof(uint16_t); + case USHORT2: + case SHORT2: + case HALF2: + case SHORT_UNORM2: + case SHORT_SNORM2: + return sizeof(uint16_t) * 2; + case USHORT3: + case SHORT3: + case HALF3: + case SHORT_UNORM3: + case SHORT_SNORM3: + return sizeof(uint16_t) * 3; + case USHORT4: + case SHORT4: + case HALF4: + case SHORT_UNORM4: + case SHORT_SNORM4: + case SHORT_SNORM4_QUATXYZW: + return sizeof(uint16_t) * 4; + + case UINT1: + return sizeof(uint32_t); + case UINT2: + return sizeof(uint32_t) * 2; + case UINT3: + return sizeof(uint32_t) * 3; + case UINT4: + return sizeof(uint32_t) * 4; + + case R8G8B8A8: + case B8G8R8A8: + return sizeof(uint8_t) * 4; + + case R32G32B32A32_FLOAT: + case B32G32R32A32_FLOAT: + return sizeof(float) * 4; + + case FLOAT1: + return sizeof(float); + case FLOAT2: + return sizeof(float) * 2; + case FLOAT3: + return sizeof(float) * 3; + case FLOAT4: + return sizeof(float) * 4; + + case FLOAT4x4: + return sizeof(PxMat44); + + case FLOAT3x4: + return sizeof(float) * 12; + + case FLOAT3x3: + return sizeof(PxMat33); + + case FLOAT4_QUAT: + return sizeof(PxQuat); + } + } + }; + + PX_POP_PACK + + } +} // end namespace nvidia::apex + + + #endif \ No newline at end of file diff --git a/sdk/extensions/import/apexmodules/modules/common/include/autogen/ConvexHullParameters.h b/sdk/extensions/import/apexmodules/modules/common/include/autogen/ConvexHullParameters.h old mode 100644 new mode 100755 index bbb81ff..06aa0fa --- a/sdk/extensions/import/apexmodules/modules/common/include/autogen/ConvexHullParameters.h +++ b/sdk/extensions/import/apexmodules/modules/common/include/autogen/ConvexHullParameters.h @@ -1,276 +1,276 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_ConvexHullParameters_h -#define HEADER_ConvexHullParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace ConvexHullParametersNS -{ - -struct Plane_Type; - -struct VEC3_DynamicArray1D_Type -{ - physx::PxVec3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Plane_DynamicArray1D_Type -{ - Plane_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32_DynamicArray1D_Type -{ - float* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; - -struct ParametersStruct -{ - - VEC3_DynamicArray1D_Type vertices; - Plane_DynamicArray1D_Type uniquePlanes; - F32_DynamicArray1D_Type widths; - U32_DynamicArray1D_Type edges; - U32_DynamicArray1D_Type adjacentFaces; - physx::PxBounds3 bounds; - float volume; - uint32_t uniqueEdgeDirectionCount; - uint32_t planeCount; - -}; - -static const uint32_t checksum[] = { 0x8a50b89e, 0xda2f896b, 0x82da2553, 0x3b609a3d, }; - -} // namespace ConvexHullParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class ConvexHullParameters : public NvParameterized::NvParameters, public ConvexHullParametersNS::ParametersStruct -{ -public: - ConvexHullParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~ConvexHullParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("ConvexHullParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(ConvexHullParametersNS::checksum); - return ConvexHullParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const ConvexHullParametersNS::ParametersStruct& parameters(void) const - { - ConvexHullParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - ConvexHullParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class ConvexHullParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - ConvexHullParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(ConvexHullParameters), ConvexHullParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, ConvexHullParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(ConvexHullParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, ConvexHullParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, ConvexHullParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, ConvexHullParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of ConvexHullParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (ConvexHullParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (ConvexHullParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (ConvexHullParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (ConvexHullParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (ConvexHullParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_ConvexHullParameters_h +#define HEADER_ConvexHullParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace ConvexHullParametersNS +{ + +struct Plane_Type; + +struct VEC3_DynamicArray1D_Type +{ + physx::PxVec3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Plane_DynamicArray1D_Type +{ + Plane_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32_DynamicArray1D_Type +{ + float* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; + +struct ParametersStruct +{ + + VEC3_DynamicArray1D_Type vertices; + Plane_DynamicArray1D_Type uniquePlanes; + F32_DynamicArray1D_Type widths; + U32_DynamicArray1D_Type edges; + U32_DynamicArray1D_Type adjacentFaces; + physx::PxBounds3 bounds; + float volume; + uint32_t uniqueEdgeDirectionCount; + uint32_t planeCount; + +}; + +static const uint32_t checksum[] = { 0x8a50b89e, 0xda2f896b, 0x82da2553, 0x3b609a3d, }; + +} // namespace ConvexHullParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class ConvexHullParameters : public NvParameterized::NvParameters, public ConvexHullParametersNS::ParametersStruct +{ +public: + ConvexHullParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~ConvexHullParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("ConvexHullParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(ConvexHullParametersNS::checksum); + return ConvexHullParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const ConvexHullParametersNS::ParametersStruct& parameters(void) const + { + ConvexHullParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + ConvexHullParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class ConvexHullParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + ConvexHullParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(ConvexHullParameters), ConvexHullParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, ConvexHullParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(ConvexHullParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, ConvexHullParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, ConvexHullParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, ConvexHullParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of ConvexHullParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (ConvexHullParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (ConvexHullParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (ConvexHullParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (ConvexHullParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (ConvexHullParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugColorParams.h b/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugColorParams.h old mode 100644 new mode 100755 index e403530..602da83 --- a/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugColorParams.h +++ b/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugColorParams.h @@ -1,265 +1,265 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DebugColorParams_h -#define HEADER_DebugColorParams_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DebugColorParamsNS -{ - - - -struct ParametersStruct -{ - - uint32_t Default; - uint32_t PoseArrows; - uint32_t MeshStatic; - uint32_t MeshDynamic; - uint32_t Shape; - uint32_t Text0; - uint32_t Text1; - uint32_t ForceArrowsLow; - uint32_t ForceArrowsNorm; - uint32_t ForceArrowsHigh; - uint32_t Color0; - uint32_t Color1; - uint32_t Color2; - uint32_t Color3; - uint32_t Color4; - uint32_t Color5; - uint32_t Red; - uint32_t Green; - uint32_t Blue; - uint32_t DarkRed; - uint32_t DarkGreen; - uint32_t DarkBlue; - uint32_t LightRed; - uint32_t LightGreen; - uint32_t LightBlue; - uint32_t Purple; - uint32_t DarkPurple; - uint32_t Yellow; - uint32_t Orange; - uint32_t Gold; - uint32_t Emerald; - uint32_t White; - uint32_t Black; - uint32_t Gray; - uint32_t LightGray; - uint32_t DarkGray; - -}; - -static const uint32_t checksum[] = { 0x21b30efd, 0xaea10022, 0x72a4df62, 0x8fab217f, }; - -} // namespace DebugColorParamsNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DebugColorParams : public NvParameterized::NvParameters, public DebugColorParamsNS::ParametersStruct -{ -public: - DebugColorParams(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DebugColorParams(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DebugColorParams"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DebugColorParamsNS::checksum); - return DebugColorParamsNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DebugColorParamsNS::ParametersStruct& parameters(void) const - { - DebugColorParams* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DebugColorParamsNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DebugColorParamsFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DebugColorParams::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DebugColorParams), DebugColorParams::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DebugColorParams::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DebugColorParams)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DebugColorParams)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DebugColorParams::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DebugColorParams::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DebugColorParams here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DebugColorParams*)bufObj; - } - - virtual const char* getClassName() - { - return (DebugColorParams::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DebugColorParams::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DebugColorParams::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DebugColorParams::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DebugColorParams_h +#define HEADER_DebugColorParams_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DebugColorParamsNS +{ + + + +struct ParametersStruct +{ + + uint32_t Default; + uint32_t PoseArrows; + uint32_t MeshStatic; + uint32_t MeshDynamic; + uint32_t Shape; + uint32_t Text0; + uint32_t Text1; + uint32_t ForceArrowsLow; + uint32_t ForceArrowsNorm; + uint32_t ForceArrowsHigh; + uint32_t Color0; + uint32_t Color1; + uint32_t Color2; + uint32_t Color3; + uint32_t Color4; + uint32_t Color5; + uint32_t Red; + uint32_t Green; + uint32_t Blue; + uint32_t DarkRed; + uint32_t DarkGreen; + uint32_t DarkBlue; + uint32_t LightRed; + uint32_t LightGreen; + uint32_t LightBlue; + uint32_t Purple; + uint32_t DarkPurple; + uint32_t Yellow; + uint32_t Orange; + uint32_t Gold; + uint32_t Emerald; + uint32_t White; + uint32_t Black; + uint32_t Gray; + uint32_t LightGray; + uint32_t DarkGray; + +}; + +static const uint32_t checksum[] = { 0x21b30efd, 0xaea10022, 0x72a4df62, 0x8fab217f, }; + +} // namespace DebugColorParamsNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DebugColorParams : public NvParameterized::NvParameters, public DebugColorParamsNS::ParametersStruct +{ +public: + DebugColorParams(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DebugColorParams(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DebugColorParams"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DebugColorParamsNS::checksum); + return DebugColorParamsNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DebugColorParamsNS::ParametersStruct& parameters(void) const + { + DebugColorParams* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DebugColorParamsNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DebugColorParamsFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DebugColorParams::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DebugColorParams), DebugColorParams::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DebugColorParams::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DebugColorParams)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DebugColorParams)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DebugColorParams::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DebugColorParams::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DebugColorParams here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DebugColorParams*)bufObj; + } + + virtual const char* getClassName() + { + return (DebugColorParams::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DebugColorParams::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DebugColorParams::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DebugColorParams::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugRenderParams.h b/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugRenderParams.h old mode 100644 new mode 100755 index 78a1345..33857dc --- a/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugRenderParams.h +++ b/sdk/extensions/import/apexmodules/modules/common/include/autogen/DebugRenderParams.h @@ -1,248 +1,248 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DebugRenderParams_h -#define HEADER_DebugRenderParams_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DebugRenderParamsNS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - bool Enable; - float Scale; - float LodBenefits; - float RelativeLodBenefitsScreenPos; - float RelativeLodBenefitsThickness; - float LodDistanceScale; - float RenderNormals; - float RenderTangents; - float RenderBitangents; - bool Bounds; - REF_DynamicArray1D_Type moduleName; - -}; - -static const uint32_t checksum[] = { 0x0679a129, 0x4119501f, 0xde4ce2b2, 0xecb0049b, }; - -} // namespace DebugRenderParamsNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DebugRenderParams : public NvParameterized::NvParameters, public DebugRenderParamsNS::ParametersStruct -{ -public: - DebugRenderParams(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DebugRenderParams(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DebugRenderParams"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DebugRenderParamsNS::checksum); - return DebugRenderParamsNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DebugRenderParamsNS::ParametersStruct& parameters(void) const - { - DebugRenderParams* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DebugRenderParamsNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DebugRenderParamsFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DebugRenderParams::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DebugRenderParams), DebugRenderParams::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DebugRenderParams::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DebugRenderParams)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DebugRenderParams)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DebugRenderParams::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DebugRenderParams::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DebugRenderParams here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DebugRenderParams*)bufObj; - } - - virtual const char* getClassName() - { - return (DebugRenderParams::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DebugRenderParams::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DebugRenderParams::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DebugRenderParams::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DebugRenderParams_h +#define HEADER_DebugRenderParams_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DebugRenderParamsNS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + bool Enable; + float Scale; + float LodBenefits; + float RelativeLodBenefitsScreenPos; + float RelativeLodBenefitsThickness; + float LodDistanceScale; + float RenderNormals; + float RenderTangents; + float RenderBitangents; + bool Bounds; + REF_DynamicArray1D_Type moduleName; + +}; + +static const uint32_t checksum[] = { 0x0679a129, 0x4119501f, 0xde4ce2b2, 0xecb0049b, }; + +} // namespace DebugRenderParamsNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DebugRenderParams : public NvParameterized::NvParameters, public DebugRenderParamsNS::ParametersStruct +{ +public: + DebugRenderParams(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DebugRenderParams(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DebugRenderParams"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DebugRenderParamsNS::checksum); + return DebugRenderParamsNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DebugRenderParamsNS::ParametersStruct& parameters(void) const + { + DebugRenderParams* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DebugRenderParamsNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DebugRenderParamsFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DebugRenderParams::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DebugRenderParams), DebugRenderParams::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DebugRenderParams::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DebugRenderParams)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DebugRenderParams)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DebugRenderParams::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DebugRenderParams::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DebugRenderParams here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DebugRenderParams*)bufObj; + } + + virtual const char* getClassName() + { + return (DebugRenderParams::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DebugRenderParams::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DebugRenderParams::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DebugRenderParams::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common/include/autogen/ModuleCommonRegistration.h b/sdk/extensions/import/apexmodules/modules/common/include/autogen/ModuleCommonRegistration.h old mode 100644 new mode 100755 index febd374..474921f --- a/sdk/extensions/import/apexmodules/modules/common/include/autogen/ModuleCommonRegistration.h +++ b/sdk/extensions/import/apexmodules/modules/common/include/autogen/ModuleCommonRegistration.h @@ -1,120 +1,120 @@ -/* - * Copyright (c) 2008-2015, 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. - */ - -#ifndef MODULE_MODULECOMMONREGISTRATIONH_H -#define MODULE_MODULECOMMONREGISTRATIONH_H - -#include "PsAllocator.h" -#include "NvRegistrationsForTraitsBase.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PxAssert.h" -#include - -// INCLUDE GENERATED FACTORIES -#include "ConvexHullParameters.h" -#include "DebugColorParams.h" -#include "DebugRenderParams.h" - - -// INCLUDE GENERATED CONVERSION - - -namespace nvidia { -namespace apex { - - -class ModuleCommonRegistration : public NvParameterized::RegistrationsForTraitsBase -{ -public: - static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleCommonRegistration().registerAll(*parameterizedTraits); - } - } - - static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleCommonRegistration().unregisterAll(*parameterizedTraits); - } - } - - void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - ::NvParameterized::Factory* factoriesToRegister[] = { -// REGISTER GENERATED FACTORIES - new nvidia::apex::ConvexHullParametersFactory(), - new nvidia::apex::DebugColorParamsFactory(), - new nvidia::apex::DebugRenderParamsFactory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) - { - parameterizedTraits.registerFactory(*factoriesToRegister[i]); - } - } - - virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// REGISTER GENERATED CONVERSION -PX_UNUSED(parameterizedTraits); - - } - - void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - struct FactoryDesc - { - const char* name; - uint32_t version; - }; - - ::NvParameterized::Factory* factoriesToUnregister[] = { -// UNREGISTER GENERATED FACTORIES - new nvidia::apex::ConvexHullParametersFactory(), - new nvidia::apex::DebugColorParamsFactory(), - new nvidia::apex::DebugRenderParamsFactory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) - { - ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); - if (!removedFactory) - { - PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); - } - else - { - removedFactory->freeParameterDefinitionTable(¶meterizedTraits); - delete removedFactory; - delete factoriesToUnregister[i]; - } - } - } - - virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// UNREGISTER GENERATED CONVERSION -PX_UNUSED(parameterizedTraits); - - } - -}; - - -} -} //nvidia::apex - -#endif +/* + * Copyright (c) 2008-2015, 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. + */ + +#ifndef MODULE_MODULECOMMONREGISTRATIONH_H +#define MODULE_MODULECOMMONREGISTRATIONH_H + +#include "PsAllocator.h" +#include "NvRegistrationsForTraitsBase.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PxAssert.h" +#include + +// INCLUDE GENERATED FACTORIES +#include "ConvexHullParameters.h" +#include "DebugColorParams.h" +#include "DebugRenderParams.h" + + +// INCLUDE GENERATED CONVERSION + + +namespace nvidia { +namespace apex { + + +class ModuleCommonRegistration : public NvParameterized::RegistrationsForTraitsBase +{ +public: + static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleCommonRegistration().registerAll(*parameterizedTraits); + } + } + + static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleCommonRegistration().unregisterAll(*parameterizedTraits); + } + } + + void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + ::NvParameterized::Factory* factoriesToRegister[] = { +// REGISTER GENERATED FACTORIES + new nvidia::apex::ConvexHullParametersFactory(), + new nvidia::apex::DebugColorParamsFactory(), + new nvidia::apex::DebugRenderParamsFactory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) + { + parameterizedTraits.registerFactory(*factoriesToRegister[i]); + } + } + + virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// REGISTER GENERATED CONVERSION +PX_UNUSED(parameterizedTraits); + + } + + void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + struct FactoryDesc + { + const char* name; + uint32_t version; + }; + + ::NvParameterized::Factory* factoriesToUnregister[] = { +// UNREGISTER GENERATED FACTORIES + new nvidia::apex::ConvexHullParametersFactory(), + new nvidia::apex::DebugColorParamsFactory(), + new nvidia::apex::DebugRenderParamsFactory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) + { + ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); + if (!removedFactory) + { + PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); + } + else + { + removedFactory->freeParameterDefinitionTable(¶meterizedTraits); + delete removedFactory; + delete factoriesToUnregister[i]; + } + } + } + + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// UNREGISTER GENERATED CONVERSION +PX_UNUSED(parameterizedTraits); + + } + +}; + + +} +} //nvidia::apex + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common/src/autogen/ConvexHullParameters.cpp b/sdk/extensions/import/apexmodules/modules/common/src/autogen/ConvexHullParameters.cpp old mode 100644 new mode 100755 index 1b6bd1b..30a2a61 --- a/sdk/extensions/import/apexmodules/modules/common/src/autogen/ConvexHullParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/common/src/autogen/ConvexHullParameters.cpp @@ -1,768 +1,768 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "ConvexHullParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace ConvexHullParametersNS; - -const char* const ConvexHullParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 17; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 7, 9, 11, 13, 14, 15, 16, 2, 4, 5, 6, 8, 10, 12, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertices), CHILDREN(9), 1 }, // vertices - { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // vertices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->uniquePlanes), CHILDREN(10), 1 }, // uniquePlanes - { TYPE_STRUCT, false, 1 * sizeof(Plane_Type), CHILDREN(11), 2 }, // uniquePlanes[] - { TYPE_VEC3, false, (size_t)(&((Plane_Type*)0)->normal), NULL, 0 }, // uniquePlanes[].normal - { TYPE_F32, false, (size_t)(&((Plane_Type*)0)->d), NULL, 0 }, // uniquePlanes[].d - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->widths), CHILDREN(13), 1 }, // widths - { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // widths[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->edges), CHILDREN(14), 1 }, // edges - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // edges[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->adjacentFaces), CHILDREN(15), 1 }, // adjacentFaces - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // adjacentFaces[] - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->volume), NULL, 0 }, // volume - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->uniqueEdgeDirectionCount), NULL, 0 }, // uniqueEdgeDirectionCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->planeCount), NULL, 0 }, // planeCount -}; - - -bool ConvexHullParameters::mBuiltFlag = false; -NvParameterized::MutexType ConvexHullParameters::mBuiltFlagMutex; - -ConvexHullParameters::ConvexHullParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &ConvexHullParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -ConvexHullParameters::~ConvexHullParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void ConvexHullParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~ConvexHullParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* ConvexHullParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* ConvexHullParameters::getParameterDefinitionTree(void) const -{ - ConvexHullParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType ConvexHullParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType ConvexHullParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void ConvexHullParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void ConvexHullParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void ConvexHullParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); - HintTable[1].init("shortDescription", "Convex hull vertices", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="vertices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("vertices", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); - HintTable[1].init("shortDescription", "Convex hull vertices", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="uniquePlanes" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("uniquePlanes", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); - HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="uniquePlanes[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("uniquePlanes", TYPE_STRUCT, "Plane", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); - HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="uniquePlanes[].normal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("normal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A plane normal. This plane is used to define convex volumes.", true); - HintTable[1].init("shortDescription", "A plane normal", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="uniquePlanes[].d" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("d", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A plane displacement, defined by the negative of the plane normal\n dotted with a point in the plane. This plane is used to define convex volumes.", true); - HintTable[1].init("shortDescription", "A plane displacement", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="widths" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("widths", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); - HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="widths[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("widths", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); - HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="edges" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("edges", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); - HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="edges[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("edges", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); - HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="adjacentFaces" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("adjacentFaces", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); - HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="adjacentFaces[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("adjacentFaces", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); - HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The AABB of the convex hull.", true); - HintTable[1].init("shortDescription", "The AABB of the convex hull", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="volume" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("volume", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The volume of the convex hull.", true); - HintTable[1].init("shortDescription", "The volume of the convex hull", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="uniqueEdgeDirectionCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("uniqueEdgeDirectionCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of unique edge directions. The first uniqueEdgeDirectionCount\n elements of the edges array represent these directions.", true); - HintTable[1].init("shortDescription", "The number of unique edge directions", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="planeCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("planeCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The total number of faces. This includes parallel opposite faces,\n so may be larger than the array size of uniquePlanes. For plane indices i less than uniquePlanes.size(),\n simply use uniquePlanes[i] to find the corresponding plane. For plane indicies i in the range\n [uniquePlanes.size(), planeCount), the uniquePlanes array is arranged such that you obtain the correct plane\n by starting with the plane p = uniquePlanes[index-uniquePlanes.size()]. Then, add widths[index-uniquePlanes.size()]\n to the plane displacement p.d, and finally negate both the plane normal p.n and the displacement p.d.", true); - HintTable[1].init("shortDescription", "The total number of faces", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(7); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(11); - Children[5] = PDEF_PTR(13); - Children[6] = PDEF_PTR(14); - Children[7] = PDEF_PTR(15); - Children[8] = PDEF_PTR(16); - - ParamDefTable[0].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=1, longName="vertices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="uniquePlanes" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="uniquePlanes[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(5); - Children[1] = PDEF_PTR(6); - - ParamDefTable[4].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=7, longName="widths" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=9, longName="edges" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(10); - - ParamDefTable[9].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=11, longName="adjacentFaces" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(12); - - ParamDefTable[11].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void ConvexHullParameters::initStrings(void) -{ -} - -void ConvexHullParameters::initDynamicArrays(void) -{ - vertices.buf = NULL; - vertices.isAllocated = true; - vertices.elementSize = sizeof(physx::PxVec3); - vertices.arraySizes[0] = 0; - uniquePlanes.buf = NULL; - uniquePlanes.isAllocated = true; - uniquePlanes.elementSize = sizeof(Plane_Type); - uniquePlanes.arraySizes[0] = 0; - widths.buf = NULL; - widths.isAllocated = true; - widths.elementSize = sizeof(float); - widths.arraySizes[0] = 0; - edges.buf = NULL; - edges.isAllocated = true; - edges.elementSize = sizeof(uint32_t); - edges.arraySizes[0] = 0; - adjacentFaces.buf = NULL; - adjacentFaces.isAllocated = true; - adjacentFaces.elementSize = sizeof(uint32_t); - adjacentFaces.arraySizes[0] = 0; -} - -void ConvexHullParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - volume = float(0); - uniqueEdgeDirectionCount = uint32_t(0); - planeCount = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void ConvexHullParameters::initReferences(void) -{ -} - -void ConvexHullParameters::freeDynamicArrays(void) -{ - if (vertices.isAllocated && vertices.buf) - { - mParameterizedTraits->free(vertices.buf); - } - if (uniquePlanes.isAllocated && uniquePlanes.buf) - { - mParameterizedTraits->free(uniquePlanes.buf); - } - if (widths.isAllocated && widths.buf) - { - mParameterizedTraits->free(widths.buf); - } - if (edges.isAllocated && edges.buf) - { - mParameterizedTraits->free(edges.buf); - } - if (adjacentFaces.isAllocated && adjacentFaces.buf) - { - mParameterizedTraits->free(adjacentFaces.buf); - } -} - -void ConvexHullParameters::freeStrings(void) -{ -} - -void ConvexHullParameters::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "ConvexHullParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace ConvexHullParametersNS; + +const char* const ConvexHullParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 17; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 7, 9, 11, 13, 14, 15, 16, 2, 4, 5, 6, 8, 10, 12, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertices), CHILDREN(9), 1 }, // vertices + { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // vertices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->uniquePlanes), CHILDREN(10), 1 }, // uniquePlanes + { TYPE_STRUCT, false, 1 * sizeof(Plane_Type), CHILDREN(11), 2 }, // uniquePlanes[] + { TYPE_VEC3, false, (size_t)(&((Plane_Type*)0)->normal), NULL, 0 }, // uniquePlanes[].normal + { TYPE_F32, false, (size_t)(&((Plane_Type*)0)->d), NULL, 0 }, // uniquePlanes[].d + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->widths), CHILDREN(13), 1 }, // widths + { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // widths[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->edges), CHILDREN(14), 1 }, // edges + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // edges[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->adjacentFaces), CHILDREN(15), 1 }, // adjacentFaces + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // adjacentFaces[] + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->volume), NULL, 0 }, // volume + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->uniqueEdgeDirectionCount), NULL, 0 }, // uniqueEdgeDirectionCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->planeCount), NULL, 0 }, // planeCount +}; + + +bool ConvexHullParameters::mBuiltFlag = false; +NvParameterized::MutexType ConvexHullParameters::mBuiltFlagMutex; + +ConvexHullParameters::ConvexHullParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &ConvexHullParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +ConvexHullParameters::~ConvexHullParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void ConvexHullParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~ConvexHullParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* ConvexHullParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* ConvexHullParameters::getParameterDefinitionTree(void) const +{ + ConvexHullParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType ConvexHullParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType ConvexHullParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void ConvexHullParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void ConvexHullParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void ConvexHullParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); + HintTable[1].init("shortDescription", "Convex hull vertices", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="vertices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("vertices", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); + HintTable[1].init("shortDescription", "Convex hull vertices", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="uniquePlanes" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("uniquePlanes", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); + HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="uniquePlanes[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("uniquePlanes", TYPE_STRUCT, "Plane", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); + HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="uniquePlanes[].normal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("normal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A plane normal. This plane is used to define convex volumes.", true); + HintTable[1].init("shortDescription", "A plane normal", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="uniquePlanes[].d" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("d", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A plane displacement, defined by the negative of the plane normal\n dotted with a point in the plane. This plane is used to define convex volumes.", true); + HintTable[1].init("shortDescription", "A plane displacement", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="widths" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("widths", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); + HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="widths[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("widths", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); + HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="edges" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("edges", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); + HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="edges[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("edges", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); + HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="adjacentFaces" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("adjacentFaces", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); + HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="adjacentFaces[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("adjacentFaces", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); + HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The AABB of the convex hull.", true); + HintTable[1].init("shortDescription", "The AABB of the convex hull", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="volume" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("volume", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The volume of the convex hull.", true); + HintTable[1].init("shortDescription", "The volume of the convex hull", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="uniqueEdgeDirectionCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("uniqueEdgeDirectionCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of unique edge directions. The first uniqueEdgeDirectionCount\n elements of the edges array represent these directions.", true); + HintTable[1].init("shortDescription", "The number of unique edge directions", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="planeCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("planeCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The total number of faces. This includes parallel opposite faces,\n so may be larger than the array size of uniquePlanes. For plane indices i less than uniquePlanes.size(),\n simply use uniquePlanes[i] to find the corresponding plane. For plane indicies i in the range\n [uniquePlanes.size(), planeCount), the uniquePlanes array is arranged such that you obtain the correct plane\n by starting with the plane p = uniquePlanes[index-uniquePlanes.size()]. Then, add widths[index-uniquePlanes.size()]\n to the plane displacement p.d, and finally negate both the plane normal p.n and the displacement p.d.", true); + HintTable[1].init("shortDescription", "The total number of faces", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(7); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(11); + Children[5] = PDEF_PTR(13); + Children[6] = PDEF_PTR(14); + Children[7] = PDEF_PTR(15); + Children[8] = PDEF_PTR(16); + + ParamDefTable[0].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=1, longName="vertices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="uniquePlanes" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="uniquePlanes[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(5); + Children[1] = PDEF_PTR(6); + + ParamDefTable[4].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=7, longName="widths" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=9, longName="edges" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(10); + + ParamDefTable[9].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=11, longName="adjacentFaces" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(12); + + ParamDefTable[11].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void ConvexHullParameters::initStrings(void) +{ +} + +void ConvexHullParameters::initDynamicArrays(void) +{ + vertices.buf = NULL; + vertices.isAllocated = true; + vertices.elementSize = sizeof(physx::PxVec3); + vertices.arraySizes[0] = 0; + uniquePlanes.buf = NULL; + uniquePlanes.isAllocated = true; + uniquePlanes.elementSize = sizeof(Plane_Type); + uniquePlanes.arraySizes[0] = 0; + widths.buf = NULL; + widths.isAllocated = true; + widths.elementSize = sizeof(float); + widths.arraySizes[0] = 0; + edges.buf = NULL; + edges.isAllocated = true; + edges.elementSize = sizeof(uint32_t); + edges.arraySizes[0] = 0; + adjacentFaces.buf = NULL; + adjacentFaces.isAllocated = true; + adjacentFaces.elementSize = sizeof(uint32_t); + adjacentFaces.arraySizes[0] = 0; +} + +void ConvexHullParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + volume = float(0); + uniqueEdgeDirectionCount = uint32_t(0); + planeCount = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void ConvexHullParameters::initReferences(void) +{ +} + +void ConvexHullParameters::freeDynamicArrays(void) +{ + if (vertices.isAllocated && vertices.buf) + { + mParameterizedTraits->free(vertices.buf); + } + if (uniquePlanes.isAllocated && uniquePlanes.buf) + { + mParameterizedTraits->free(uniquePlanes.buf); + } + if (widths.isAllocated && widths.buf) + { + mParameterizedTraits->free(widths.buf); + } + if (edges.isAllocated && edges.buf) + { + mParameterizedTraits->free(edges.buf); + } + if (adjacentFaces.isAllocated && adjacentFaces.buf) + { + mParameterizedTraits->free(adjacentFaces.buf); + } +} + +void ConvexHullParameters::freeStrings(void) +{ +} + +void ConvexHullParameters::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugColorParams.cpp b/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugColorParams.cpp old mode 100644 new mode 100755 index dddb8fc..bff8080 --- a/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugColorParams.cpp +++ b/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugColorParams.cpp @@ -1,1184 +1,1184 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DebugColorParams.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace DebugColorParamsNS; - -const char* const DebugColorParamsFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 37; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 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, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 36 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Default), NULL, 0 }, // Default - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->PoseArrows), NULL, 0 }, // PoseArrows - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshStatic), NULL, 0 }, // MeshStatic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshDynamic), NULL, 0 }, // MeshDynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Shape), NULL, 0 }, // Shape - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text0), NULL, 0 }, // Text0 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text1), NULL, 0 }, // Text1 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsLow), NULL, 0 }, // ForceArrowsLow - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsNorm), NULL, 0 }, // ForceArrowsNorm - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsHigh), NULL, 0 }, // ForceArrowsHigh - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color0), NULL, 0 }, // Color0 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color1), NULL, 0 }, // Color1 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color2), NULL, 0 }, // Color2 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color3), NULL, 0 }, // Color3 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color4), NULL, 0 }, // Color4 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color5), NULL, 0 }, // Color5 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Red), NULL, 0 }, // Red - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Green), NULL, 0 }, // Green - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Blue), NULL, 0 }, // Blue - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkRed), NULL, 0 }, // DarkRed - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGreen), NULL, 0 }, // DarkGreen - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkBlue), NULL, 0 }, // DarkBlue - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightRed), NULL, 0 }, // LightRed - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGreen), NULL, 0 }, // LightGreen - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightBlue), NULL, 0 }, // LightBlue - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Purple), NULL, 0 }, // Purple - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkPurple), NULL, 0 }, // DarkPurple - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Yellow), NULL, 0 }, // Yellow - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Orange), NULL, 0 }, // Orange - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gold), NULL, 0 }, // Gold - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Emerald), NULL, 0 }, // Emerald - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->White), NULL, 0 }, // White - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Black), NULL, 0 }, // Black - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gray), NULL, 0 }, // Gray - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGray), NULL, 0 }, // LightGray - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGray), NULL, 0 }, // DarkGray -}; - - -bool DebugColorParams::mBuiltFlag = false; -NvParameterized::MutexType DebugColorParams::mBuiltFlagMutex; - -DebugColorParams::DebugColorParams(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DebugColorParamsFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DebugColorParams::~DebugColorParams() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DebugColorParams::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DebugColorParams(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DebugColorParams::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DebugColorParams::getParameterDefinitionTree(void) const -{ - DebugColorParams* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DebugColorParams::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DebugColorParams::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DebugColorParams::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DebugColorParams::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DebugColorParams::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="Default" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("Default", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Default color value", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="PoseArrows" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("PoseArrows", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Pose arrows color value", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="MeshStatic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("MeshStatic", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Static mesh color value", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="MeshDynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("MeshDynamic", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dynamic mesh color value", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="Shape" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("Shape", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shape color value", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="Text0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("Text0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Text0 color value", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="Text1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("Text1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Text1 color value", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="ForceArrowsLow" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("ForceArrowsLow", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Force arrows color value (low value)", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="ForceArrowsNorm" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("ForceArrowsNorm", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Force arrows color value (normal value)", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="ForceArrowsHigh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("ForceArrowsHigh", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Force arrows color value (high value)", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="Color0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("Color0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color0 value", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="Color1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("Color1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color1 value", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="Color2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("Color2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color2 value", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="Color3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("Color3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color3 value", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="Color4" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("Color4", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color4 value", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="Color5" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("Color5", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color5 value", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="Red" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("Red", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Red color value", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="Green" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("Green", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Green color value", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="Blue" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("Blue", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Blue color value", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="DarkRed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("DarkRed", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark red value", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="DarkGreen" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("DarkGreen", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark green value", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="DarkBlue" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("DarkBlue", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark blue value", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="LightRed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("LightRed", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light red value", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="LightGreen" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("LightGreen", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light green value", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="LightBlue" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("LightBlue", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light blue value", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="Purple" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("Purple", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Purple value", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="DarkPurple" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("DarkPurple", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark purple value", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="Yellow" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("Yellow", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Yellow value", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="Orange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("Orange", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Orange value", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="Gold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("Gold", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Gold value", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="Emerald" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("Emerald", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Emerald value", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="White" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("White", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "White value", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="Black" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("Black", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Black value", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="Gray" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("Gray", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Gray value", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="LightGray" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("LightGray", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light gray value", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="DarkGray" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DarkGray", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark gray value", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[36]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(18); - Children[18] = PDEF_PTR(19); - Children[19] = PDEF_PTR(20); - Children[20] = PDEF_PTR(21); - Children[21] = PDEF_PTR(22); - Children[22] = PDEF_PTR(23); - Children[23] = PDEF_PTR(24); - Children[24] = PDEF_PTR(25); - Children[25] = PDEF_PTR(26); - Children[26] = PDEF_PTR(27); - Children[27] = PDEF_PTR(28); - Children[28] = PDEF_PTR(29); - Children[29] = PDEF_PTR(30); - Children[30] = PDEF_PTR(31); - Children[31] = PDEF_PTR(32); - Children[32] = PDEF_PTR(33); - Children[33] = PDEF_PTR(34); - Children[34] = PDEF_PTR(35); - Children[35] = PDEF_PTR(36); - - ParamDefTable[0].setChildren(Children, 36); - } - - mBuiltFlag = true; - -} -void DebugColorParams::initStrings(void) -{ -} - -void DebugColorParams::initDynamicArrays(void) -{ -} - -void DebugColorParams::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - Default = uint32_t(0x00000000); - PoseArrows = uint32_t(0x00000000); - MeshStatic = uint32_t(0x00000000); - MeshDynamic = uint32_t(0x00000000); - Shape = uint32_t(0x00000000); - Text0 = uint32_t(0x00000000); - Text1 = uint32_t(0x00000000); - ForceArrowsLow = uint32_t(0xFFFFFF00); - ForceArrowsNorm = uint32_t(0xFF00FF00); - ForceArrowsHigh = uint32_t(0xFFFF0000); - Color0 = uint32_t(0x00000000); - Color1 = uint32_t(0x00000000); - Color2 = uint32_t(0x00000000); - Color3 = uint32_t(0x00000000); - Color4 = uint32_t(0x00000000); - Color5 = uint32_t(0x00000000); - Red = uint32_t(0xFFFF0000); - Green = uint32_t(0xFF00FF00); - Blue = uint32_t(0xFF0000FF); - DarkRed = uint32_t(0xFF800000); - DarkGreen = uint32_t(0xFF008000); - DarkBlue = uint32_t(0xFF000080); - LightRed = uint32_t(0xFFFF8080); - LightGreen = uint32_t(0xFF80FF00); - LightBlue = uint32_t(0xFF00FFFF); - Purple = uint32_t(0xFFFF00FF); - DarkPurple = uint32_t(0xFF800080); - Yellow = uint32_t(0xFFFFFF00); - Orange = uint32_t(0xFFFF8000); - Gold = uint32_t(0xFF808000); - Emerald = uint32_t(0xFF008080); - White = uint32_t(0xFFFFFFFF); - Black = uint32_t(0x00000000); - Gray = uint32_t(0xFF808080); - LightGray = uint32_t(0xFFC0C0C0); - DarkGray = uint32_t(0xFF404040); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DebugColorParams::initReferences(void) -{ -} - -void DebugColorParams::freeDynamicArrays(void) -{ -} - -void DebugColorParams::freeStrings(void) -{ -} - -void DebugColorParams::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DebugColorParams.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace DebugColorParamsNS; + +const char* const DebugColorParamsFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 37; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 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, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 36 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Default), NULL, 0 }, // Default + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->PoseArrows), NULL, 0 }, // PoseArrows + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshStatic), NULL, 0 }, // MeshStatic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshDynamic), NULL, 0 }, // MeshDynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Shape), NULL, 0 }, // Shape + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text0), NULL, 0 }, // Text0 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text1), NULL, 0 }, // Text1 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsLow), NULL, 0 }, // ForceArrowsLow + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsNorm), NULL, 0 }, // ForceArrowsNorm + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsHigh), NULL, 0 }, // ForceArrowsHigh + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color0), NULL, 0 }, // Color0 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color1), NULL, 0 }, // Color1 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color2), NULL, 0 }, // Color2 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color3), NULL, 0 }, // Color3 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color4), NULL, 0 }, // Color4 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color5), NULL, 0 }, // Color5 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Red), NULL, 0 }, // Red + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Green), NULL, 0 }, // Green + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Blue), NULL, 0 }, // Blue + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkRed), NULL, 0 }, // DarkRed + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGreen), NULL, 0 }, // DarkGreen + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkBlue), NULL, 0 }, // DarkBlue + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightRed), NULL, 0 }, // LightRed + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGreen), NULL, 0 }, // LightGreen + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightBlue), NULL, 0 }, // LightBlue + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Purple), NULL, 0 }, // Purple + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkPurple), NULL, 0 }, // DarkPurple + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Yellow), NULL, 0 }, // Yellow + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Orange), NULL, 0 }, // Orange + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gold), NULL, 0 }, // Gold + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Emerald), NULL, 0 }, // Emerald + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->White), NULL, 0 }, // White + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Black), NULL, 0 }, // Black + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gray), NULL, 0 }, // Gray + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGray), NULL, 0 }, // LightGray + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGray), NULL, 0 }, // DarkGray +}; + + +bool DebugColorParams::mBuiltFlag = false; +NvParameterized::MutexType DebugColorParams::mBuiltFlagMutex; + +DebugColorParams::DebugColorParams(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DebugColorParamsFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DebugColorParams::~DebugColorParams() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DebugColorParams::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DebugColorParams(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DebugColorParams::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DebugColorParams::getParameterDefinitionTree(void) const +{ + DebugColorParams* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DebugColorParams::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DebugColorParams::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DebugColorParams::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DebugColorParams::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DebugColorParams::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="Default" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("Default", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Default color value", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="PoseArrows" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("PoseArrows", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Pose arrows color value", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="MeshStatic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("MeshStatic", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Static mesh color value", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="MeshDynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("MeshDynamic", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dynamic mesh color value", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="Shape" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("Shape", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shape color value", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="Text0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("Text0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Text0 color value", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="Text1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("Text1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Text1 color value", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="ForceArrowsLow" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("ForceArrowsLow", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Force arrows color value (low value)", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="ForceArrowsNorm" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("ForceArrowsNorm", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Force arrows color value (normal value)", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="ForceArrowsHigh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("ForceArrowsHigh", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Force arrows color value (high value)", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="Color0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("Color0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color0 value", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="Color1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("Color1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color1 value", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="Color2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("Color2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color2 value", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="Color3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("Color3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color3 value", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="Color4" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("Color4", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color4 value", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="Color5" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("Color5", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color5 value", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="Red" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("Red", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Red color value", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="Green" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("Green", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Green color value", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="Blue" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("Blue", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Blue color value", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="DarkRed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("DarkRed", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark red value", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="DarkGreen" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("DarkGreen", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark green value", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="DarkBlue" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("DarkBlue", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark blue value", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="LightRed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("LightRed", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light red value", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="LightGreen" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("LightGreen", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light green value", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="LightBlue" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("LightBlue", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light blue value", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="Purple" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("Purple", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Purple value", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="DarkPurple" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("DarkPurple", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark purple value", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="Yellow" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("Yellow", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Yellow value", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="Orange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("Orange", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Orange value", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="Gold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("Gold", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Gold value", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="Emerald" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("Emerald", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Emerald value", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="White" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("White", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "White value", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="Black" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("Black", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Black value", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="Gray" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("Gray", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Gray value", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="LightGray" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("LightGray", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light gray value", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="DarkGray" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DarkGray", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark gray value", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[36]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(18); + Children[18] = PDEF_PTR(19); + Children[19] = PDEF_PTR(20); + Children[20] = PDEF_PTR(21); + Children[21] = PDEF_PTR(22); + Children[22] = PDEF_PTR(23); + Children[23] = PDEF_PTR(24); + Children[24] = PDEF_PTR(25); + Children[25] = PDEF_PTR(26); + Children[26] = PDEF_PTR(27); + Children[27] = PDEF_PTR(28); + Children[28] = PDEF_PTR(29); + Children[29] = PDEF_PTR(30); + Children[30] = PDEF_PTR(31); + Children[31] = PDEF_PTR(32); + Children[32] = PDEF_PTR(33); + Children[33] = PDEF_PTR(34); + Children[34] = PDEF_PTR(35); + Children[35] = PDEF_PTR(36); + + ParamDefTable[0].setChildren(Children, 36); + } + + mBuiltFlag = true; + +} +void DebugColorParams::initStrings(void) +{ +} + +void DebugColorParams::initDynamicArrays(void) +{ +} + +void DebugColorParams::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + Default = uint32_t(0x00000000); + PoseArrows = uint32_t(0x00000000); + MeshStatic = uint32_t(0x00000000); + MeshDynamic = uint32_t(0x00000000); + Shape = uint32_t(0x00000000); + Text0 = uint32_t(0x00000000); + Text1 = uint32_t(0x00000000); + ForceArrowsLow = uint32_t(0xFFFFFF00); + ForceArrowsNorm = uint32_t(0xFF00FF00); + ForceArrowsHigh = uint32_t(0xFFFF0000); + Color0 = uint32_t(0x00000000); + Color1 = uint32_t(0x00000000); + Color2 = uint32_t(0x00000000); + Color3 = uint32_t(0x00000000); + Color4 = uint32_t(0x00000000); + Color5 = uint32_t(0x00000000); + Red = uint32_t(0xFFFF0000); + Green = uint32_t(0xFF00FF00); + Blue = uint32_t(0xFF0000FF); + DarkRed = uint32_t(0xFF800000); + DarkGreen = uint32_t(0xFF008000); + DarkBlue = uint32_t(0xFF000080); + LightRed = uint32_t(0xFFFF8080); + LightGreen = uint32_t(0xFF80FF00); + LightBlue = uint32_t(0xFF00FFFF); + Purple = uint32_t(0xFFFF00FF); + DarkPurple = uint32_t(0xFF800080); + Yellow = uint32_t(0xFFFFFF00); + Orange = uint32_t(0xFFFF8000); + Gold = uint32_t(0xFF808000); + Emerald = uint32_t(0xFF008080); + White = uint32_t(0xFFFFFFFF); + Black = uint32_t(0x00000000); + Gray = uint32_t(0xFF808080); + LightGray = uint32_t(0xFFC0C0C0); + DarkGray = uint32_t(0xFF404040); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DebugColorParams::initReferences(void) +{ +} + +void DebugColorParams::freeDynamicArrays(void) +{ +} + +void DebugColorParams::freeStrings(void) +{ +} + +void DebugColorParams::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugRenderParams.cpp b/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugRenderParams.cpp old mode 100644 new mode 100755 index 15b6fa1..0aaea44 --- a/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugRenderParams.cpp +++ b/sdk/extensions/import/apexmodules/modules/common/src/autogen/DebugRenderParams.cpp @@ -1,632 +1,632 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DebugRenderParams.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace DebugRenderParamsNS; - -const char* const DebugRenderParamsFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 13; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 11 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Enable), NULL, 0 }, // Enable - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->Scale), NULL, 0 }, // Scale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodBenefits), NULL, 0 }, // LodBenefits - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsScreenPos), NULL, 0 }, // RelativeLodBenefitsScreenPos - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsThickness), NULL, 0 }, // RelativeLodBenefitsThickness - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodDistanceScale), NULL, 0 }, // LodDistanceScale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderNormals), NULL, 0 }, // RenderNormals - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderTangents), NULL, 0 }, // RenderTangents - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderBitangents), NULL, 0 }, // RenderBitangents - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Bounds), NULL, 0 }, // Bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->moduleName), CHILDREN(11), 1 }, // moduleName - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // moduleName[] -}; - - -bool DebugRenderParams::mBuiltFlag = false; -NvParameterized::MutexType DebugRenderParams::mBuiltFlagMutex; - -DebugRenderParams::DebugRenderParams(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DebugRenderParamsFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DebugRenderParams::~DebugRenderParams() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DebugRenderParams::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DebugRenderParams(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DebugRenderParams::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DebugRenderParams::getParameterDefinitionTree(void) const -{ - DebugRenderParams* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DebugRenderParams::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - moduleName (not an array of structs) */ - -void DebugRenderParams::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DebugRenderParams::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="Enable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("Enable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable/disable debug rendering", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="Scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("Scale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Debug rendering scale", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="LodBenefits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("LodBenefits", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "LOD benefit debug visualization", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="RelativeLodBenefitsScreenPos" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("RelativeLodBenefitsScreenPos", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("max", double(1.0), true); - HintTable[1].init("min", double(-1.0), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("max", double(1.0), true); - HintTable[1].init("min", double(-1.0), true); - HintTable[2].init("shortDescription", "The y-axis value of the relative benefits bar (-1.0 - 1.0)", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="RelativeLodBenefitsThickness" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("RelativeLodBenefitsThickness", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The thickness scale of the relative benefits bar", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="LodDistanceScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("LodDistanceScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "LOD distance debug visualization", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="RenderNormals" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("RenderNormals", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the normals (blue) of the rendered mesh. (scalable)", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="RenderTangents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("RenderTangents", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the tangents (red) of the rendered mesh. (scalable)", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="RenderBitangents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("RenderBitangents", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the bitangents (green) of the rendered mesh. (scalable)", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="Bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("Bounds", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the bounds of every apex actor", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="moduleName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("moduleName", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("shortDescription", "Module name", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; - ParamDefTable[11].setRefVariantVals((const char**)RefVariantVals, 10); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="moduleName[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("moduleName", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("shortDescription", "Module name", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; - ParamDefTable[12].setRefVariantVals((const char**)RefVariantVals, 10); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - - ParamDefTable[0].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=11, longName="moduleName" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(12); - - ParamDefTable[11].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DebugRenderParams::initStrings(void) -{ -} - -void DebugRenderParams::initDynamicArrays(void) -{ - moduleName.buf = NULL; - moduleName.isAllocated = true; - moduleName.elementSize = sizeof(NvParameterized::Interface*); - moduleName.arraySizes[0] = 0; -} - -void DebugRenderParams::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - Enable = bool(false); - Scale = float(0); - LodBenefits = float(0); - RelativeLodBenefitsScreenPos = float(-0.8); - RelativeLodBenefitsThickness = float(0.6); - LodDistanceScale = float(0); - RenderNormals = float(0); - RenderTangents = float(0); - RenderBitangents = float(0); - Bounds = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DebugRenderParams::initReferences(void) -{ -} - -void DebugRenderParams::freeDynamicArrays(void) -{ - if (moduleName.isAllocated && moduleName.buf) - { - mParameterizedTraits->free(moduleName.buf); - } -} - -void DebugRenderParams::freeStrings(void) -{ -} - -void DebugRenderParams::freeReferences(void) -{ - - for (int i = 0; i < moduleName.arraySizes[0]; ++i) - { - if (moduleName.buf[i]) - { - moduleName.buf[i]->destroy(); - } - } -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DebugRenderParams.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace DebugRenderParamsNS; + +const char* const DebugRenderParamsFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 13; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 11 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Enable), NULL, 0 }, // Enable + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->Scale), NULL, 0 }, // Scale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodBenefits), NULL, 0 }, // LodBenefits + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsScreenPos), NULL, 0 }, // RelativeLodBenefitsScreenPos + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsThickness), NULL, 0 }, // RelativeLodBenefitsThickness + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodDistanceScale), NULL, 0 }, // LodDistanceScale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderNormals), NULL, 0 }, // RenderNormals + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderTangents), NULL, 0 }, // RenderTangents + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderBitangents), NULL, 0 }, // RenderBitangents + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Bounds), NULL, 0 }, // Bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->moduleName), CHILDREN(11), 1 }, // moduleName + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // moduleName[] +}; + + +bool DebugRenderParams::mBuiltFlag = false; +NvParameterized::MutexType DebugRenderParams::mBuiltFlagMutex; + +DebugRenderParams::DebugRenderParams(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DebugRenderParamsFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DebugRenderParams::~DebugRenderParams() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DebugRenderParams::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DebugRenderParams(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DebugRenderParams::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DebugRenderParams::getParameterDefinitionTree(void) const +{ + DebugRenderParams* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DebugRenderParams::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - moduleName (not an array of structs) */ + +void DebugRenderParams::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DebugRenderParams::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="Enable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("Enable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable/disable debug rendering", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="Scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("Scale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Debug rendering scale", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="LodBenefits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("LodBenefits", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "LOD benefit debug visualization", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="RelativeLodBenefitsScreenPos" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("RelativeLodBenefitsScreenPos", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("max", double(1.0), true); + HintTable[1].init("min", double(-1.0), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("max", double(1.0), true); + HintTable[1].init("min", double(-1.0), true); + HintTable[2].init("shortDescription", "The y-axis value of the relative benefits bar (-1.0 - 1.0)", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="RelativeLodBenefitsThickness" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("RelativeLodBenefitsThickness", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The thickness scale of the relative benefits bar", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="LodDistanceScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("LodDistanceScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "LOD distance debug visualization", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="RenderNormals" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("RenderNormals", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the normals (blue) of the rendered mesh. (scalable)", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="RenderTangents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("RenderTangents", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the tangents (red) of the rendered mesh. (scalable)", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="RenderBitangents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("RenderBitangents", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the bitangents (green) of the rendered mesh. (scalable)", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="Bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("Bounds", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the bounds of every apex actor", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="moduleName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("moduleName", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("shortDescription", "Module name", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; + ParamDefTable[11].setRefVariantVals((const char**)RefVariantVals, 10); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="moduleName[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("moduleName", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("shortDescription", "Module name", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; + ParamDefTable[12].setRefVariantVals((const char**)RefVariantVals, 10); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + + ParamDefTable[0].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=11, longName="moduleName" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(12); + + ParamDefTable[11].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DebugRenderParams::initStrings(void) +{ +} + +void DebugRenderParams::initDynamicArrays(void) +{ + moduleName.buf = NULL; + moduleName.isAllocated = true; + moduleName.elementSize = sizeof(NvParameterized::Interface*); + moduleName.arraySizes[0] = 0; +} + +void DebugRenderParams::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + Enable = bool(false); + Scale = float(0); + LodBenefits = float(0); + RelativeLodBenefitsScreenPos = float(-0.8); + RelativeLodBenefitsThickness = float(0.6); + LodDistanceScale = float(0); + RenderNormals = float(0); + RenderTangents = float(0); + RenderBitangents = float(0); + Bounds = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DebugRenderParams::initReferences(void) +{ +} + +void DebugRenderParams::freeDynamicArrays(void) +{ + if (moduleName.isAllocated && moduleName.buf) + { + mParameterizedTraits->free(moduleName.buf); + } +} + +void DebugRenderParams::freeStrings(void) +{ +} + +void DebugRenderParams::freeReferences(void) +{ + + for (int i = 0; i < moduleName.arraySizes[0]; ++i) + { + if (moduleName.buf[i]) + { + moduleName.buf[i]->destroy(); + } + } +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/include/ConversionConvexHullParameters_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/common_legacy/include/ConversionConvexHullParameters_0p0_0p1.h old mode 100644 new mode 100755 index be5bc11..f91d080 --- a/sdk/extensions/import/apexmodules/modules/common_legacy/include/ConversionConvexHullParameters_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/include/ConversionConvexHullParameters_0p0_0p1.h @@ -1,83 +1,83 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONCONVEXHULLPARAMETERS_0P0_0P1H_H -#define MODULE_CONVERSIONCONVEXHULLPARAMETERS_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "ConvexHullParameters_0p0.h" -#include "ConvexHullParameters_0p1.h" - - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionConvexHullParameters_0p0_0p1Parent; - -class ConversionConvexHullParameters_0p0_0p1: public ConversionConvexHullParameters_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionConvexHullParameters_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionConvexHullParameters_0p0_0p1)(t) : 0; - } - -protected: - ConversionConvexHullParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionConvexHullParameters_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - - /** - We don't use adjacency information in Blast, so just skip this conversion. - */ - - // The 0.0 format does not have the adjacentFaces array. We will simply rebuild the convex hull from the - // old version's vertices. - - //nvidia::ConvexHullImpl hull; - //hull.init(); - - //hull.buildFromPoints(mLegacyData->vertices.buf, (uint32_t)mLegacyData->vertices.arraySizes[0], (uint32_t)mLegacyData->vertices.elementSize); - //mNewData->copy(*hull.mParams); - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONCONVEXHULLPARAMETERS_0P0_0P1H_H +#define MODULE_CONVERSIONCONVEXHULLPARAMETERS_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "ConvexHullParameters_0p0.h" +#include "ConvexHullParameters_0p1.h" + + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionConvexHullParameters_0p0_0p1Parent; + +class ConversionConvexHullParameters_0p0_0p1: public ConversionConvexHullParameters_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionConvexHullParameters_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionConvexHullParameters_0p0_0p1)(t) : 0; + } + +protected: + ConversionConvexHullParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionConvexHullParameters_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + + /** + We don't use adjacency information in Blast, so just skip this conversion. + */ + + // The 0.0 format does not have the adjacentFaces array. We will simply rebuild the convex hull from the + // old version's vertices. + + //nvidia::ConvexHullImpl hull; + //hull.init(); + + //hull.buildFromPoints(mLegacyData->vertices.buf, (uint32_t)mLegacyData->vertices.arraySizes[0], (uint32_t)mLegacyData->vertices.elementSize); + //mNewData->copy(*hull.mParams); + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p0.h old mode 100644 new mode 100755 index d742409..bad40ab --- a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p0.h @@ -1,275 +1,275 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_ConvexHullParameters_0p0_h -#define HEADER_ConvexHullParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace ConvexHullParameters_0p0NS -{ - -struct Plane_Type; - -struct VEC3_DynamicArray1D_Type -{ - physx::PxVec3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Plane_DynamicArray1D_Type -{ - Plane_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32_DynamicArray1D_Type -{ - float* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; - -struct ParametersStruct -{ - - VEC3_DynamicArray1D_Type vertices; - Plane_DynamicArray1D_Type uniquePlanes; - F32_DynamicArray1D_Type widths; - U32_DynamicArray1D_Type edges; - physx::PxBounds3 bounds; - float volume; - uint32_t uniqueEdgeDirectionCount; - uint32_t planeCount; - -}; - -static const uint32_t checksum[] = { 0xb9070a81, 0x96cfd7fb, 0xc91275c1, 0x553ffa42, }; - -} // namespace ConvexHullParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class ConvexHullParameters_0p0 : public NvParameterized::NvParameters, public ConvexHullParameters_0p0NS::ParametersStruct -{ -public: - ConvexHullParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~ConvexHullParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("ConvexHullParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(ConvexHullParameters_0p0NS::checksum); - return ConvexHullParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const ConvexHullParameters_0p0NS::ParametersStruct& parameters(void) const - { - ConvexHullParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - ConvexHullParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class ConvexHullParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - ConvexHullParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(ConvexHullParameters_0p0), ConvexHullParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, ConvexHullParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(ConvexHullParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, ConvexHullParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, ConvexHullParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, ConvexHullParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of ConvexHullParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (ConvexHullParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (ConvexHullParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (ConvexHullParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (ConvexHullParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (ConvexHullParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_ConvexHullParameters_0p0_h +#define HEADER_ConvexHullParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace ConvexHullParameters_0p0NS +{ + +struct Plane_Type; + +struct VEC3_DynamicArray1D_Type +{ + physx::PxVec3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Plane_DynamicArray1D_Type +{ + Plane_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32_DynamicArray1D_Type +{ + float* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; + +struct ParametersStruct +{ + + VEC3_DynamicArray1D_Type vertices; + Plane_DynamicArray1D_Type uniquePlanes; + F32_DynamicArray1D_Type widths; + U32_DynamicArray1D_Type edges; + physx::PxBounds3 bounds; + float volume; + uint32_t uniqueEdgeDirectionCount; + uint32_t planeCount; + +}; + +static const uint32_t checksum[] = { 0xb9070a81, 0x96cfd7fb, 0xc91275c1, 0x553ffa42, }; + +} // namespace ConvexHullParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class ConvexHullParameters_0p0 : public NvParameterized::NvParameters, public ConvexHullParameters_0p0NS::ParametersStruct +{ +public: + ConvexHullParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~ConvexHullParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("ConvexHullParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(ConvexHullParameters_0p0NS::checksum); + return ConvexHullParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const ConvexHullParameters_0p0NS::ParametersStruct& parameters(void) const + { + ConvexHullParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + ConvexHullParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class ConvexHullParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + ConvexHullParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(ConvexHullParameters_0p0), ConvexHullParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, ConvexHullParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(ConvexHullParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, ConvexHullParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, ConvexHullParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, ConvexHullParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of ConvexHullParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (ConvexHullParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (ConvexHullParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (ConvexHullParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (ConvexHullParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (ConvexHullParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p1.h b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p1.h old mode 100644 new mode 100755 index 0c853da..d22989a --- a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ConvexHullParameters_0p1.h @@ -1,276 +1,276 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_ConvexHullParameters_0p1_h -#define HEADER_ConvexHullParameters_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace ConvexHullParameters_0p1NS -{ - -struct Plane_Type; - -struct VEC3_DynamicArray1D_Type -{ - physx::PxVec3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Plane_DynamicArray1D_Type -{ - Plane_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32_DynamicArray1D_Type -{ - float* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; - -struct ParametersStruct -{ - - VEC3_DynamicArray1D_Type vertices; - Plane_DynamicArray1D_Type uniquePlanes; - F32_DynamicArray1D_Type widths; - U32_DynamicArray1D_Type edges; - U32_DynamicArray1D_Type adjacentFaces; - physx::PxBounds3 bounds; - float volume; - uint32_t uniqueEdgeDirectionCount; - uint32_t planeCount; - -}; - -static const uint32_t checksum[] = { 0x8a50b89e, 0xda2f896b, 0x82da2553, 0x3b609a3d, }; - -} // namespace ConvexHullParameters_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class ConvexHullParameters_0p1 : public NvParameterized::NvParameters, public ConvexHullParameters_0p1NS::ParametersStruct -{ -public: - ConvexHullParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~ConvexHullParameters_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("ConvexHullParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(ConvexHullParameters_0p1NS::checksum); - return ConvexHullParameters_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const ConvexHullParameters_0p1NS::ParametersStruct& parameters(void) const - { - ConvexHullParameters_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - ConvexHullParameters_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class ConvexHullParameters_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - ConvexHullParameters_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(ConvexHullParameters_0p1), ConvexHullParameters_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, ConvexHullParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(ConvexHullParameters_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, ConvexHullParameters_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, ConvexHullParameters_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, ConvexHullParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of ConvexHullParameters_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (ConvexHullParameters_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (ConvexHullParameters_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (ConvexHullParameters_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (ConvexHullParameters_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (ConvexHullParameters_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_ConvexHullParameters_0p1_h +#define HEADER_ConvexHullParameters_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace ConvexHullParameters_0p1NS +{ + +struct Plane_Type; + +struct VEC3_DynamicArray1D_Type +{ + physx::PxVec3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Plane_DynamicArray1D_Type +{ + Plane_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32_DynamicArray1D_Type +{ + float* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; + +struct ParametersStruct +{ + + VEC3_DynamicArray1D_Type vertices; + Plane_DynamicArray1D_Type uniquePlanes; + F32_DynamicArray1D_Type widths; + U32_DynamicArray1D_Type edges; + U32_DynamicArray1D_Type adjacentFaces; + physx::PxBounds3 bounds; + float volume; + uint32_t uniqueEdgeDirectionCount; + uint32_t planeCount; + +}; + +static const uint32_t checksum[] = { 0x8a50b89e, 0xda2f896b, 0x82da2553, 0x3b609a3d, }; + +} // namespace ConvexHullParameters_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class ConvexHullParameters_0p1 : public NvParameterized::NvParameters, public ConvexHullParameters_0p1NS::ParametersStruct +{ +public: + ConvexHullParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~ConvexHullParameters_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("ConvexHullParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(ConvexHullParameters_0p1NS::checksum); + return ConvexHullParameters_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const ConvexHullParameters_0p1NS::ParametersStruct& parameters(void) const + { + ConvexHullParameters_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + ConvexHullParameters_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class ConvexHullParameters_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + ConvexHullParameters_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(ConvexHullParameters_0p1), ConvexHullParameters_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, ConvexHullParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(ConvexHullParameters_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, ConvexHullParameters_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, ConvexHullParameters_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, ConvexHullParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class ConvexHullParameters_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of ConvexHullParameters_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (ConvexHullParameters_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (ConvexHullParameters_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (ConvexHullParameters_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (ConvexHullParameters_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (ConvexHullParameters_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugColorParams_0p0.h b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugColorParams_0p0.h old mode 100644 new mode 100755 index ae89535..3c14e5d --- a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugColorParams_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugColorParams_0p0.h @@ -1,265 +1,265 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DebugColorParams_0p0_h -#define HEADER_DebugColorParams_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DebugColorParams_0p0NS -{ - - - -struct ParametersStruct -{ - - uint32_t Default; - uint32_t PoseArrows; - uint32_t MeshStatic; - uint32_t MeshDynamic; - uint32_t Shape; - uint32_t Text0; - uint32_t Text1; - uint32_t ForceArrowsLow; - uint32_t ForceArrowsNorm; - uint32_t ForceArrowsHigh; - uint32_t Color0; - uint32_t Color1; - uint32_t Color2; - uint32_t Color3; - uint32_t Color4; - uint32_t Color5; - uint32_t Red; - uint32_t Green; - uint32_t Blue; - uint32_t DarkRed; - uint32_t DarkGreen; - uint32_t DarkBlue; - uint32_t LightRed; - uint32_t LightGreen; - uint32_t LightBlue; - uint32_t Purple; - uint32_t DarkPurple; - uint32_t Yellow; - uint32_t Orange; - uint32_t Gold; - uint32_t Emerald; - uint32_t White; - uint32_t Black; - uint32_t Gray; - uint32_t LightGray; - uint32_t DarkGray; - -}; - -static const uint32_t checksum[] = { 0x21b30efd, 0xaea10022, 0x72a4df62, 0x8fab217f, }; - -} // namespace DebugColorParams_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DebugColorParams_0p0 : public NvParameterized::NvParameters, public DebugColorParams_0p0NS::ParametersStruct -{ -public: - DebugColorParams_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DebugColorParams_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DebugColorParams"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DebugColorParams_0p0NS::checksum); - return DebugColorParams_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DebugColorParams_0p0NS::ParametersStruct& parameters(void) const - { - DebugColorParams_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DebugColorParams_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DebugColorParams_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DebugColorParams_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DebugColorParams_0p0), DebugColorParams_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DebugColorParams_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DebugColorParams_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DebugColorParams_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DebugColorParams_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DebugColorParams_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DebugColorParams_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DebugColorParams_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DebugColorParams_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DebugColorParams_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DebugColorParams_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DebugColorParams_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DebugColorParams_0p0_h +#define HEADER_DebugColorParams_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DebugColorParams_0p0NS +{ + + + +struct ParametersStruct +{ + + uint32_t Default; + uint32_t PoseArrows; + uint32_t MeshStatic; + uint32_t MeshDynamic; + uint32_t Shape; + uint32_t Text0; + uint32_t Text1; + uint32_t ForceArrowsLow; + uint32_t ForceArrowsNorm; + uint32_t ForceArrowsHigh; + uint32_t Color0; + uint32_t Color1; + uint32_t Color2; + uint32_t Color3; + uint32_t Color4; + uint32_t Color5; + uint32_t Red; + uint32_t Green; + uint32_t Blue; + uint32_t DarkRed; + uint32_t DarkGreen; + uint32_t DarkBlue; + uint32_t LightRed; + uint32_t LightGreen; + uint32_t LightBlue; + uint32_t Purple; + uint32_t DarkPurple; + uint32_t Yellow; + uint32_t Orange; + uint32_t Gold; + uint32_t Emerald; + uint32_t White; + uint32_t Black; + uint32_t Gray; + uint32_t LightGray; + uint32_t DarkGray; + +}; + +static const uint32_t checksum[] = { 0x21b30efd, 0xaea10022, 0x72a4df62, 0x8fab217f, }; + +} // namespace DebugColorParams_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DebugColorParams_0p0 : public NvParameterized::NvParameters, public DebugColorParams_0p0NS::ParametersStruct +{ +public: + DebugColorParams_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DebugColorParams_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DebugColorParams"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DebugColorParams_0p0NS::checksum); + return DebugColorParams_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DebugColorParams_0p0NS::ParametersStruct& parameters(void) const + { + DebugColorParams_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DebugColorParams_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DebugColorParams_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DebugColorParams_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DebugColorParams_0p0), DebugColorParams_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DebugColorParams_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DebugColorParams_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DebugColorParams_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DebugColorParams_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DebugColorParams_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugColorParams_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DebugColorParams_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DebugColorParams_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DebugColorParams_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DebugColorParams_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DebugColorParams_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DebugColorParams_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugRenderParams_0p1.h b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugRenderParams_0p1.h old mode 100644 new mode 100755 index b906dbe..4033929 --- a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugRenderParams_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/DebugRenderParams_0p1.h @@ -1,248 +1,248 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DebugRenderParams_0p1_h -#define HEADER_DebugRenderParams_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DebugRenderParams_0p1NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - bool Enable; - float Scale; - float LodBenefits; - float RelativeLodBenefitsScreenPos; - float RelativeLodBenefitsThickness; - float LodDistanceScale; - float RenderNormals; - float RenderTangents; - float RenderBitangents; - bool Bounds; - REF_DynamicArray1D_Type moduleName; - -}; - -static const uint32_t checksum[] = { 0x0679a129, 0x4119501f, 0xde4ce2b2, 0xecb0049b, }; - -} // namespace DebugRenderParams_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DebugRenderParams_0p1 : public NvParameterized::NvParameters, public DebugRenderParams_0p1NS::ParametersStruct -{ -public: - DebugRenderParams_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DebugRenderParams_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DebugRenderParams"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DebugRenderParams_0p1NS::checksum); - return DebugRenderParams_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DebugRenderParams_0p1NS::ParametersStruct& parameters(void) const - { - DebugRenderParams_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DebugRenderParams_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DebugRenderParams_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DebugRenderParams_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DebugRenderParams_0p1), DebugRenderParams_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DebugRenderParams_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DebugRenderParams_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DebugRenderParams_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DebugRenderParams_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DebugRenderParams_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DebugRenderParams_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DebugRenderParams_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (DebugRenderParams_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DebugRenderParams_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DebugRenderParams_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DebugRenderParams_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DebugRenderParams_0p1_h +#define HEADER_DebugRenderParams_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DebugRenderParams_0p1NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + bool Enable; + float Scale; + float LodBenefits; + float RelativeLodBenefitsScreenPos; + float RelativeLodBenefitsThickness; + float LodDistanceScale; + float RenderNormals; + float RenderTangents; + float RenderBitangents; + bool Bounds; + REF_DynamicArray1D_Type moduleName; + +}; + +static const uint32_t checksum[] = { 0x0679a129, 0x4119501f, 0xde4ce2b2, 0xecb0049b, }; + +} // namespace DebugRenderParams_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DebugRenderParams_0p1 : public NvParameterized::NvParameters, public DebugRenderParams_0p1NS::ParametersStruct +{ +public: + DebugRenderParams_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DebugRenderParams_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DebugRenderParams"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DebugRenderParams_0p1NS::checksum); + return DebugRenderParams_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DebugRenderParams_0p1NS::ParametersStruct& parameters(void) const + { + DebugRenderParams_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DebugRenderParams_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DebugRenderParams_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DebugRenderParams_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DebugRenderParams_0p1), DebugRenderParams_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DebugRenderParams_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DebugRenderParams_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DebugRenderParams_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DebugRenderParams_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DebugRenderParams_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DebugRenderParams_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DebugRenderParams_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DebugRenderParams_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (DebugRenderParams_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DebugRenderParams_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DebugRenderParams_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DebugRenderParams_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ModuleCommonLegacyRegistration.h b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ModuleCommonLegacyRegistration.h old mode 100644 new mode 100755 index 2c68e48..dc2716f --- a/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ModuleCommonLegacyRegistration.h +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/include/autogen/ModuleCommonLegacyRegistration.h @@ -1,130 +1,130 @@ -/* - * Copyright (c) 2008-2015, 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. - */ - -#ifndef MODULE_MODULECOMMONLEGACYREGISTRATIONH_H -#define MODULE_MODULECOMMONLEGACYREGISTRATIONH_H - -#include "PsAllocator.h" -#include "NvRegistrationsForTraitsBase.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PxAssert.h" -#include - -// INCLUDE GENERATED FACTORIES -#include "ConvexHullParameters_0p0.h" -#include "ConvexHullParameters_0p1.h" -#include "DebugColorParams_0p0.h" -#include "DebugRenderParams_0p1.h" - - -// INCLUDE GENERATED CONVERSION -#include "ConversionConvexHullParameters_0p0_0p1.h" - - -// global namespace - -class ModuleCommonLegacyRegistration : public NvParameterized::RegistrationsForTraitsBase -{ -public: - static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleCommonLegacyRegistration().registerAll(*parameterizedTraits); - } - } - - static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleCommonLegacyRegistration().unregisterAll(*parameterizedTraits); - } - } - - void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - ::NvParameterized::Factory* factoriesToRegister[] = { -// REGISTER GENERATED FACTORIES - new nvidia::parameterized::ConvexHullParameters_0p0Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) - { - parameterizedTraits.registerFactory(*factoriesToRegister[i]); - } - } - - virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// REGISTER GENERATED CONVERSION - { - typedef nvidia::apex::legacy::ConversionConvexHullParameters_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - - } - - void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - struct FactoryDesc - { - const char* name; - uint32_t version; - }; - - ::NvParameterized::Factory* factoriesToUnregister[] = { -// UNREGISTER GENERATED FACTORIES - new nvidia::parameterized::ConvexHullParameters_0p0Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) - { - ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); - if (!removedFactory) - { - PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); - } - else - { - removedFactory->freeParameterDefinitionTable(¶meterizedTraits); - delete removedFactory; - delete factoriesToUnregister[i]; - } - } - } - - virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// UNREGISTER GENERATED CONVERSION - { - typedef nvidia::apex::legacy::ConversionConvexHullParameters_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - - } - -}; - -// global namespace - -#endif +/* + * Copyright (c) 2008-2015, 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. + */ + +#ifndef MODULE_MODULECOMMONLEGACYREGISTRATIONH_H +#define MODULE_MODULECOMMONLEGACYREGISTRATIONH_H + +#include "PsAllocator.h" +#include "NvRegistrationsForTraitsBase.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PxAssert.h" +#include + +// INCLUDE GENERATED FACTORIES +#include "ConvexHullParameters_0p0.h" +#include "ConvexHullParameters_0p1.h" +#include "DebugColorParams_0p0.h" +#include "DebugRenderParams_0p1.h" + + +// INCLUDE GENERATED CONVERSION +#include "ConversionConvexHullParameters_0p0_0p1.h" + + +// global namespace + +class ModuleCommonLegacyRegistration : public NvParameterized::RegistrationsForTraitsBase +{ +public: + static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleCommonLegacyRegistration().registerAll(*parameterizedTraits); + } + } + + static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleCommonLegacyRegistration().unregisterAll(*parameterizedTraits); + } + } + + void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + ::NvParameterized::Factory* factoriesToRegister[] = { +// REGISTER GENERATED FACTORIES + new nvidia::parameterized::ConvexHullParameters_0p0Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) + { + parameterizedTraits.registerFactory(*factoriesToRegister[i]); + } + } + + virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// REGISTER GENERATED CONVERSION + { + typedef nvidia::apex::legacy::ConversionConvexHullParameters_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + + } + + void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + struct FactoryDesc + { + const char* name; + uint32_t version; + }; + + ::NvParameterized::Factory* factoriesToUnregister[] = { +// UNREGISTER GENERATED FACTORIES + new nvidia::parameterized::ConvexHullParameters_0p0Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) + { + ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); + if (!removedFactory) + { + PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); + } + else + { + removedFactory->freeParameterDefinitionTable(¶meterizedTraits); + delete removedFactory; + delete factoriesToUnregister[i]; + } + } + } + + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// UNREGISTER GENERATED CONVERSION + { + typedef nvidia::apex::legacy::ConversionConvexHullParameters_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + + } + +}; + +// global namespace + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p0.cpp old mode 100644 new mode 100755 index 2ac892d..b3ede33 --- a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p0.cpp @@ -1,703 +1,703 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "ConvexHullParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace ConvexHullParameters_0p0NS; - -const char* const ConvexHullParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 15; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 7, 9, 11, 12, 13, 14, 2, 4, 5, 6, 8, 10, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertices), CHILDREN(8), 1 }, // vertices - { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // vertices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->uniquePlanes), CHILDREN(9), 1 }, // uniquePlanes - { TYPE_STRUCT, false, 1 * sizeof(Plane_Type), CHILDREN(10), 2 }, // uniquePlanes[] - { TYPE_VEC3, false, (size_t)(&((Plane_Type*)0)->normal), NULL, 0 }, // uniquePlanes[].normal - { TYPE_F32, false, (size_t)(&((Plane_Type*)0)->d), NULL, 0 }, // uniquePlanes[].d - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->widths), CHILDREN(12), 1 }, // widths - { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // widths[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->edges), CHILDREN(13), 1 }, // edges - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // edges[] - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->volume), NULL, 0 }, // volume - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->uniqueEdgeDirectionCount), NULL, 0 }, // uniqueEdgeDirectionCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->planeCount), NULL, 0 }, // planeCount -}; - - -bool ConvexHullParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType ConvexHullParameters_0p0::mBuiltFlagMutex; - -ConvexHullParameters_0p0::ConvexHullParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &ConvexHullParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -ConvexHullParameters_0p0::~ConvexHullParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void ConvexHullParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~ConvexHullParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* ConvexHullParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* ConvexHullParameters_0p0::getParameterDefinitionTree(void) const -{ - ConvexHullParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType ConvexHullParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType ConvexHullParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void ConvexHullParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void ConvexHullParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void ConvexHullParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); - HintTable[1].init("shortDescription", "Convex hull vertices", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="vertices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("vertices", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); - HintTable[1].init("shortDescription", "Convex hull vertices", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="uniquePlanes" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("uniquePlanes", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); - HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="uniquePlanes[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("uniquePlanes", TYPE_STRUCT, "Plane", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); - HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="uniquePlanes[].normal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("normal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A plane normal. This plane is used to define convex volumes.", true); - HintTable[1].init("shortDescription", "A plane normal", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="uniquePlanes[].d" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("d", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A plane displacement, defined by the negative of the plane normal\n dotted with a point in the plane. This plane is used to define convex volumes.", true); - HintTable[1].init("shortDescription", "A plane displacement", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="widths" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("widths", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); - HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="widths[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("widths", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); - HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="edges" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("edges", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); - HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="edges[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("edges", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); - HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The AABB of the convex hull.", true); - HintTable[1].init("shortDescription", "The AABB of the convex hull", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="volume" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("volume", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The volume of the convex hull.", true); - HintTable[1].init("shortDescription", "The volume of the convex hull", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="uniqueEdgeDirectionCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("uniqueEdgeDirectionCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of unique edge directions. The first uniqueEdgeDirectionCount\n elements of the edges array represent these directions.", true); - HintTable[1].init("shortDescription", "The number of unique edge directions", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="planeCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("planeCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The total number of faces. This includes parallel opposite faces,\n so may be larger than the array size of uniquePlanes. For plane indices i less than uniquePlanes.size(),\n simply use uniquePlanes[i] to find the corresponding plane. For plane indicies i in the range\n [uniquePlanes.size(), planeCount), the uniquePlanes array is arranged such that you obtain the correct plane\n by starting with the plane p = uniquePlanes[index-uniquePlanes.size()]. Then, add widths[index-uniquePlanes.size()]\n to the plane displacement p.d, and finally negate both the plane normal p.n and the displacement p.d.", true); - HintTable[1].init("shortDescription", "The total number of faces", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(7); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(11); - Children[5] = PDEF_PTR(12); - Children[6] = PDEF_PTR(13); - Children[7] = PDEF_PTR(14); - - ParamDefTable[0].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=1, longName="vertices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="uniquePlanes" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="uniquePlanes[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(5); - Children[1] = PDEF_PTR(6); - - ParamDefTable[4].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=7, longName="widths" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=9, longName="edges" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(10); - - ParamDefTable[9].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void ConvexHullParameters_0p0::initStrings(void) -{ -} - -void ConvexHullParameters_0p0::initDynamicArrays(void) -{ - vertices.buf = NULL; - vertices.isAllocated = true; - vertices.elementSize = sizeof(physx::PxVec3); - vertices.arraySizes[0] = 0; - uniquePlanes.buf = NULL; - uniquePlanes.isAllocated = true; - uniquePlanes.elementSize = sizeof(Plane_Type); - uniquePlanes.arraySizes[0] = 0; - widths.buf = NULL; - widths.isAllocated = true; - widths.elementSize = sizeof(float); - widths.arraySizes[0] = 0; - edges.buf = NULL; - edges.isAllocated = true; - edges.elementSize = sizeof(uint32_t); - edges.arraySizes[0] = 0; -} - -void ConvexHullParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - volume = float(0); - uniqueEdgeDirectionCount = uint32_t(0); - planeCount = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void ConvexHullParameters_0p0::initReferences(void) -{ -} - -void ConvexHullParameters_0p0::freeDynamicArrays(void) -{ - if (vertices.isAllocated && vertices.buf) - { - mParameterizedTraits->free(vertices.buf); - } - if (uniquePlanes.isAllocated && uniquePlanes.buf) - { - mParameterizedTraits->free(uniquePlanes.buf); - } - if (widths.isAllocated && widths.buf) - { - mParameterizedTraits->free(widths.buf); - } - if (edges.isAllocated && edges.buf) - { - mParameterizedTraits->free(edges.buf); - } -} - -void ConvexHullParameters_0p0::freeStrings(void) -{ -} - -void ConvexHullParameters_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "ConvexHullParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace ConvexHullParameters_0p0NS; + +const char* const ConvexHullParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 15; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 7, 9, 11, 12, 13, 14, 2, 4, 5, 6, 8, 10, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertices), CHILDREN(8), 1 }, // vertices + { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // vertices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->uniquePlanes), CHILDREN(9), 1 }, // uniquePlanes + { TYPE_STRUCT, false, 1 * sizeof(Plane_Type), CHILDREN(10), 2 }, // uniquePlanes[] + { TYPE_VEC3, false, (size_t)(&((Plane_Type*)0)->normal), NULL, 0 }, // uniquePlanes[].normal + { TYPE_F32, false, (size_t)(&((Plane_Type*)0)->d), NULL, 0 }, // uniquePlanes[].d + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->widths), CHILDREN(12), 1 }, // widths + { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // widths[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->edges), CHILDREN(13), 1 }, // edges + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // edges[] + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->volume), NULL, 0 }, // volume + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->uniqueEdgeDirectionCount), NULL, 0 }, // uniqueEdgeDirectionCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->planeCount), NULL, 0 }, // planeCount +}; + + +bool ConvexHullParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType ConvexHullParameters_0p0::mBuiltFlagMutex; + +ConvexHullParameters_0p0::ConvexHullParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &ConvexHullParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +ConvexHullParameters_0p0::~ConvexHullParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void ConvexHullParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~ConvexHullParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* ConvexHullParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* ConvexHullParameters_0p0::getParameterDefinitionTree(void) const +{ + ConvexHullParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType ConvexHullParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType ConvexHullParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void ConvexHullParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void ConvexHullParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void ConvexHullParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); + HintTable[1].init("shortDescription", "Convex hull vertices", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="vertices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("vertices", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); + HintTable[1].init("shortDescription", "Convex hull vertices", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="uniquePlanes" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("uniquePlanes", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); + HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="uniquePlanes[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("uniquePlanes", TYPE_STRUCT, "Plane", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); + HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="uniquePlanes[].normal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("normal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A plane normal. This plane is used to define convex volumes.", true); + HintTable[1].init("shortDescription", "A plane normal", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="uniquePlanes[].d" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("d", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A plane displacement, defined by the negative of the plane normal\n dotted with a point in the plane. This plane is used to define convex volumes.", true); + HintTable[1].init("shortDescription", "A plane displacement", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="widths" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("widths", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); + HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="widths[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("widths", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); + HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="edges" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("edges", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); + HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="edges[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("edges", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); + HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The AABB of the convex hull.", true); + HintTable[1].init("shortDescription", "The AABB of the convex hull", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="volume" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("volume", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The volume of the convex hull.", true); + HintTable[1].init("shortDescription", "The volume of the convex hull", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="uniqueEdgeDirectionCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("uniqueEdgeDirectionCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of unique edge directions. The first uniqueEdgeDirectionCount\n elements of the edges array represent these directions.", true); + HintTable[1].init("shortDescription", "The number of unique edge directions", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="planeCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("planeCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The total number of faces. This includes parallel opposite faces,\n so may be larger than the array size of uniquePlanes. For plane indices i less than uniquePlanes.size(),\n simply use uniquePlanes[i] to find the corresponding plane. For plane indicies i in the range\n [uniquePlanes.size(), planeCount), the uniquePlanes array is arranged such that you obtain the correct plane\n by starting with the plane p = uniquePlanes[index-uniquePlanes.size()]. Then, add widths[index-uniquePlanes.size()]\n to the plane displacement p.d, and finally negate both the plane normal p.n and the displacement p.d.", true); + HintTable[1].init("shortDescription", "The total number of faces", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(7); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(11); + Children[5] = PDEF_PTR(12); + Children[6] = PDEF_PTR(13); + Children[7] = PDEF_PTR(14); + + ParamDefTable[0].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=1, longName="vertices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="uniquePlanes" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="uniquePlanes[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(5); + Children[1] = PDEF_PTR(6); + + ParamDefTable[4].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=7, longName="widths" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=9, longName="edges" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(10); + + ParamDefTable[9].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void ConvexHullParameters_0p0::initStrings(void) +{ +} + +void ConvexHullParameters_0p0::initDynamicArrays(void) +{ + vertices.buf = NULL; + vertices.isAllocated = true; + vertices.elementSize = sizeof(physx::PxVec3); + vertices.arraySizes[0] = 0; + uniquePlanes.buf = NULL; + uniquePlanes.isAllocated = true; + uniquePlanes.elementSize = sizeof(Plane_Type); + uniquePlanes.arraySizes[0] = 0; + widths.buf = NULL; + widths.isAllocated = true; + widths.elementSize = sizeof(float); + widths.arraySizes[0] = 0; + edges.buf = NULL; + edges.isAllocated = true; + edges.elementSize = sizeof(uint32_t); + edges.arraySizes[0] = 0; +} + +void ConvexHullParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + volume = float(0); + uniqueEdgeDirectionCount = uint32_t(0); + planeCount = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void ConvexHullParameters_0p0::initReferences(void) +{ +} + +void ConvexHullParameters_0p0::freeDynamicArrays(void) +{ + if (vertices.isAllocated && vertices.buf) + { + mParameterizedTraits->free(vertices.buf); + } + if (uniquePlanes.isAllocated && uniquePlanes.buf) + { + mParameterizedTraits->free(uniquePlanes.buf); + } + if (widths.isAllocated && widths.buf) + { + mParameterizedTraits->free(widths.buf); + } + if (edges.isAllocated && edges.buf) + { + mParameterizedTraits->free(edges.buf); + } +} + +void ConvexHullParameters_0p0::freeStrings(void) +{ +} + +void ConvexHullParameters_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p1.cpp b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p1.cpp old mode 100644 new mode 100755 index 982edde..dc6e9d1 --- a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/ConvexHullParameters_0p1.cpp @@ -1,768 +1,768 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "ConvexHullParameters_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace ConvexHullParameters_0p1NS; - -const char* const ConvexHullParameters_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 17; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 7, 9, 11, 13, 14, 15, 16, 2, 4, 5, 6, 8, 10, 12, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertices), CHILDREN(9), 1 }, // vertices - { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // vertices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->uniquePlanes), CHILDREN(10), 1 }, // uniquePlanes - { TYPE_STRUCT, false, 1 * sizeof(Plane_Type), CHILDREN(11), 2 }, // uniquePlanes[] - { TYPE_VEC3, false, (size_t)(&((Plane_Type*)0)->normal), NULL, 0 }, // uniquePlanes[].normal - { TYPE_F32, false, (size_t)(&((Plane_Type*)0)->d), NULL, 0 }, // uniquePlanes[].d - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->widths), CHILDREN(13), 1 }, // widths - { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // widths[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->edges), CHILDREN(14), 1 }, // edges - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // edges[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->adjacentFaces), CHILDREN(15), 1 }, // adjacentFaces - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // adjacentFaces[] - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->volume), NULL, 0 }, // volume - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->uniqueEdgeDirectionCount), NULL, 0 }, // uniqueEdgeDirectionCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->planeCount), NULL, 0 }, // planeCount -}; - - -bool ConvexHullParameters_0p1::mBuiltFlag = false; -NvParameterized::MutexType ConvexHullParameters_0p1::mBuiltFlagMutex; - -ConvexHullParameters_0p1::ConvexHullParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &ConvexHullParameters_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -ConvexHullParameters_0p1::~ConvexHullParameters_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void ConvexHullParameters_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~ConvexHullParameters_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* ConvexHullParameters_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* ConvexHullParameters_0p1::getParameterDefinitionTree(void) const -{ - ConvexHullParameters_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType ConvexHullParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType ConvexHullParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void ConvexHullParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void ConvexHullParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void ConvexHullParameters_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); - HintTable[1].init("shortDescription", "Convex hull vertices", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="vertices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("vertices", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); - HintTable[1].init("shortDescription", "Convex hull vertices", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="uniquePlanes" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("uniquePlanes", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); - HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="uniquePlanes[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("uniquePlanes", TYPE_STRUCT, "Plane", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); - HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="uniquePlanes[].normal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("normal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A plane normal. This plane is used to define convex volumes.", true); - HintTable[1].init("shortDescription", "A plane normal", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="uniquePlanes[].d" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("d", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A plane displacement, defined by the negative of the plane normal\n dotted with a point in the plane. This plane is used to define convex volumes.", true); - HintTable[1].init("shortDescription", "A plane displacement", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="widths" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("widths", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); - HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="widths[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("widths", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); - HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="edges" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("edges", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); - HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="edges[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("edges", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); - HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="adjacentFaces" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("adjacentFaces", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); - HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="adjacentFaces[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("adjacentFaces", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); - HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The AABB of the convex hull.", true); - HintTable[1].init("shortDescription", "The AABB of the convex hull", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="volume" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("volume", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The volume of the convex hull.", true); - HintTable[1].init("shortDescription", "The volume of the convex hull", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="uniqueEdgeDirectionCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("uniqueEdgeDirectionCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of unique edge directions. The first uniqueEdgeDirectionCount\n elements of the edges array represent these directions.", true); - HintTable[1].init("shortDescription", "The number of unique edge directions", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="planeCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("planeCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The total number of faces. This includes parallel opposite faces,\n so may be larger than the array size of uniquePlanes. For plane indices i less than uniquePlanes.size(),\n simply use uniquePlanes[i] to find the corresponding plane. For plane indicies i in the range\n [uniquePlanes.size(), planeCount), the uniquePlanes array is arranged such that you obtain the correct plane\n by starting with the plane p = uniquePlanes[index-uniquePlanes.size()]. Then, add widths[index-uniquePlanes.size()]\n to the plane displacement p.d, and finally negate both the plane normal p.n and the displacement p.d.", true); - HintTable[1].init("shortDescription", "The total number of faces", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(7); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(11); - Children[5] = PDEF_PTR(13); - Children[6] = PDEF_PTR(14); - Children[7] = PDEF_PTR(15); - Children[8] = PDEF_PTR(16); - - ParamDefTable[0].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=1, longName="vertices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="uniquePlanes" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="uniquePlanes[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(5); - Children[1] = PDEF_PTR(6); - - ParamDefTable[4].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=7, longName="widths" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=9, longName="edges" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(10); - - ParamDefTable[9].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=11, longName="adjacentFaces" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(12); - - ParamDefTable[11].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void ConvexHullParameters_0p1::initStrings(void) -{ -} - -void ConvexHullParameters_0p1::initDynamicArrays(void) -{ - vertices.buf = NULL; - vertices.isAllocated = true; - vertices.elementSize = sizeof(physx::PxVec3); - vertices.arraySizes[0] = 0; - uniquePlanes.buf = NULL; - uniquePlanes.isAllocated = true; - uniquePlanes.elementSize = sizeof(Plane_Type); - uniquePlanes.arraySizes[0] = 0; - widths.buf = NULL; - widths.isAllocated = true; - widths.elementSize = sizeof(float); - widths.arraySizes[0] = 0; - edges.buf = NULL; - edges.isAllocated = true; - edges.elementSize = sizeof(uint32_t); - edges.arraySizes[0] = 0; - adjacentFaces.buf = NULL; - adjacentFaces.isAllocated = true; - adjacentFaces.elementSize = sizeof(uint32_t); - adjacentFaces.arraySizes[0] = 0; -} - -void ConvexHullParameters_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - volume = float(0); - uniqueEdgeDirectionCount = uint32_t(0); - planeCount = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void ConvexHullParameters_0p1::initReferences(void) -{ -} - -void ConvexHullParameters_0p1::freeDynamicArrays(void) -{ - if (vertices.isAllocated && vertices.buf) - { - mParameterizedTraits->free(vertices.buf); - } - if (uniquePlanes.isAllocated && uniquePlanes.buf) - { - mParameterizedTraits->free(uniquePlanes.buf); - } - if (widths.isAllocated && widths.buf) - { - mParameterizedTraits->free(widths.buf); - } - if (edges.isAllocated && edges.buf) - { - mParameterizedTraits->free(edges.buf); - } - if (adjacentFaces.isAllocated && adjacentFaces.buf) - { - mParameterizedTraits->free(adjacentFaces.buf); - } -} - -void ConvexHullParameters_0p1::freeStrings(void) -{ -} - -void ConvexHullParameters_0p1::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "ConvexHullParameters_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace ConvexHullParameters_0p1NS; + +const char* const ConvexHullParameters_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 17; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 7, 9, 11, 13, 14, 15, 16, 2, 4, 5, 6, 8, 10, 12, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertices), CHILDREN(9), 1 }, // vertices + { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // vertices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->uniquePlanes), CHILDREN(10), 1 }, // uniquePlanes + { TYPE_STRUCT, false, 1 * sizeof(Plane_Type), CHILDREN(11), 2 }, // uniquePlanes[] + { TYPE_VEC3, false, (size_t)(&((Plane_Type*)0)->normal), NULL, 0 }, // uniquePlanes[].normal + { TYPE_F32, false, (size_t)(&((Plane_Type*)0)->d), NULL, 0 }, // uniquePlanes[].d + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->widths), CHILDREN(13), 1 }, // widths + { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // widths[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->edges), CHILDREN(14), 1 }, // edges + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // edges[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->adjacentFaces), CHILDREN(15), 1 }, // adjacentFaces + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // adjacentFaces[] + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->volume), NULL, 0 }, // volume + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->uniqueEdgeDirectionCount), NULL, 0 }, // uniqueEdgeDirectionCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->planeCount), NULL, 0 }, // planeCount +}; + + +bool ConvexHullParameters_0p1::mBuiltFlag = false; +NvParameterized::MutexType ConvexHullParameters_0p1::mBuiltFlagMutex; + +ConvexHullParameters_0p1::ConvexHullParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &ConvexHullParameters_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +ConvexHullParameters_0p1::~ConvexHullParameters_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void ConvexHullParameters_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~ConvexHullParameters_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* ConvexHullParameters_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* ConvexHullParameters_0p1::getParameterDefinitionTree(void) const +{ + ConvexHullParameters_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType ConvexHullParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType ConvexHullParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void ConvexHullParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void ConvexHullParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void ConvexHullParameters_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); + HintTable[1].init("shortDescription", "Convex hull vertices", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="vertices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("vertices", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertices of a convex polytope.", true); + HintTable[1].init("shortDescription", "Convex hull vertices", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="uniquePlanes" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("uniquePlanes", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); + HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="uniquePlanes[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("uniquePlanes", TYPE_STRUCT, "Plane", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Unique planes (neglecting parallel opposites). That is, if two faces exist\n on the convex hull which have opposite normals, the plane for only one of those faces is recorded.\n The other face is implicitly recorded by a corresponding width (in the widths array). Edges and\n vertices are also recorded, explicitly defining all faces.", true); + HintTable[1].init("shortDescription", "Unique planes (neglecting parallel opposites)", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="uniquePlanes[].normal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("normal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A plane normal. This plane is used to define convex volumes.", true); + HintTable[1].init("shortDescription", "A plane normal", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="uniquePlanes[].d" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("d", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A plane displacement, defined by the negative of the plane normal\n dotted with a point in the plane. This plane is used to define convex volumes.", true); + HintTable[1].init("shortDescription", "A plane displacement", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="widths" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("widths", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); + HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="widths[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("widths", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope.\n That is, if an opposing face exists, it is the distance between the faces. If no opposing face exists,\n it is the maximum distance below the unique plane over all vertices.", true); + HintTable[1].init("shortDescription", "For each unique plane (see uniquePlanes), this is the width of the convex polytope", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="edges" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("edges", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); + HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="edges[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("edges", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "All edges of the convex polytope, stored in a compressed index format.\n Each 32-bit integer stores the indices of two endpoints, in the high and low words. The indices\n refer to the vertices array.\n The edges are stored such that all unique edge directions are represented by the first\n uniqueEdgeDirectionCount entries.", true); + HintTable[1].init("shortDescription", "All edges of the convex polytope, stored in a compressed index format", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="adjacentFaces" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("adjacentFaces", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); + HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="adjacentFaces[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("adjacentFaces", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Face (plane) indices which are adjacent to each edge in the edges array.\n Each 32-bit integer stores the indices of two faces, in the high and low words. The indices\n refer to the face planes, and will be in the range [0, planeCount). To interpret the indices\n correctly, see the description of planeCount.\n If a \"dangling edge\" is generated, the face index stored in the high word will be 0xFFFF. (Invalid value.)", true); + HintTable[1].init("shortDescription", "Face (plane) indices which are adjacent to each edge in the edges array.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The AABB of the convex hull.", true); + HintTable[1].init("shortDescription", "The AABB of the convex hull", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="volume" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("volume", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The volume of the convex hull.", true); + HintTable[1].init("shortDescription", "The volume of the convex hull", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="uniqueEdgeDirectionCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("uniqueEdgeDirectionCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of unique edge directions. The first uniqueEdgeDirectionCount\n elements of the edges array represent these directions.", true); + HintTable[1].init("shortDescription", "The number of unique edge directions", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="planeCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("planeCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The total number of faces. This includes parallel opposite faces,\n so may be larger than the array size of uniquePlanes. For plane indices i less than uniquePlanes.size(),\n simply use uniquePlanes[i] to find the corresponding plane. For plane indicies i in the range\n [uniquePlanes.size(), planeCount), the uniquePlanes array is arranged such that you obtain the correct plane\n by starting with the plane p = uniquePlanes[index-uniquePlanes.size()]. Then, add widths[index-uniquePlanes.size()]\n to the plane displacement p.d, and finally negate both the plane normal p.n and the displacement p.d.", true); + HintTable[1].init("shortDescription", "The total number of faces", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(7); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(11); + Children[5] = PDEF_PTR(13); + Children[6] = PDEF_PTR(14); + Children[7] = PDEF_PTR(15); + Children[8] = PDEF_PTR(16); + + ParamDefTable[0].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=1, longName="vertices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="uniquePlanes" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="uniquePlanes[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(5); + Children[1] = PDEF_PTR(6); + + ParamDefTable[4].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=7, longName="widths" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=9, longName="edges" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(10); + + ParamDefTable[9].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=11, longName="adjacentFaces" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(12); + + ParamDefTable[11].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void ConvexHullParameters_0p1::initStrings(void) +{ +} + +void ConvexHullParameters_0p1::initDynamicArrays(void) +{ + vertices.buf = NULL; + vertices.isAllocated = true; + vertices.elementSize = sizeof(physx::PxVec3); + vertices.arraySizes[0] = 0; + uniquePlanes.buf = NULL; + uniquePlanes.isAllocated = true; + uniquePlanes.elementSize = sizeof(Plane_Type); + uniquePlanes.arraySizes[0] = 0; + widths.buf = NULL; + widths.isAllocated = true; + widths.elementSize = sizeof(float); + widths.arraySizes[0] = 0; + edges.buf = NULL; + edges.isAllocated = true; + edges.elementSize = sizeof(uint32_t); + edges.arraySizes[0] = 0; + adjacentFaces.buf = NULL; + adjacentFaces.isAllocated = true; + adjacentFaces.elementSize = sizeof(uint32_t); + adjacentFaces.arraySizes[0] = 0; +} + +void ConvexHullParameters_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + volume = float(0); + uniqueEdgeDirectionCount = uint32_t(0); + planeCount = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void ConvexHullParameters_0p1::initReferences(void) +{ +} + +void ConvexHullParameters_0p1::freeDynamicArrays(void) +{ + if (vertices.isAllocated && vertices.buf) + { + mParameterizedTraits->free(vertices.buf); + } + if (uniquePlanes.isAllocated && uniquePlanes.buf) + { + mParameterizedTraits->free(uniquePlanes.buf); + } + if (widths.isAllocated && widths.buf) + { + mParameterizedTraits->free(widths.buf); + } + if (edges.isAllocated && edges.buf) + { + mParameterizedTraits->free(edges.buf); + } + if (adjacentFaces.isAllocated && adjacentFaces.buf) + { + mParameterizedTraits->free(adjacentFaces.buf); + } +} + +void ConvexHullParameters_0p1::freeStrings(void) +{ +} + +void ConvexHullParameters_0p1::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugColorParams_0p0.cpp b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugColorParams_0p0.cpp old mode 100644 new mode 100755 index 5619823..9b072ea --- a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugColorParams_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugColorParams_0p0.cpp @@ -1,1184 +1,1184 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DebugColorParams_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DebugColorParams_0p0NS; - -const char* const DebugColorParams_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 37; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 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, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 36 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Default), NULL, 0 }, // Default - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->PoseArrows), NULL, 0 }, // PoseArrows - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshStatic), NULL, 0 }, // MeshStatic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshDynamic), NULL, 0 }, // MeshDynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Shape), NULL, 0 }, // Shape - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text0), NULL, 0 }, // Text0 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text1), NULL, 0 }, // Text1 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsLow), NULL, 0 }, // ForceArrowsLow - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsNorm), NULL, 0 }, // ForceArrowsNorm - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsHigh), NULL, 0 }, // ForceArrowsHigh - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color0), NULL, 0 }, // Color0 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color1), NULL, 0 }, // Color1 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color2), NULL, 0 }, // Color2 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color3), NULL, 0 }, // Color3 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color4), NULL, 0 }, // Color4 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color5), NULL, 0 }, // Color5 - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Red), NULL, 0 }, // Red - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Green), NULL, 0 }, // Green - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Blue), NULL, 0 }, // Blue - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkRed), NULL, 0 }, // DarkRed - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGreen), NULL, 0 }, // DarkGreen - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkBlue), NULL, 0 }, // DarkBlue - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightRed), NULL, 0 }, // LightRed - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGreen), NULL, 0 }, // LightGreen - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightBlue), NULL, 0 }, // LightBlue - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Purple), NULL, 0 }, // Purple - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkPurple), NULL, 0 }, // DarkPurple - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Yellow), NULL, 0 }, // Yellow - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Orange), NULL, 0 }, // Orange - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gold), NULL, 0 }, // Gold - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Emerald), NULL, 0 }, // Emerald - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->White), NULL, 0 }, // White - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Black), NULL, 0 }, // Black - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gray), NULL, 0 }, // Gray - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGray), NULL, 0 }, // LightGray - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGray), NULL, 0 }, // DarkGray -}; - - -bool DebugColorParams_0p0::mBuiltFlag = false; -NvParameterized::MutexType DebugColorParams_0p0::mBuiltFlagMutex; - -DebugColorParams_0p0::DebugColorParams_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DebugColorParams_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DebugColorParams_0p0::~DebugColorParams_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DebugColorParams_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DebugColorParams_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DebugColorParams_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DebugColorParams_0p0::getParameterDefinitionTree(void) const -{ - DebugColorParams_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DebugColorParams_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DebugColorParams_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DebugColorParams_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DebugColorParams_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DebugColorParams_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="Default" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("Default", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Default color value", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="PoseArrows" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("PoseArrows", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Pose arrows color value", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="MeshStatic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("MeshStatic", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Static mesh color value", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="MeshDynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("MeshDynamic", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dynamic mesh color value", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="Shape" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("Shape", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shape color value", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="Text0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("Text0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Text0 color value", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="Text1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("Text1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Text1 color value", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="ForceArrowsLow" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("ForceArrowsLow", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Force arrows color value (low value)", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="ForceArrowsNorm" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("ForceArrowsNorm", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Force arrows color value (normal value)", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="ForceArrowsHigh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("ForceArrowsHigh", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Force arrows color value (high value)", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="Color0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("Color0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color0 value", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="Color1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("Color1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color1 value", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="Color2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("Color2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color2 value", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="Color3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("Color3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color3 value", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="Color4" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("Color4", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color4 value", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="Color5" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("Color5", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Color5 value", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="Red" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("Red", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Red color value", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="Green" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("Green", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Green color value", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="Blue" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("Blue", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Blue color value", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="DarkRed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("DarkRed", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark red value", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="DarkGreen" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("DarkGreen", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark green value", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="DarkBlue" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("DarkBlue", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark blue value", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="LightRed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("LightRed", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light red value", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="LightGreen" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("LightGreen", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light green value", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="LightBlue" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("LightBlue", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light blue value", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="Purple" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("Purple", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Purple value", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="DarkPurple" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("DarkPurple", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark purple value", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="Yellow" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("Yellow", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Yellow value", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="Orange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("Orange", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Orange value", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="Gold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("Gold", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Gold value", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="Emerald" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("Emerald", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Emerald value", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="White" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("White", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "White value", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="Black" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("Black", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Black value", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="Gray" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("Gray", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Gray value", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="LightGray" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("LightGray", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Light gray value", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="DarkGray" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DarkGray", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Dark gray value", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[36]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(18); - Children[18] = PDEF_PTR(19); - Children[19] = PDEF_PTR(20); - Children[20] = PDEF_PTR(21); - Children[21] = PDEF_PTR(22); - Children[22] = PDEF_PTR(23); - Children[23] = PDEF_PTR(24); - Children[24] = PDEF_PTR(25); - Children[25] = PDEF_PTR(26); - Children[26] = PDEF_PTR(27); - Children[27] = PDEF_PTR(28); - Children[28] = PDEF_PTR(29); - Children[29] = PDEF_PTR(30); - Children[30] = PDEF_PTR(31); - Children[31] = PDEF_PTR(32); - Children[32] = PDEF_PTR(33); - Children[33] = PDEF_PTR(34); - Children[34] = PDEF_PTR(35); - Children[35] = PDEF_PTR(36); - - ParamDefTable[0].setChildren(Children, 36); - } - - mBuiltFlag = true; - -} -void DebugColorParams_0p0::initStrings(void) -{ -} - -void DebugColorParams_0p0::initDynamicArrays(void) -{ -} - -void DebugColorParams_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - Default = uint32_t(0x00000000); - PoseArrows = uint32_t(0x00000000); - MeshStatic = uint32_t(0x00000000); - MeshDynamic = uint32_t(0x00000000); - Shape = uint32_t(0x00000000); - Text0 = uint32_t(0x00000000); - Text1 = uint32_t(0x00000000); - ForceArrowsLow = uint32_t(0xFFFFFF00); - ForceArrowsNorm = uint32_t(0xFF00FF00); - ForceArrowsHigh = uint32_t(0xFFFF0000); - Color0 = uint32_t(0x00000000); - Color1 = uint32_t(0x00000000); - Color2 = uint32_t(0x00000000); - Color3 = uint32_t(0x00000000); - Color4 = uint32_t(0x00000000); - Color5 = uint32_t(0x00000000); - Red = uint32_t(0xFFFF0000); - Green = uint32_t(0xFF00FF00); - Blue = uint32_t(0xFF0000FF); - DarkRed = uint32_t(0xFF800000); - DarkGreen = uint32_t(0xFF008000); - DarkBlue = uint32_t(0xFF000080); - LightRed = uint32_t(0xFFFF8080); - LightGreen = uint32_t(0xFF80FF00); - LightBlue = uint32_t(0xFF00FFFF); - Purple = uint32_t(0xFFFF00FF); - DarkPurple = uint32_t(0xFF800080); - Yellow = uint32_t(0xFFFFFF00); - Orange = uint32_t(0xFFFF8000); - Gold = uint32_t(0xFF808000); - Emerald = uint32_t(0xFF008080); - White = uint32_t(0xFFFFFFFF); - Black = uint32_t(0x00000000); - Gray = uint32_t(0xFF808080); - LightGray = uint32_t(0xFFC0C0C0); - DarkGray = uint32_t(0xFF404040); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DebugColorParams_0p0::initReferences(void) -{ -} - -void DebugColorParams_0p0::freeDynamicArrays(void) -{ -} - -void DebugColorParams_0p0::freeStrings(void) -{ -} - -void DebugColorParams_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DebugColorParams_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DebugColorParams_0p0NS; + +const char* const DebugColorParams_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 37; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 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, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 36 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Default), NULL, 0 }, // Default + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->PoseArrows), NULL, 0 }, // PoseArrows + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshStatic), NULL, 0 }, // MeshStatic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->MeshDynamic), NULL, 0 }, // MeshDynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Shape), NULL, 0 }, // Shape + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text0), NULL, 0 }, // Text0 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Text1), NULL, 0 }, // Text1 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsLow), NULL, 0 }, // ForceArrowsLow + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsNorm), NULL, 0 }, // ForceArrowsNorm + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->ForceArrowsHigh), NULL, 0 }, // ForceArrowsHigh + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color0), NULL, 0 }, // Color0 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color1), NULL, 0 }, // Color1 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color2), NULL, 0 }, // Color2 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color3), NULL, 0 }, // Color3 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color4), NULL, 0 }, // Color4 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Color5), NULL, 0 }, // Color5 + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Red), NULL, 0 }, // Red + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Green), NULL, 0 }, // Green + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Blue), NULL, 0 }, // Blue + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkRed), NULL, 0 }, // DarkRed + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGreen), NULL, 0 }, // DarkGreen + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkBlue), NULL, 0 }, // DarkBlue + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightRed), NULL, 0 }, // LightRed + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGreen), NULL, 0 }, // LightGreen + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightBlue), NULL, 0 }, // LightBlue + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Purple), NULL, 0 }, // Purple + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkPurple), NULL, 0 }, // DarkPurple + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Yellow), NULL, 0 }, // Yellow + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Orange), NULL, 0 }, // Orange + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gold), NULL, 0 }, // Gold + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Emerald), NULL, 0 }, // Emerald + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->White), NULL, 0 }, // White + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Black), NULL, 0 }, // Black + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->Gray), NULL, 0 }, // Gray + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->LightGray), NULL, 0 }, // LightGray + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->DarkGray), NULL, 0 }, // DarkGray +}; + + +bool DebugColorParams_0p0::mBuiltFlag = false; +NvParameterized::MutexType DebugColorParams_0p0::mBuiltFlagMutex; + +DebugColorParams_0p0::DebugColorParams_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DebugColorParams_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DebugColorParams_0p0::~DebugColorParams_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DebugColorParams_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DebugColorParams_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DebugColorParams_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DebugColorParams_0p0::getParameterDefinitionTree(void) const +{ + DebugColorParams_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DebugColorParams_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DebugColorParams_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DebugColorParams_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DebugColorParams_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DebugColorParams_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="Default" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("Default", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Default color value", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="PoseArrows" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("PoseArrows", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Pose arrows color value", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="MeshStatic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("MeshStatic", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Static mesh color value", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="MeshDynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("MeshDynamic", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dynamic mesh color value", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="Shape" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("Shape", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shape color value", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="Text0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("Text0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Text0 color value", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="Text1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("Text1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Text1 color value", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="ForceArrowsLow" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("ForceArrowsLow", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Force arrows color value (low value)", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="ForceArrowsNorm" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("ForceArrowsNorm", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Force arrows color value (normal value)", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="ForceArrowsHigh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("ForceArrowsHigh", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Force arrows color value (high value)", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="Color0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("Color0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color0 value", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="Color1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("Color1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color1 value", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="Color2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("Color2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color2 value", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="Color3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("Color3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color3 value", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="Color4" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("Color4", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color4 value", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="Color5" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("Color5", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Color5 value", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="Red" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("Red", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Red color value", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="Green" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("Green", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Green color value", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="Blue" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("Blue", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Blue color value", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="DarkRed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("DarkRed", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark red value", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="DarkGreen" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("DarkGreen", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark green value", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="DarkBlue" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("DarkBlue", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark blue value", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="LightRed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("LightRed", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light red value", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="LightGreen" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("LightGreen", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light green value", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="LightBlue" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("LightBlue", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light blue value", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="Purple" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("Purple", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Purple value", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="DarkPurple" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("DarkPurple", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark purple value", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="Yellow" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("Yellow", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Yellow value", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="Orange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("Orange", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Orange value", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="Gold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("Gold", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Gold value", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="Emerald" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("Emerald", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Emerald value", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="White" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("White", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "White value", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="Black" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("Black", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Black value", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="Gray" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("Gray", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Gray value", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="LightGray" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("LightGray", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Light gray value", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="DarkGray" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DarkGray", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Dark gray value", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[36]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(18); + Children[18] = PDEF_PTR(19); + Children[19] = PDEF_PTR(20); + Children[20] = PDEF_PTR(21); + Children[21] = PDEF_PTR(22); + Children[22] = PDEF_PTR(23); + Children[23] = PDEF_PTR(24); + Children[24] = PDEF_PTR(25); + Children[25] = PDEF_PTR(26); + Children[26] = PDEF_PTR(27); + Children[27] = PDEF_PTR(28); + Children[28] = PDEF_PTR(29); + Children[29] = PDEF_PTR(30); + Children[30] = PDEF_PTR(31); + Children[31] = PDEF_PTR(32); + Children[32] = PDEF_PTR(33); + Children[33] = PDEF_PTR(34); + Children[34] = PDEF_PTR(35); + Children[35] = PDEF_PTR(36); + + ParamDefTable[0].setChildren(Children, 36); + } + + mBuiltFlag = true; + +} +void DebugColorParams_0p0::initStrings(void) +{ +} + +void DebugColorParams_0p0::initDynamicArrays(void) +{ +} + +void DebugColorParams_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + Default = uint32_t(0x00000000); + PoseArrows = uint32_t(0x00000000); + MeshStatic = uint32_t(0x00000000); + MeshDynamic = uint32_t(0x00000000); + Shape = uint32_t(0x00000000); + Text0 = uint32_t(0x00000000); + Text1 = uint32_t(0x00000000); + ForceArrowsLow = uint32_t(0xFFFFFF00); + ForceArrowsNorm = uint32_t(0xFF00FF00); + ForceArrowsHigh = uint32_t(0xFFFF0000); + Color0 = uint32_t(0x00000000); + Color1 = uint32_t(0x00000000); + Color2 = uint32_t(0x00000000); + Color3 = uint32_t(0x00000000); + Color4 = uint32_t(0x00000000); + Color5 = uint32_t(0x00000000); + Red = uint32_t(0xFFFF0000); + Green = uint32_t(0xFF00FF00); + Blue = uint32_t(0xFF0000FF); + DarkRed = uint32_t(0xFF800000); + DarkGreen = uint32_t(0xFF008000); + DarkBlue = uint32_t(0xFF000080); + LightRed = uint32_t(0xFFFF8080); + LightGreen = uint32_t(0xFF80FF00); + LightBlue = uint32_t(0xFF00FFFF); + Purple = uint32_t(0xFFFF00FF); + DarkPurple = uint32_t(0xFF800080); + Yellow = uint32_t(0xFFFFFF00); + Orange = uint32_t(0xFFFF8000); + Gold = uint32_t(0xFF808000); + Emerald = uint32_t(0xFF008080); + White = uint32_t(0xFFFFFFFF); + Black = uint32_t(0x00000000); + Gray = uint32_t(0xFF808080); + LightGray = uint32_t(0xFFC0C0C0); + DarkGray = uint32_t(0xFF404040); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DebugColorParams_0p0::initReferences(void) +{ +} + +void DebugColorParams_0p0::freeDynamicArrays(void) +{ +} + +void DebugColorParams_0p0::freeStrings(void) +{ +} + +void DebugColorParams_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugRenderParams_0p1.cpp b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugRenderParams_0p1.cpp old mode 100644 new mode 100755 index 98cfa45..e12bd27 --- a/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugRenderParams_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/common_legacy/src/autogen/DebugRenderParams_0p1.cpp @@ -1,632 +1,632 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DebugRenderParams_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DebugRenderParams_0p1NS; - -const char* const DebugRenderParams_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 13; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 11 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Enable), NULL, 0 }, // Enable - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->Scale), NULL, 0 }, // Scale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodBenefits), NULL, 0 }, // LodBenefits - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsScreenPos), NULL, 0 }, // RelativeLodBenefitsScreenPos - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsThickness), NULL, 0 }, // RelativeLodBenefitsThickness - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodDistanceScale), NULL, 0 }, // LodDistanceScale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderNormals), NULL, 0 }, // RenderNormals - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderTangents), NULL, 0 }, // RenderTangents - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderBitangents), NULL, 0 }, // RenderBitangents - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Bounds), NULL, 0 }, // Bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->moduleName), CHILDREN(11), 1 }, // moduleName - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // moduleName[] -}; - - -bool DebugRenderParams_0p1::mBuiltFlag = false; -NvParameterized::MutexType DebugRenderParams_0p1::mBuiltFlagMutex; - -DebugRenderParams_0p1::DebugRenderParams_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DebugRenderParams_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DebugRenderParams_0p1::~DebugRenderParams_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DebugRenderParams_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DebugRenderParams_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DebugRenderParams_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DebugRenderParams_0p1::getParameterDefinitionTree(void) const -{ - DebugRenderParams_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DebugRenderParams_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DebugRenderParams_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DebugRenderParams_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - moduleName (not an array of structs) */ - -void DebugRenderParams_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DebugRenderParams_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="Enable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("Enable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable/disable debug rendering", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="Scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("Scale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Debug rendering scale", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="LodBenefits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("LodBenefits", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "LOD benefit debug visualization", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="RelativeLodBenefitsScreenPos" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("RelativeLodBenefitsScreenPos", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("max", double(1.0), true); - HintTable[1].init("min", double(-1.0), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("max", double(1.0), true); - HintTable[1].init("min", double(-1.0), true); - HintTable[2].init("shortDescription", "The y-axis value of the relative benefits bar (-1.0 - 1.0)", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="RelativeLodBenefitsThickness" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("RelativeLodBenefitsThickness", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The thickness scale of the relative benefits bar", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="LodDistanceScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("LodDistanceScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "LOD distance debug visualization", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="RenderNormals" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("RenderNormals", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the normals (blue) of the rendered mesh. (scalable)", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="RenderTangents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("RenderTangents", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the tangents (red) of the rendered mesh. (scalable)", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="RenderBitangents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("RenderBitangents", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the bitangents (green) of the rendered mesh. (scalable)", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="Bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("Bounds", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Draws the bounds of every apex actor", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="moduleName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("moduleName", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("shortDescription", "Module name", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; - ParamDefTable[11].setRefVariantVals((const char**)RefVariantVals, 10); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="moduleName[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("moduleName", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("shortDescription", "Module name", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; - ParamDefTable[12].setRefVariantVals((const char**)RefVariantVals, 10); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - - ParamDefTable[0].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=11, longName="moduleName" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(12); - - ParamDefTable[11].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DebugRenderParams_0p1::initStrings(void) -{ -} - -void DebugRenderParams_0p1::initDynamicArrays(void) -{ - moduleName.buf = NULL; - moduleName.isAllocated = true; - moduleName.elementSize = sizeof(NvParameterized::Interface*); - moduleName.arraySizes[0] = 0; -} - -void DebugRenderParams_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - Enable = bool(false); - Scale = float(0); - LodBenefits = float(0); - RelativeLodBenefitsScreenPos = float(-0.8); - RelativeLodBenefitsThickness = float(0.6); - LodDistanceScale = float(0); - RenderNormals = float(0); - RenderTangents = float(0); - RenderBitangents = float(0); - Bounds = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DebugRenderParams_0p1::initReferences(void) -{ -} - -void DebugRenderParams_0p1::freeDynamicArrays(void) -{ - if (moduleName.isAllocated && moduleName.buf) - { - mParameterizedTraits->free(moduleName.buf); - } -} - -void DebugRenderParams_0p1::freeStrings(void) -{ -} - -void DebugRenderParams_0p1::freeReferences(void) -{ - - for (int i = 0; i < moduleName.arraySizes[0]; ++i) - { - if (moduleName.buf[i]) - { - moduleName.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DebugRenderParams_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DebugRenderParams_0p1NS; + +const char* const DebugRenderParams_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 13; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 11 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Enable), NULL, 0 }, // Enable + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->Scale), NULL, 0 }, // Scale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodBenefits), NULL, 0 }, // LodBenefits + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsScreenPos), NULL, 0 }, // RelativeLodBenefitsScreenPos + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RelativeLodBenefitsThickness), NULL, 0 }, // RelativeLodBenefitsThickness + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->LodDistanceScale), NULL, 0 }, // LodDistanceScale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderNormals), NULL, 0 }, // RenderNormals + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderTangents), NULL, 0 }, // RenderTangents + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->RenderBitangents), NULL, 0 }, // RenderBitangents + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->Bounds), NULL, 0 }, // Bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->moduleName), CHILDREN(11), 1 }, // moduleName + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // moduleName[] +}; + + +bool DebugRenderParams_0p1::mBuiltFlag = false; +NvParameterized::MutexType DebugRenderParams_0p1::mBuiltFlagMutex; + +DebugRenderParams_0p1::DebugRenderParams_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DebugRenderParams_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DebugRenderParams_0p1::~DebugRenderParams_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DebugRenderParams_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DebugRenderParams_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DebugRenderParams_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DebugRenderParams_0p1::getParameterDefinitionTree(void) const +{ + DebugRenderParams_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DebugRenderParams_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DebugRenderParams_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DebugRenderParams_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - moduleName (not an array of structs) */ + +void DebugRenderParams_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DebugRenderParams_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="Enable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("Enable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable/disable debug rendering", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="Scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("Scale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Debug rendering scale", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="LodBenefits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("LodBenefits", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "LOD benefit debug visualization", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="RelativeLodBenefitsScreenPos" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("RelativeLodBenefitsScreenPos", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("max", double(1.0), true); + HintTable[1].init("min", double(-1.0), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("max", double(1.0), true); + HintTable[1].init("min", double(-1.0), true); + HintTable[2].init("shortDescription", "The y-axis value of the relative benefits bar (-1.0 - 1.0)", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="RelativeLodBenefitsThickness" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("RelativeLodBenefitsThickness", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The thickness scale of the relative benefits bar", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="LodDistanceScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("LodDistanceScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "LOD distance debug visualization", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="RenderNormals" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("RenderNormals", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the normals (blue) of the rendered mesh. (scalable)", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="RenderTangents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("RenderTangents", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the tangents (red) of the rendered mesh. (scalable)", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="RenderBitangents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("RenderBitangents", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the bitangents (green) of the rendered mesh. (scalable)", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="Bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("Bounds", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Draws the bounds of every apex actor", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="moduleName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("moduleName", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("shortDescription", "Module name", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; + ParamDefTable[11].setRefVariantVals((const char**)RefVariantVals, 10); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="moduleName[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("moduleName", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("shortDescription", "Module name", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BasicFSDebugRenderParams", "BasicIosDebugRenderParams", "ParticleIosDebugRenderParams", "ClothingDebugRenderParams", "DestructibleDebugRenderParams", "EmitterDebugRenderParams", "ForceFieldDebugRenderParams", "IofxDebugRenderParams", "TurbulenceFSDebugRenderParams", "ParticlesDebugRenderParams" }; + ParamDefTable[12].setRefVariantVals((const char**)RefVariantVals, 10); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + + ParamDefTable[0].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=11, longName="moduleName" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(12); + + ParamDefTable[11].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DebugRenderParams_0p1::initStrings(void) +{ +} + +void DebugRenderParams_0p1::initDynamicArrays(void) +{ + moduleName.buf = NULL; + moduleName.isAllocated = true; + moduleName.elementSize = sizeof(NvParameterized::Interface*); + moduleName.arraySizes[0] = 0; +} + +void DebugRenderParams_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + Enable = bool(false); + Scale = float(0); + LodBenefits = float(0); + RelativeLodBenefitsScreenPos = float(-0.8); + RelativeLodBenefitsThickness = float(0.6); + LodDistanceScale = float(0); + RenderNormals = float(0); + RenderTangents = float(0); + RenderBitangents = float(0); + Bounds = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DebugRenderParams_0p1::initReferences(void) +{ +} + +void DebugRenderParams_0p1::freeDynamicArrays(void) +{ + if (moduleName.isAllocated && moduleName.buf) + { + mParameterizedTraits->free(moduleName.buf); + } +} + +void DebugRenderParams_0p1::freeStrings(void) +{ +} + +void DebugRenderParams_0p1::freeReferences(void) +{ + + for (int i = 0; i < moduleName.arraySizes[0]; ++i) + { + if (moduleName.buf[i]) + { + moduleName.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h old mode 100644 new mode 100755 index f99e601..1f7d2a5 --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/CachedOverlaps.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_CachedOverlaps_h -#define HEADER_CachedOverlaps_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace CachedOverlapsNS -{ - -struct IntPair_Type; - -struct IntPair_DynamicArray1D_Type -{ - IntPair_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct IntPair_Type -{ - int32_t i0; - int32_t i1; -}; - -struct ParametersStruct -{ - - bool isCached; - IntPair_DynamicArray1D_Type overlaps; - -}; - -static const uint32_t checksum[] = { 0x42ce64a0, 0x9634fff2, 0x6f308fbe, 0xf3ce7bcd, }; - -} // namespace CachedOverlapsNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class CachedOverlaps : public NvParameterized::NvParameters, public CachedOverlapsNS::ParametersStruct -{ -public: - CachedOverlaps(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~CachedOverlaps(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("CachedOverlaps"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(CachedOverlapsNS::checksum); - return CachedOverlapsNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const CachedOverlapsNS::ParametersStruct& parameters(void) const - { - CachedOverlaps* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - CachedOverlapsNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class CachedOverlapsFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - CachedOverlaps::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(CachedOverlaps), CachedOverlaps::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, CachedOverlaps::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(CachedOverlaps)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, CachedOverlaps)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, CachedOverlaps::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, CachedOverlaps::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of CachedOverlaps here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (CachedOverlaps*)bufObj; - } - - virtual const char* getClassName() - { - return (CachedOverlaps::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (CachedOverlaps::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (CachedOverlaps::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (CachedOverlaps::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_CachedOverlaps_h +#define HEADER_CachedOverlaps_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace CachedOverlapsNS +{ + +struct IntPair_Type; + +struct IntPair_DynamicArray1D_Type +{ + IntPair_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct IntPair_Type +{ + int32_t i0; + int32_t i1; +}; + +struct ParametersStruct +{ + + bool isCached; + IntPair_DynamicArray1D_Type overlaps; + +}; + +static const uint32_t checksum[] = { 0x42ce64a0, 0x9634fff2, 0x6f308fbe, 0xf3ce7bcd, }; + +} // namespace CachedOverlapsNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class CachedOverlaps : public NvParameterized::NvParameters, public CachedOverlapsNS::ParametersStruct +{ +public: + CachedOverlaps(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~CachedOverlaps(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("CachedOverlaps"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(CachedOverlapsNS::checksum); + return CachedOverlapsNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const CachedOverlapsNS::ParametersStruct& parameters(void) const + { + CachedOverlaps* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + CachedOverlapsNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class CachedOverlapsFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + CachedOverlaps::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(CachedOverlaps), CachedOverlaps::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, CachedOverlaps::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(CachedOverlaps)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, CachedOverlaps)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, CachedOverlaps::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, CachedOverlaps::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of CachedOverlaps here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (CachedOverlaps*)bufObj; + } + + virtual const char* getClassName() + { + return (CachedOverlaps::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (CachedOverlaps::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (CachedOverlaps::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (CachedOverlaps::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorChunks.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorChunks.h old mode 100644 new mode 100755 index c295c60..cb5c971 --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorChunks.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorChunks.h @@ -1,253 +1,253 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorChunks_h -#define HEADER_DestructibleActorChunks_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorChunksNS -{ - -struct Chunk_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_Type -{ - uint8_t state; - uint8_t flags; - uint32_t islandID; - float damage; - physx::PxVec4 localSphere; - physx::PxVec3 localOffset; - int32_t visibleAncestorIndex; - uint32_t shapesCount; - physx::PxTransform globalPose; - physx::PxVec3 linearVelocity; - physx::PxVec3 angularVelocity; -}; - -struct ParametersStruct -{ - - Chunk_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x1f4e04ad, 0x95dc5558, 0x4dae15a1, 0x46caf98e, }; - -} // namespace DestructibleActorChunksNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorChunks : public NvParameterized::NvParameters, public DestructibleActorChunksNS::ParametersStruct -{ -public: - DestructibleActorChunks(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorChunks(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorChunks"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorChunksNS::checksum); - return DestructibleActorChunksNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorChunksNS::ParametersStruct& parameters(void) const - { - DestructibleActorChunks* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorChunksNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorChunksFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorChunks::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorChunks), DestructibleActorChunks::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorChunks::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorChunks)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorChunks)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorChunks::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorChunks::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorChunks here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorChunks*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorChunks::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorChunks::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorChunks::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorChunks::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorChunks_h +#define HEADER_DestructibleActorChunks_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorChunksNS +{ + +struct Chunk_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_Type +{ + uint8_t state; + uint8_t flags; + uint32_t islandID; + float damage; + physx::PxVec4 localSphere; + physx::PxVec3 localOffset; + int32_t visibleAncestorIndex; + uint32_t shapesCount; + physx::PxTransform globalPose; + physx::PxVec3 linearVelocity; + physx::PxVec3 angularVelocity; +}; + +struct ParametersStruct +{ + + Chunk_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x1f4e04ad, 0x95dc5558, 0x4dae15a1, 0x46caf98e, }; + +} // namespace DestructibleActorChunksNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorChunks : public NvParameterized::NvParameters, public DestructibleActorChunksNS::ParametersStruct +{ +public: + DestructibleActorChunks(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorChunks(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorChunks"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorChunksNS::checksum); + return DestructibleActorChunksNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorChunksNS::ParametersStruct& parameters(void) const + { + DestructibleActorChunks* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorChunksNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorChunksFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorChunks::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorChunks), DestructibleActorChunks::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorChunks::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorChunks)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorChunks)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorChunks::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorChunks::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorChunks here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorChunks*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorChunks::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorChunks::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorChunks::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorChunks::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorParam.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorParam.h old mode 100644 new mode 100755 index 3b78f84..91965b2 --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorParam.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorParam.h @@ -1,606 +1,606 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_h -#define HEADER_DestructibleActorParam_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParamNS -{ - -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - uint32_t velocityIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; - bool alwaysDrawScatterMesh; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct P3PairFlag_Type -{ - bool eSOLVE_CONTACT; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eDETECT_CCD_CONTACT; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - physx::PxTransform globalPose; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool performDetailedOverlapTestForExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - bool deleteChunksLeavingUserDefinedBB; - bool deleteChunksEnteringUserDefinedBB; - -}; - -static const uint32_t checksum[] = { 0x2f148a8b, 0x0ef80948, 0x34293f31, 0x363a5ff0, }; - -} // namespace DestructibleActorParamNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam : public NvParameterized::NvParameters, public DestructibleActorParamNS::ParametersStruct -{ -public: - DestructibleActorParam(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)32; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParamNS::checksum); - return DestructibleActorParamNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParamNS::ParametersStruct& parameters(void) const - { - DestructibleActorParam* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParamNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParamFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam), DestructibleActorParam::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_h +#define HEADER_DestructibleActorParam_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParamNS +{ + +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + uint32_t velocityIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; + bool alwaysDrawScatterMesh; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct P3PairFlag_Type +{ + bool eSOLVE_CONTACT; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eDETECT_CCD_CONTACT; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + physx::PxTransform globalPose; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool performDetailedOverlapTestForExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + bool deleteChunksLeavingUserDefinedBB; + bool deleteChunksEnteringUserDefinedBB; + +}; + +static const uint32_t checksum[] = { 0x2f148a8b, 0x0ef80948, 0x34293f31, 0x363a5ff0, }; + +} // namespace DestructibleActorParamNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam : public NvParameterized::NvParameters, public DestructibleActorParamNS::ParametersStruct +{ +public: + DestructibleActorParam(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)32; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParamNS::checksum); + return DestructibleActorParamNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParamNS::ParametersStruct& parameters(void) const + { + DestructibleActorParam* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParamNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParamFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam), DestructibleActorParam::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorState.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorState.h old mode 100644 new mode 100755 index 1746d57..24454cc --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorState.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleActorState.h @@ -1,445 +1,445 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorState_h -#define HEADER_DestructibleActorState_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorStateNS -{ - -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; - bool alwaysDrawScatterMesh; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - bool enableCrumbleEmitter; - bool enableDustEmitter; - uint32_t lod; - bool forceLod; - DestructibleParameters_Type destructibleParameters; - uint64_t userData; - NvParameterized::Interface* actorParameters; - NvParameterized::Interface* actorChunks; - -}; - -static const uint32_t checksum[] = { 0xc6984ee8, 0x0dae2202, 0x4f638ad1, 0x24536329, }; - -} // namespace DestructibleActorStateNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorState : public NvParameterized::NvParameters, public DestructibleActorStateNS::ParametersStruct -{ -public: - DestructibleActorState(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorState(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorState"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorStateNS::checksum); - return DestructibleActorStateNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorStateNS::ParametersStruct& parameters(void) const - { - DestructibleActorState* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorStateNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorStateFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorState::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState), DestructibleActorState::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorState::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorState)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorState::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorState::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorState here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorState*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorState::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorState::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorState::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorState::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorState_h +#define HEADER_DestructibleActorState_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorStateNS +{ + +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; + bool alwaysDrawScatterMesh; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + bool enableCrumbleEmitter; + bool enableDustEmitter; + uint32_t lod; + bool forceLod; + DestructibleParameters_Type destructibleParameters; + uint64_t userData; + NvParameterized::Interface* actorParameters; + NvParameterized::Interface* actorChunks; + +}; + +static const uint32_t checksum[] = { 0xc6984ee8, 0x0dae2202, 0x4f638ad1, 0x24536329, }; + +} // namespace DestructibleActorStateNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorState : public NvParameterized::NvParameters, public DestructibleActorStateNS::ParametersStruct +{ +public: + DestructibleActorState(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorState(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorState"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorStateNS::checksum); + return DestructibleActorStateNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorStateNS::ParametersStruct& parameters(void) const + { + DestructibleActorState* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorStateNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorStateFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorState::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState), DestructibleActorState::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorState::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorState)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorState::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorState::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorState here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorState*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorState::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorState::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorState::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorState::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetCollisionDataSet.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetCollisionDataSet.h old mode 100644 new mode 100755 index 82b0a83..3f252b6 --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetCollisionDataSet.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetCollisionDataSet.h @@ -1,250 +1,250 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetCollisionDataSet_h -#define HEADER_DestructibleAssetCollisionDataSet_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetCollisionDataSetNS -{ - - -struct VEC3_DynamicArray1D_Type -{ - physx::PxVec3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct assetName; - uint32_t cookingPlatform; - uint32_t cookingVersionNum; - VEC3_DynamicArray1D_Type scales; - REF_DynamicArray1D_Type meshCookedCollisionStreamsAtScale; - -}; - -static const uint32_t checksum[] = { 0x716db49d, 0xccc81ef4, 0x85f3752e, 0x9cf18dc6, }; - -} // namespace DestructibleAssetCollisionDataSetNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetCollisionDataSet : public NvParameterized::NvParameters, public DestructibleAssetCollisionDataSetNS::ParametersStruct -{ -public: - DestructibleAssetCollisionDataSet(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetCollisionDataSet(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetCollisionDataSet"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetCollisionDataSetNS::checksum); - return DestructibleAssetCollisionDataSetNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetCollisionDataSetNS::ParametersStruct& parameters(void) const - { - DestructibleAssetCollisionDataSet* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetCollisionDataSetNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetCollisionDataSetFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetCollisionDataSet::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetCollisionDataSet), DestructibleAssetCollisionDataSet::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetCollisionDataSet::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetCollisionDataSet)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetCollisionDataSet)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetCollisionDataSet::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetCollisionDataSet::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetCollisionDataSet here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetCollisionDataSet*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetCollisionDataSet::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetCollisionDataSet::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetCollisionDataSet::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetCollisionDataSet::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetCollisionDataSet_h +#define HEADER_DestructibleAssetCollisionDataSet_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetCollisionDataSetNS +{ + + +struct VEC3_DynamicArray1D_Type +{ + physx::PxVec3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct assetName; + uint32_t cookingPlatform; + uint32_t cookingVersionNum; + VEC3_DynamicArray1D_Type scales; + REF_DynamicArray1D_Type meshCookedCollisionStreamsAtScale; + +}; + +static const uint32_t checksum[] = { 0x716db49d, 0xccc81ef4, 0x85f3752e, 0x9cf18dc6, }; + +} // namespace DestructibleAssetCollisionDataSetNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetCollisionDataSet : public NvParameterized::NvParameters, public DestructibleAssetCollisionDataSetNS::ParametersStruct +{ +public: + DestructibleAssetCollisionDataSet(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetCollisionDataSet(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetCollisionDataSet"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetCollisionDataSetNS::checksum); + return DestructibleAssetCollisionDataSetNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetCollisionDataSetNS::ParametersStruct& parameters(void) const + { + DestructibleAssetCollisionDataSet* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetCollisionDataSetNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetCollisionDataSetFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetCollisionDataSet::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetCollisionDataSet), DestructibleAssetCollisionDataSet::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetCollisionDataSet::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetCollisionDataSet)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetCollisionDataSet)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetCollisionDataSet::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetCollisionDataSet::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetCollisionDataSet here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetCollisionDataSet*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetCollisionDataSet::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetCollisionDataSet::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetCollisionDataSet::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetCollisionDataSet::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetParameters.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetParameters.h old mode 100644 new mode 100755 index 018ea09..de79655 --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetParameters.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleAssetParameters.h @@ -1,675 +1,675 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_h -#define HEADER_DestructibleAssetParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParametersNS -{ - -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct BufferFormat_Type; -struct U8x2_Type; -struct U8x3_Type; -struct U8x4_Type; -struct U16x2_Type; -struct U16x3_Type; -struct U16x4_Type; -struct U32x2_Type; -struct U32x3_Type; -struct U32x4_Type; -struct F32x2_Type; -struct F32x3_Type; -struct F32x4_Type; -struct Plane_Type; -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x3_Type -{ - float x; - float y; - float z; -}; -struct U32x2_Type -{ - uint32_t x; - uint32_t y; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct U32x4_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; - uint32_t w; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct F32x2_Type -{ - float x; - float y; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct U16x2_Type -{ - uint16_t x; - uint16_t y; -}; -struct U8x2_Type -{ - uint8_t x; - uint8_t y; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct U8x3_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BufferFormat_Type -{ - NvParameterized::DummyStringStruct name; - int32_t semantic; - uint32_t id; - uint32_t format; - uint32_t access; - bool serialize; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct U16x4_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; - uint16_t w; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct U32x3_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; -}; -struct U16x3_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; -}; -struct F32x4_Type -{ - PX_ALIGN(16, float x); - float y; - float z; - float w; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; - bool alwaysDrawScatterMesh; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - uint64_t userData; -}; -struct U8x4_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; - uint8_t w; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - MAT44_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0xb0082230, 0x839469d7, 0xd24a9c81, 0xc8df3469, }; - -} // namespace DestructibleAssetParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters : public NvParameterized::NvParameters, public DestructibleAssetParametersNS::ParametersStruct -{ -public: - DestructibleAssetParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)26; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParametersNS::checksum); - return DestructibleAssetParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParametersNS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters), DestructibleAssetParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_h +#define HEADER_DestructibleAssetParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParametersNS +{ + +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct BufferFormat_Type; +struct U8x2_Type; +struct U8x3_Type; +struct U8x4_Type; +struct U16x2_Type; +struct U16x3_Type; +struct U16x4_Type; +struct U32x2_Type; +struct U32x3_Type; +struct U32x4_Type; +struct F32x2_Type; +struct F32x3_Type; +struct F32x4_Type; +struct Plane_Type; +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x3_Type +{ + float x; + float y; + float z; +}; +struct U32x2_Type +{ + uint32_t x; + uint32_t y; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct U32x4_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; + uint32_t w; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct F32x2_Type +{ + float x; + float y; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct U16x2_Type +{ + uint16_t x; + uint16_t y; +}; +struct U8x2_Type +{ + uint8_t x; + uint8_t y; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct U8x3_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BufferFormat_Type +{ + NvParameterized::DummyStringStruct name; + int32_t semantic; + uint32_t id; + uint32_t format; + uint32_t access; + bool serialize; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct U16x4_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; + uint16_t w; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct U32x3_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; +}; +struct U16x3_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; +}; +struct F32x4_Type +{ + PX_ALIGN(16, float x); + float y; + float z; + float w; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; + bool alwaysDrawScatterMesh; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + uint64_t userData; +}; +struct U8x4_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; + uint8_t w; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + MAT44_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0xb0082230, 0x839469d7, 0xd24a9c81, 0xc8df3469, }; + +} // namespace DestructibleAssetParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters : public NvParameterized::NvParameters, public DestructibleAssetParametersNS::ParametersStruct +{ +public: + DestructibleAssetParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)26; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParametersNS::checksum); + return DestructibleAssetParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParametersNS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters), DestructibleAssetParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleDebugRenderParams.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleDebugRenderParams.h old mode 100644 new mode 100755 index f397399..194bfae --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleDebugRenderParams.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleDebugRenderParams.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleDebugRenderParams_h -#define HEADER_DestructibleDebugRenderParams_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleDebugRenderParamsNS -{ - - - -struct ParametersStruct -{ - - bool VISUALIZE_DESTRUCTIBLE_ACTOR; - float VISUALIZE_DESTRUCTIBLE_BOUNDS; - float VISUALIZE_DESTRUCTIBLE_SUPPORT; - bool VISUALIZE_DESTRUCTIBLE_ACTOR_POSE; - float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE; - bool VISUALIZE_DESTRUCTIBLE_ACTOR_NAME; - float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME; - bool VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE; - float THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE; - -}; - -static const uint32_t checksum[] = { 0xf9b70cc9, 0xc8a5ed52, 0x51f40e6a, 0x14b18d85, }; - -} // namespace DestructibleDebugRenderParamsNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleDebugRenderParams : public NvParameterized::NvParameters, public DestructibleDebugRenderParamsNS::ParametersStruct -{ -public: - DestructibleDebugRenderParams(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleDebugRenderParams(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleDebugRenderParams"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleDebugRenderParamsNS::checksum); - return DestructibleDebugRenderParamsNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleDebugRenderParamsNS::ParametersStruct& parameters(void) const - { - DestructibleDebugRenderParams* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleDebugRenderParamsNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleDebugRenderParamsFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleDebugRenderParams::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleDebugRenderParams), DestructibleDebugRenderParams::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleDebugRenderParams::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleDebugRenderParams)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleDebugRenderParams)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleDebugRenderParams::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleDebugRenderParams::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleDebugRenderParams here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleDebugRenderParams*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleDebugRenderParams::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleDebugRenderParams::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleDebugRenderParams::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleDebugRenderParams::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleDebugRenderParams_h +#define HEADER_DestructibleDebugRenderParams_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleDebugRenderParamsNS +{ + + + +struct ParametersStruct +{ + + bool VISUALIZE_DESTRUCTIBLE_ACTOR; + float VISUALIZE_DESTRUCTIBLE_BOUNDS; + float VISUALIZE_DESTRUCTIBLE_SUPPORT; + bool VISUALIZE_DESTRUCTIBLE_ACTOR_POSE; + float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE; + bool VISUALIZE_DESTRUCTIBLE_ACTOR_NAME; + float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME; + bool VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE; + float THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE; + +}; + +static const uint32_t checksum[] = { 0xf9b70cc9, 0xc8a5ed52, 0x51f40e6a, 0x14b18d85, }; + +} // namespace DestructibleDebugRenderParamsNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleDebugRenderParams : public NvParameterized::NvParameters, public DestructibleDebugRenderParamsNS::ParametersStruct +{ +public: + DestructibleDebugRenderParams(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleDebugRenderParams(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleDebugRenderParams"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleDebugRenderParamsNS::checksum); + return DestructibleDebugRenderParamsNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleDebugRenderParamsNS::ParametersStruct& parameters(void) const + { + DestructibleDebugRenderParams* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleDebugRenderParamsNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleDebugRenderParamsFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleDebugRenderParams::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleDebugRenderParams), DestructibleDebugRenderParams::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleDebugRenderParams::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleDebugRenderParams)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleDebugRenderParams)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleDebugRenderParams::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleDebugRenderParams::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleDebugRenderParams here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleDebugRenderParams*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleDebugRenderParams::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleDebugRenderParams::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleDebugRenderParams::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleDebugRenderParams::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleModuleParameters.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleModuleParameters.h old mode 100644 new mode 100755 index 25efb19..a77d59b --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleModuleParameters.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructibleModuleParameters.h @@ -1,237 +1,237 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleModuleParameters_h -#define HEADER_DestructibleModuleParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleModuleParametersNS -{ - - - -struct ParametersStruct -{ - - uint32_t maxDynamicChunkIslandCount; - bool sortFIFOByBenefit; - float validBoundsPadding; - float maxChunkSeparationLOD; - uint32_t maxActorCreatesPerFrame; - uint32_t maxChunkDepthOffset; - float massScale; - float scaledMassExponent; - -}; - -static const uint32_t checksum[] = { 0xea4f5a53, 0x75a1901c, 0xd7138e07, 0xef8c1364, }; - -} // namespace DestructibleModuleParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleModuleParameters : public NvParameterized::NvParameters, public DestructibleModuleParametersNS::ParametersStruct -{ -public: - DestructibleModuleParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleModuleParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleModuleParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleModuleParametersNS::checksum); - return DestructibleModuleParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleModuleParametersNS::ParametersStruct& parameters(void) const - { - DestructibleModuleParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleModuleParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleModuleParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleModuleParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters), DestructibleModuleParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleModuleParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleModuleParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleModuleParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleModuleParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleModuleParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleModuleParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleModuleParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleModuleParameters_h +#define HEADER_DestructibleModuleParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleModuleParametersNS +{ + + + +struct ParametersStruct +{ + + uint32_t maxDynamicChunkIslandCount; + bool sortFIFOByBenefit; + float validBoundsPadding; + float maxChunkSeparationLOD; + uint32_t maxActorCreatesPerFrame; + uint32_t maxChunkDepthOffset; + float massScale; + float scaledMassExponent; + +}; + +static const uint32_t checksum[] = { 0xea4f5a53, 0x75a1901c, 0xd7138e07, 0xef8c1364, }; + +} // namespace DestructibleModuleParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleModuleParameters : public NvParameterized::NvParameters, public DestructibleModuleParametersNS::ParametersStruct +{ +public: + DestructibleModuleParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleModuleParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleModuleParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleModuleParametersNS::checksum); + return DestructibleModuleParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleModuleParametersNS::ParametersStruct& parameters(void) const + { + DestructibleModuleParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleModuleParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleModuleParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleModuleParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters), DestructibleModuleParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleModuleParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleModuleParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleModuleParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleModuleParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleModuleParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleModuleParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleModuleParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructiblePreviewParam.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructiblePreviewParam.h old mode 100644 new mode 100755 index 2166d5d..22ec5aa --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructiblePreviewParam.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/DestructiblePreviewParam.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructiblePreviewParam_h -#define HEADER_DestructiblePreviewParam_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructiblePreviewParamNS -{ - - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - physx::PxMat44 globalPose; - uint32_t chunkDepth; - float explodeAmount; - bool renderUnexplodedChunksStatically; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - uint64_t userData; - -}; - -static const uint32_t checksum[] = { 0x3637da2c, 0x7fa3add1, 0xf223f0ff, 0x3a06c4b3, }; - -} // namespace DestructiblePreviewParamNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructiblePreviewParam : public NvParameterized::NvParameters, public DestructiblePreviewParamNS::ParametersStruct -{ -public: - DestructiblePreviewParam(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructiblePreviewParam(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructiblePreviewParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructiblePreviewParamNS::checksum); - return DestructiblePreviewParamNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructiblePreviewParamNS::ParametersStruct& parameters(void) const - { - DestructiblePreviewParam* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructiblePreviewParamNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructiblePreviewParamFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructiblePreviewParam::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructiblePreviewParam), DestructiblePreviewParam::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructiblePreviewParam::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructiblePreviewParam)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructiblePreviewParam)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructiblePreviewParam::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructiblePreviewParam::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructiblePreviewParam here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructiblePreviewParam*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructiblePreviewParam::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructiblePreviewParam::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructiblePreviewParam::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructiblePreviewParam::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructiblePreviewParam_h +#define HEADER_DestructiblePreviewParam_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructiblePreviewParamNS +{ + + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + physx::PxMat44 globalPose; + uint32_t chunkDepth; + float explodeAmount; + bool renderUnexplodedChunksStatically; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + uint64_t userData; + +}; + +static const uint32_t checksum[] = { 0x3637da2c, 0x7fa3add1, 0xf223f0ff, 0x3a06c4b3, }; + +} // namespace DestructiblePreviewParamNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructiblePreviewParam : public NvParameterized::NvParameters, public DestructiblePreviewParamNS::ParametersStruct +{ +public: + DestructiblePreviewParam(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructiblePreviewParam(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructiblePreviewParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructiblePreviewParamNS::checksum); + return DestructiblePreviewParamNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructiblePreviewParamNS::ParametersStruct& parameters(void) const + { + DestructiblePreviewParam* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructiblePreviewParamNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructiblePreviewParamFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructiblePreviewParam::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructiblePreviewParam), DestructiblePreviewParam::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructiblePreviewParam::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructiblePreviewParam)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructiblePreviewParam)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructiblePreviewParam::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructiblePreviewParam::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructiblePreviewParam here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructiblePreviewParam*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructiblePreviewParam::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructiblePreviewParam::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructiblePreviewParam::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructiblePreviewParam::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStream.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStream.h old mode 100644 new mode 100755 index 0111e7a..53d979c --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStream.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStream.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_MeshCookedCollisionStream_h -#define HEADER_MeshCookedCollisionStream_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace MeshCookedCollisionStreamNS -{ - - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U8_DynamicArray1D_Type bytes; - -}; - -static const uint32_t checksum[] = { 0x10ac85d4, 0x690961af, 0x1dfeb2cb, 0x4494e6fa, }; - -} // namespace MeshCookedCollisionStreamNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class MeshCookedCollisionStream : public NvParameterized::NvParameters, public MeshCookedCollisionStreamNS::ParametersStruct -{ -public: - MeshCookedCollisionStream(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~MeshCookedCollisionStream(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("MeshCookedCollisionStream"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(MeshCookedCollisionStreamNS::checksum); - return MeshCookedCollisionStreamNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const MeshCookedCollisionStreamNS::ParametersStruct& parameters(void) const - { - MeshCookedCollisionStream* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - MeshCookedCollisionStreamNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class MeshCookedCollisionStreamFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - MeshCookedCollisionStream::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStream), MeshCookedCollisionStream::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStream::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(MeshCookedCollisionStream)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStream)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStream::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStream::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of MeshCookedCollisionStream here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (MeshCookedCollisionStream*)bufObj; - } - - virtual const char* getClassName() - { - return (MeshCookedCollisionStream::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (MeshCookedCollisionStream::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (MeshCookedCollisionStream::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (MeshCookedCollisionStream::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_MeshCookedCollisionStream_h +#define HEADER_MeshCookedCollisionStream_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace MeshCookedCollisionStreamNS +{ + + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U8_DynamicArray1D_Type bytes; + +}; + +static const uint32_t checksum[] = { 0x10ac85d4, 0x690961af, 0x1dfeb2cb, 0x4494e6fa, }; + +} // namespace MeshCookedCollisionStreamNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class MeshCookedCollisionStream : public NvParameterized::NvParameters, public MeshCookedCollisionStreamNS::ParametersStruct +{ +public: + MeshCookedCollisionStream(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~MeshCookedCollisionStream(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("MeshCookedCollisionStream"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(MeshCookedCollisionStreamNS::checksum); + return MeshCookedCollisionStreamNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const MeshCookedCollisionStreamNS::ParametersStruct& parameters(void) const + { + MeshCookedCollisionStream* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + MeshCookedCollisionStreamNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class MeshCookedCollisionStreamFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + MeshCookedCollisionStream::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStream), MeshCookedCollisionStream::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStream::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(MeshCookedCollisionStream)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStream)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStream::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStream::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of MeshCookedCollisionStream here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (MeshCookedCollisionStream*)bufObj; + } + + virtual const char* getClassName() + { + return (MeshCookedCollisionStream::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (MeshCookedCollisionStream::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (MeshCookedCollisionStream::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (MeshCookedCollisionStream::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStreamsAtScale.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStreamsAtScale.h old mode 100644 new mode 100755 index df90db7..36ff03d --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStreamsAtScale.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/MeshCookedCollisionStreamsAtScale.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_MeshCookedCollisionStreamsAtScale_h -#define HEADER_MeshCookedCollisionStreamsAtScale_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace MeshCookedCollisionStreamsAtScaleNS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type meshCookedCollisionStreams; - -}; - -static const uint32_t checksum[] = { 0xf356e0c1, 0xf4812209, 0x4cf28347, 0xc18b1923, }; - -} // namespace MeshCookedCollisionStreamsAtScaleNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class MeshCookedCollisionStreamsAtScale : public NvParameterized::NvParameters, public MeshCookedCollisionStreamsAtScaleNS::ParametersStruct -{ -public: - MeshCookedCollisionStreamsAtScale(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~MeshCookedCollisionStreamsAtScale(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("MeshCookedCollisionStreamsAtScale"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(MeshCookedCollisionStreamsAtScaleNS::checksum); - return MeshCookedCollisionStreamsAtScaleNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const MeshCookedCollisionStreamsAtScaleNS::ParametersStruct& parameters(void) const - { - MeshCookedCollisionStreamsAtScale* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - MeshCookedCollisionStreamsAtScaleNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class MeshCookedCollisionStreamsAtScaleFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - MeshCookedCollisionStreamsAtScale::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStreamsAtScale), MeshCookedCollisionStreamsAtScale::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStreamsAtScale::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(MeshCookedCollisionStreamsAtScale)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStreamsAtScale)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStreamsAtScale::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStreamsAtScale::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of MeshCookedCollisionStreamsAtScale here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (MeshCookedCollisionStreamsAtScale*)bufObj; - } - - virtual const char* getClassName() - { - return (MeshCookedCollisionStreamsAtScale::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (MeshCookedCollisionStreamsAtScale::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (MeshCookedCollisionStreamsAtScale::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (MeshCookedCollisionStreamsAtScale::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_MeshCookedCollisionStreamsAtScale_h +#define HEADER_MeshCookedCollisionStreamsAtScale_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace MeshCookedCollisionStreamsAtScaleNS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type meshCookedCollisionStreams; + +}; + +static const uint32_t checksum[] = { 0xf356e0c1, 0xf4812209, 0x4cf28347, 0xc18b1923, }; + +} // namespace MeshCookedCollisionStreamsAtScaleNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class MeshCookedCollisionStreamsAtScale : public NvParameterized::NvParameters, public MeshCookedCollisionStreamsAtScaleNS::ParametersStruct +{ +public: + MeshCookedCollisionStreamsAtScale(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~MeshCookedCollisionStreamsAtScale(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("MeshCookedCollisionStreamsAtScale"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(MeshCookedCollisionStreamsAtScaleNS::checksum); + return MeshCookedCollisionStreamsAtScaleNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const MeshCookedCollisionStreamsAtScaleNS::ParametersStruct& parameters(void) const + { + MeshCookedCollisionStreamsAtScale* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + MeshCookedCollisionStreamsAtScaleNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class MeshCookedCollisionStreamsAtScaleFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + MeshCookedCollisionStreamsAtScale::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStreamsAtScale), MeshCookedCollisionStreamsAtScale::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStreamsAtScale::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(MeshCookedCollisionStreamsAtScale)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStreamsAtScale)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStreamsAtScale::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStreamsAtScale::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of MeshCookedCollisionStreamsAtScale here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (MeshCookedCollisionStreamsAtScale*)bufObj; + } + + virtual const char* getClassName() + { + return (MeshCookedCollisionStreamsAtScale::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (MeshCookedCollisionStreamsAtScale::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (MeshCookedCollisionStreamsAtScale::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (MeshCookedCollisionStreamsAtScale::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/ModuleDestructibleRegistration.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/ModuleDestructibleRegistration.h old mode 100644 new mode 100755 index 05c9e35..b3ae263 --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/ModuleDestructibleRegistration.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/ModuleDestructibleRegistration.h @@ -1,150 +1,150 @@ -/* - * Copyright (c) 2008-2015, 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. - */ - -#ifndef MODULE_MODULEDESTRUCTIBLEREGISTRATIONH_H -#define MODULE_MODULEDESTRUCTIBLEREGISTRATIONH_H - -#include "PsAllocator.h" -#include "NvRegistrationsForTraitsBase.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PxAssert.h" -#include - -// INCLUDE GENERATED FACTORIES -#include "DestructibleActorParam.h" -#include "DestructibleActorChunks.h" -#include "DestructibleActorState.h" -#include "SurfaceTraceParameters.h" -#include "SurfaceTraceSetParameters.h" -#include "CachedOverlaps.h" -#include "MeshCookedCollisionStream.h" -#include "MeshCookedCollisionStreamsAtScale.h" -#include "DestructibleAssetCollisionDataSet.h" -#include "DestructibleAssetParameters.h" -#include "DestructiblePreviewParam.h" -#include "DestructibleDebugRenderParams.h" -#include "DestructibleModuleParameters.h" - - -// INCLUDE GENERATED CONVERSION - - -namespace nvidia { -namespace destructible { - - -class ModuleDestructibleRegistration : public NvParameterized::RegistrationsForTraitsBase -{ -public: - static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleDestructibleRegistration().registerAll(*parameterizedTraits); - } - } - - static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleDestructibleRegistration().unregisterAll(*parameterizedTraits); - } - } - - void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - ::NvParameterized::Factory* factoriesToRegister[] = { -// REGISTER GENERATED FACTORIES - new nvidia::destructible::DestructibleActorParamFactory(), - new nvidia::destructible::DestructibleActorChunksFactory(), - new nvidia::destructible::DestructibleActorStateFactory(), - new nvidia::destructible::SurfaceTraceParametersFactory(), - new nvidia::destructible::SurfaceTraceSetParametersFactory(), - new nvidia::destructible::CachedOverlapsFactory(), - new nvidia::destructible::MeshCookedCollisionStreamFactory(), - new nvidia::destructible::MeshCookedCollisionStreamsAtScaleFactory(), - new nvidia::destructible::DestructibleAssetCollisionDataSetFactory(), - new nvidia::destructible::DestructibleAssetParametersFactory(), - new nvidia::destructible::DestructiblePreviewParamFactory(), - new nvidia::destructible::DestructibleDebugRenderParamsFactory(), - new nvidia::destructible::DestructibleModuleParametersFactory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) - { - parameterizedTraits.registerFactory(*factoriesToRegister[i]); - } - } - - virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// REGISTER GENERATED CONVERSION -PX_UNUSED(parameterizedTraits); - - } - - void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - struct FactoryDesc - { - const char* name; - uint32_t version; - }; - - ::NvParameterized::Factory* factoriesToUnregister[] = { -// UNREGISTER GENERATED FACTORIES - new nvidia::destructible::DestructibleActorParamFactory(), - new nvidia::destructible::DestructibleActorChunksFactory(), - new nvidia::destructible::DestructibleActorStateFactory(), - new nvidia::destructible::SurfaceTraceParametersFactory(), - new nvidia::destructible::SurfaceTraceSetParametersFactory(), - new nvidia::destructible::CachedOverlapsFactory(), - new nvidia::destructible::MeshCookedCollisionStreamFactory(), - new nvidia::destructible::MeshCookedCollisionStreamsAtScaleFactory(), - new nvidia::destructible::DestructibleAssetCollisionDataSetFactory(), - new nvidia::destructible::DestructibleAssetParametersFactory(), - new nvidia::destructible::DestructiblePreviewParamFactory(), - new nvidia::destructible::DestructibleDebugRenderParamsFactory(), - new nvidia::destructible::DestructibleModuleParametersFactory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) - { - ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); - if (!removedFactory) - { - PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); - } - else - { - removedFactory->freeParameterDefinitionTable(¶meterizedTraits); - delete removedFactory; - delete factoriesToUnregister[i]; - } - } - } - - virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// UNREGISTER GENERATED CONVERSION -PX_UNUSED(parameterizedTraits); - - } - -}; - - -} -} //nvidia::destructible - -#endif +/* + * Copyright (c) 2008-2015, 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. + */ + +#ifndef MODULE_MODULEDESTRUCTIBLEREGISTRATIONH_H +#define MODULE_MODULEDESTRUCTIBLEREGISTRATIONH_H + +#include "PsAllocator.h" +#include "NvRegistrationsForTraitsBase.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PxAssert.h" +#include + +// INCLUDE GENERATED FACTORIES +#include "DestructibleActorParam.h" +#include "DestructibleActorChunks.h" +#include "DestructibleActorState.h" +#include "SurfaceTraceParameters.h" +#include "SurfaceTraceSetParameters.h" +#include "CachedOverlaps.h" +#include "MeshCookedCollisionStream.h" +#include "MeshCookedCollisionStreamsAtScale.h" +#include "DestructibleAssetCollisionDataSet.h" +#include "DestructibleAssetParameters.h" +#include "DestructiblePreviewParam.h" +#include "DestructibleDebugRenderParams.h" +#include "DestructibleModuleParameters.h" + + +// INCLUDE GENERATED CONVERSION + + +namespace nvidia { +namespace destructible { + + +class ModuleDestructibleRegistration : public NvParameterized::RegistrationsForTraitsBase +{ +public: + static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleDestructibleRegistration().registerAll(*parameterizedTraits); + } + } + + static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleDestructibleRegistration().unregisterAll(*parameterizedTraits); + } + } + + void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + ::NvParameterized::Factory* factoriesToRegister[] = { +// REGISTER GENERATED FACTORIES + new nvidia::destructible::DestructibleActorParamFactory(), + new nvidia::destructible::DestructibleActorChunksFactory(), + new nvidia::destructible::DestructibleActorStateFactory(), + new nvidia::destructible::SurfaceTraceParametersFactory(), + new nvidia::destructible::SurfaceTraceSetParametersFactory(), + new nvidia::destructible::CachedOverlapsFactory(), + new nvidia::destructible::MeshCookedCollisionStreamFactory(), + new nvidia::destructible::MeshCookedCollisionStreamsAtScaleFactory(), + new nvidia::destructible::DestructibleAssetCollisionDataSetFactory(), + new nvidia::destructible::DestructibleAssetParametersFactory(), + new nvidia::destructible::DestructiblePreviewParamFactory(), + new nvidia::destructible::DestructibleDebugRenderParamsFactory(), + new nvidia::destructible::DestructibleModuleParametersFactory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) + { + parameterizedTraits.registerFactory(*factoriesToRegister[i]); + } + } + + virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// REGISTER GENERATED CONVERSION +PX_UNUSED(parameterizedTraits); + + } + + void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + struct FactoryDesc + { + const char* name; + uint32_t version; + }; + + ::NvParameterized::Factory* factoriesToUnregister[] = { +// UNREGISTER GENERATED FACTORIES + new nvidia::destructible::DestructibleActorParamFactory(), + new nvidia::destructible::DestructibleActorChunksFactory(), + new nvidia::destructible::DestructibleActorStateFactory(), + new nvidia::destructible::SurfaceTraceParametersFactory(), + new nvidia::destructible::SurfaceTraceSetParametersFactory(), + new nvidia::destructible::CachedOverlapsFactory(), + new nvidia::destructible::MeshCookedCollisionStreamFactory(), + new nvidia::destructible::MeshCookedCollisionStreamsAtScaleFactory(), + new nvidia::destructible::DestructibleAssetCollisionDataSetFactory(), + new nvidia::destructible::DestructibleAssetParametersFactory(), + new nvidia::destructible::DestructiblePreviewParamFactory(), + new nvidia::destructible::DestructibleDebugRenderParamsFactory(), + new nvidia::destructible::DestructibleModuleParametersFactory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) + { + ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); + if (!removedFactory) + { + PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); + } + else + { + removedFactory->freeParameterDefinitionTable(¶meterizedTraits); + delete removedFactory; + delete factoriesToUnregister[i]; + } + } + } + + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// UNREGISTER GENERATED CONVERSION +PX_UNUSED(parameterizedTraits); + + } + +}; + + +} +} //nvidia::destructible + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h old mode 100644 new mode 100755 index 2957495..93bce77 --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceParameters.h @@ -1,248 +1,248 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceTraceParameters_h -#define HEADER_SurfaceTraceParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceTraceParametersNS -{ - - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U8_DynamicArray1D_Type submeshIndices; - U32_DynamicArray1D_Type vertexIndices; - physx::PxVec3 defaultNormal; - -}; - -static const uint32_t checksum[] = { 0x97a690a9, 0x7c950c3a, 0x7e771c34, 0x41bed788, }; - -} // namespace SurfaceTraceParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceTraceParameters : public NvParameterized::NvParameters, public SurfaceTraceParametersNS::ParametersStruct -{ -public: - SurfaceTraceParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceTraceParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceTraceParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceTraceParametersNS::checksum); - return SurfaceTraceParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceTraceParametersNS::ParametersStruct& parameters(void) const - { - SurfaceTraceParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceTraceParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceTraceParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceTraceParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceParameters), SurfaceTraceParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceTraceParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceTraceParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceTraceParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceTraceParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceTraceParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceTraceParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceTraceParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceTraceParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceTraceParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceTraceParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceTraceParameters_h +#define HEADER_SurfaceTraceParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceTraceParametersNS +{ + + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U8_DynamicArray1D_Type submeshIndices; + U32_DynamicArray1D_Type vertexIndices; + physx::PxVec3 defaultNormal; + +}; + +static const uint32_t checksum[] = { 0x97a690a9, 0x7c950c3a, 0x7e771c34, 0x41bed788, }; + +} // namespace SurfaceTraceParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceTraceParameters : public NvParameterized::NvParameters, public SurfaceTraceParametersNS::ParametersStruct +{ +public: + SurfaceTraceParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceTraceParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceTraceParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceTraceParametersNS::checksum); + return SurfaceTraceParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceTraceParametersNS::ParametersStruct& parameters(void) const + { + SurfaceTraceParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceTraceParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceTraceParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceTraceParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceParameters), SurfaceTraceParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceTraceParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceTraceParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceTraceParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceTraceParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceTraceParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceTraceParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceTraceParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceTraceParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceTraceParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceTraceParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceSetParameters.h b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceSetParameters.h old mode 100644 new mode 100755 index c4a1102..408e94f --- a/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceSetParameters.h +++ b/sdk/extensions/import/apexmodules/modules/destructible/include/autogen/SurfaceTraceSetParameters.h @@ -1,239 +1,239 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceTraceSetParameters_h -#define HEADER_SurfaceTraceSetParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace destructible -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceTraceSetParametersNS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type traces; - physx::PxVec3 positionOffset; - -}; - -static const uint32_t checksum[] = { 0x7825b62c, 0x9ed33f77, 0x7851a472, 0xb4319f34, }; - -} // namespace SurfaceTraceSetParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceTraceSetParameters : public NvParameterized::NvParameters, public SurfaceTraceSetParametersNS::ParametersStruct -{ -public: - SurfaceTraceSetParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceTraceSetParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceTraceSetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceTraceSetParametersNS::checksum); - return SurfaceTraceSetParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceTraceSetParametersNS::ParametersStruct& parameters(void) const - { - SurfaceTraceSetParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceTraceSetParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceTraceSetParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceTraceSetParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters), SurfaceTraceSetParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceTraceSetParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceTraceSetParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceTraceSetParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceTraceSetParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceTraceSetParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceTraceSetParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceTraceSetParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace destructible -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceTraceSetParameters_h +#define HEADER_SurfaceTraceSetParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace destructible +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceTraceSetParametersNS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type traces; + physx::PxVec3 positionOffset; + +}; + +static const uint32_t checksum[] = { 0x7825b62c, 0x9ed33f77, 0x7851a472, 0xb4319f34, }; + +} // namespace SurfaceTraceSetParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceTraceSetParameters : public NvParameterized::NvParameters, public SurfaceTraceSetParametersNS::ParametersStruct +{ +public: + SurfaceTraceSetParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceTraceSetParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceTraceSetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceTraceSetParametersNS::checksum); + return SurfaceTraceSetParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceTraceSetParametersNS::ParametersStruct& parameters(void) const + { + SurfaceTraceSetParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceTraceSetParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceTraceSetParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceTraceSetParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters), SurfaceTraceSetParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceTraceSetParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceTraceSetParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceTraceSetParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceTraceSetParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceTraceSetParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceTraceSetParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceTraceSetParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace destructible +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/CachedOverlaps.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/CachedOverlaps.cpp old mode 100644 new mode 100755 index bf8e0dc..5b005e8 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/CachedOverlaps.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/CachedOverlaps.cpp @@ -1,429 +1,429 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "CachedOverlaps.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace CachedOverlapsNS; - -const char* const CachedOverlapsFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isCached), NULL, 0 }, // isCached - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlaps), CHILDREN(2), 1 }, // overlaps - { TYPE_STRUCT, false, 1 * sizeof(IntPair_Type), CHILDREN(3), 2 }, // overlaps[] - { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i0), NULL, 0 }, // overlaps[].i0 - { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i1), NULL, 0 }, // overlaps[].i1 -}; - - -bool CachedOverlaps::mBuiltFlag = false; -NvParameterized::MutexType CachedOverlaps::mBuiltFlagMutex; - -CachedOverlaps::CachedOverlaps(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &CachedOverlapsFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -CachedOverlaps::~CachedOverlaps() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void CachedOverlaps::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~CachedOverlaps(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* CachedOverlaps::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* CachedOverlaps::getParameterDefinitionTree(void) const -{ - CachedOverlaps* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType CachedOverlaps::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType CachedOverlaps::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void CachedOverlaps::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void CachedOverlaps::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void CachedOverlaps::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="isCached" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("isCached", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth. In this\n case, overlap really means adjacency.", true); - HintTable[1].init("shortDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="overlaps" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("overlaps", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); - HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="overlaps[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("overlaps", TYPE_STRUCT, "IntPair", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); - HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="overlaps[].i0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("i0", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "First element", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="overlaps[].i1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("i1", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Second element", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - - ParamDefTable[0].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=2, longName="overlaps" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(3); - - ParamDefTable[2].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="overlaps[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(4); - Children[1] = PDEF_PTR(5); - - ParamDefTable[3].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void CachedOverlaps::initStrings(void) -{ -} - -void CachedOverlaps::initDynamicArrays(void) -{ - overlaps.buf = NULL; - overlaps.isAllocated = true; - overlaps.elementSize = sizeof(IntPair_Type); - overlaps.arraySizes[0] = 0; -} - -void CachedOverlaps::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - isCached = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void CachedOverlaps::initReferences(void) -{ -} - -void CachedOverlaps::freeDynamicArrays(void) -{ - if (overlaps.isAllocated && overlaps.buf) - { - mParameterizedTraits->free(overlaps.buf); - } -} - -void CachedOverlaps::freeStrings(void) -{ -} - -void CachedOverlaps::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "CachedOverlaps.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace CachedOverlapsNS; + +const char* const CachedOverlapsFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isCached), NULL, 0 }, // isCached + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlaps), CHILDREN(2), 1 }, // overlaps + { TYPE_STRUCT, false, 1 * sizeof(IntPair_Type), CHILDREN(3), 2 }, // overlaps[] + { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i0), NULL, 0 }, // overlaps[].i0 + { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i1), NULL, 0 }, // overlaps[].i1 +}; + + +bool CachedOverlaps::mBuiltFlag = false; +NvParameterized::MutexType CachedOverlaps::mBuiltFlagMutex; + +CachedOverlaps::CachedOverlaps(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &CachedOverlapsFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +CachedOverlaps::~CachedOverlaps() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void CachedOverlaps::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~CachedOverlaps(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* CachedOverlaps::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* CachedOverlaps::getParameterDefinitionTree(void) const +{ + CachedOverlaps* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType CachedOverlaps::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType CachedOverlaps::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void CachedOverlaps::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void CachedOverlaps::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void CachedOverlaps::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="isCached" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("isCached", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth. In this\n case, overlap really means adjacency.", true); + HintTable[1].init("shortDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="overlaps" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("overlaps", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); + HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="overlaps[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("overlaps", TYPE_STRUCT, "IntPair", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); + HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="overlaps[].i0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("i0", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "First element", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="overlaps[].i1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("i1", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Second element", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + + ParamDefTable[0].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=2, longName="overlaps" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(3); + + ParamDefTable[2].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="overlaps[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(4); + Children[1] = PDEF_PTR(5); + + ParamDefTable[3].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void CachedOverlaps::initStrings(void) +{ +} + +void CachedOverlaps::initDynamicArrays(void) +{ + overlaps.buf = NULL; + overlaps.isAllocated = true; + overlaps.elementSize = sizeof(IntPair_Type); + overlaps.arraySizes[0] = 0; +} + +void CachedOverlaps::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + isCached = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void CachedOverlaps::initReferences(void) +{ +} + +void CachedOverlaps::freeDynamicArrays(void) +{ + if (overlaps.isAllocated && overlaps.buf) + { + mParameterizedTraits->free(overlaps.buf); + } +} + +void CachedOverlaps::freeStrings(void) +{ +} + +void CachedOverlaps::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorChunks.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorChunks.cpp old mode 100644 new mode 100755 index ebbd296..2a18b1e --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorChunks.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorChunks.cpp @@ -1,642 +1,642 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorChunks.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructibleActorChunksNS; - -const char* const DestructibleActorChunksFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 14; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(2), 11 }, // data[] - { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->state), NULL, 0 }, // data[].state - { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // data[].flags - { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->islandID), NULL, 0 }, // data[].islandID - { TYPE_F32, false, (size_t)(&((Chunk_Type*)0)->damage), NULL, 0 }, // data[].damage - { TYPE_VEC4, false, (size_t)(&((Chunk_Type*)0)->localSphere), NULL, 0 }, // data[].localSphere - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->localOffset), NULL, 0 }, // data[].localOffset - { TYPE_I32, false, (size_t)(&((Chunk_Type*)0)->visibleAncestorIndex), NULL, 0 }, // data[].visibleAncestorIndex - { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->shapesCount), NULL, 0 }, // data[].shapesCount - { TYPE_TRANSFORM, false, (size_t)(&((Chunk_Type*)0)->globalPose), NULL, 0 }, // data[].globalPose - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->linearVelocity), NULL, 0 }, // data[].linearVelocity - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->angularVelocity), NULL, 0 }, // data[].angularVelocity -}; - - -bool DestructibleActorChunks::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorChunks::mBuiltFlagMutex; - -DestructibleActorChunks::DestructibleActorChunks(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorChunksFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorChunks::~DestructibleActorChunks() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorChunks::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorChunks(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorChunks::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorChunks::getParameterDefinitionTree(void) const -{ - DestructibleActorChunks* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorChunks::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorChunks::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorChunks::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorChunks::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorChunks::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].state" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("state", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bit flags indicating the state of the chunk.", true); - HintTable[1].init("shortDescription", "Bit flags indicating the state of the chunk", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("flags", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Overall chunk flags.", true); - HintTable[1].init("shortDescription", "Overall chunk flags", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].islandID" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("islandID", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Island ID (if any) to which the chunk is attached.", true); - HintTable[1].init("shortDescription", "Island ID (if any) to which the chunk is attached", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].damage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("damage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damaged the chunk is.", true); - HintTable[1].init("shortDescription", "How damaged the chunk is", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="data[].localSphere" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("localSphere", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); - HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="data[].localOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("localOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); - HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="data[].visibleAncestorIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("visibleAncestorIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index (in structure) of this chunks' visible ancestor, if any. If none exists, it's InvalidChunkIndex.", true); - HintTable[1].init("shortDescription", "Index (in structure) of this chunks' visible ancestor, if any", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="data[].shapesCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("shapesCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of shapes for this chunk.", true); - HintTable[1].init("shortDescription", "Number of shapes for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="data[].globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk global transform.", true); - HintTable[1].init("shortDescription", "Chunk global transform", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="data[].linearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("linearVelocity", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk linear velocity.", true); - HintTable[1].init("shortDescription", "Chunk linear velocity", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="data[].angularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("angularVelocity", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk angular velocity.", true); - HintTable[1].init("shortDescription", "Chunk angular velocity", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - Children[4] = PDEF_PTR(7); - Children[5] = PDEF_PTR(8); - Children[6] = PDEF_PTR(9); - Children[7] = PDEF_PTR(10); - Children[8] = PDEF_PTR(11); - Children[9] = PDEF_PTR(12); - Children[10] = PDEF_PTR(13); - - ParamDefTable[2].setChildren(Children, 11); - } - - mBuiltFlag = true; - -} -void DestructibleActorChunks::initStrings(void) -{ -} - -void DestructibleActorChunks::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(Chunk_Type); - data.arraySizes[0] = 0; -} - -void DestructibleActorChunks::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorChunks::initReferences(void) -{ -} - -void DestructibleActorChunks::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void DestructibleActorChunks::freeStrings(void) -{ -} - -void DestructibleActorChunks::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorChunks.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructibleActorChunksNS; + +const char* const DestructibleActorChunksFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 14; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(2), 11 }, // data[] + { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->state), NULL, 0 }, // data[].state + { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // data[].flags + { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->islandID), NULL, 0 }, // data[].islandID + { TYPE_F32, false, (size_t)(&((Chunk_Type*)0)->damage), NULL, 0 }, // data[].damage + { TYPE_VEC4, false, (size_t)(&((Chunk_Type*)0)->localSphere), NULL, 0 }, // data[].localSphere + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->localOffset), NULL, 0 }, // data[].localOffset + { TYPE_I32, false, (size_t)(&((Chunk_Type*)0)->visibleAncestorIndex), NULL, 0 }, // data[].visibleAncestorIndex + { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->shapesCount), NULL, 0 }, // data[].shapesCount + { TYPE_TRANSFORM, false, (size_t)(&((Chunk_Type*)0)->globalPose), NULL, 0 }, // data[].globalPose + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->linearVelocity), NULL, 0 }, // data[].linearVelocity + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->angularVelocity), NULL, 0 }, // data[].angularVelocity +}; + + +bool DestructibleActorChunks::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorChunks::mBuiltFlagMutex; + +DestructibleActorChunks::DestructibleActorChunks(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorChunksFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorChunks::~DestructibleActorChunks() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorChunks::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorChunks(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorChunks::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorChunks::getParameterDefinitionTree(void) const +{ + DestructibleActorChunks* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorChunks::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorChunks::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorChunks::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorChunks::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorChunks::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].state" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("state", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bit flags indicating the state of the chunk.", true); + HintTable[1].init("shortDescription", "Bit flags indicating the state of the chunk", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("flags", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Overall chunk flags.", true); + HintTable[1].init("shortDescription", "Overall chunk flags", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].islandID" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("islandID", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Island ID (if any) to which the chunk is attached.", true); + HintTable[1].init("shortDescription", "Island ID (if any) to which the chunk is attached", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].damage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("damage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damaged the chunk is.", true); + HintTable[1].init("shortDescription", "How damaged the chunk is", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="data[].localSphere" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("localSphere", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); + HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="data[].localOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("localOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); + HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="data[].visibleAncestorIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("visibleAncestorIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index (in structure) of this chunks' visible ancestor, if any. If none exists, it's InvalidChunkIndex.", true); + HintTable[1].init("shortDescription", "Index (in structure) of this chunks' visible ancestor, if any", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="data[].shapesCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("shapesCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of shapes for this chunk.", true); + HintTable[1].init("shortDescription", "Number of shapes for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="data[].globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk global transform.", true); + HintTable[1].init("shortDescription", "Chunk global transform", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="data[].linearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("linearVelocity", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk linear velocity.", true); + HintTable[1].init("shortDescription", "Chunk linear velocity", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="data[].angularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("angularVelocity", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk angular velocity.", true); + HintTable[1].init("shortDescription", "Chunk angular velocity", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + Children[4] = PDEF_PTR(7); + Children[5] = PDEF_PTR(8); + Children[6] = PDEF_PTR(9); + Children[7] = PDEF_PTR(10); + Children[8] = PDEF_PTR(11); + Children[9] = PDEF_PTR(12); + Children[10] = PDEF_PTR(13); + + ParamDefTable[2].setChildren(Children, 11); + } + + mBuiltFlag = true; + +} +void DestructibleActorChunks::initStrings(void) +{ +} + +void DestructibleActorChunks::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(Chunk_Type); + data.arraySizes[0] = 0; +} + +void DestructibleActorChunks::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorChunks::initReferences(void) +{ +} + +void DestructibleActorChunks::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void DestructibleActorChunks::freeStrings(void) +{ +} + +void DestructibleActorChunks::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorParam.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorParam.cpp old mode 100644 new mode 100755 index d6dcc82..cd9b404 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorParam.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorParam.cpp @@ -1,8244 +1,8244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructibleActorParamNS; - -const char* const DestructibleActorParamFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 294; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 85, - 96, 130, 159, 176, 199, 225, 239, 243, 267, 292, 293, 19, 21, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 84, 40, 41, - 42, 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, - 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 97, 118, 119, 125, 126, 127, 128, 129, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, - 131, 139, 140, 141, 142, 155, 156, 157, 158, 132, 133, 134, 135, 136, 137, 138, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 160, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 161, 162, 163, 164, 177, 184, 189, 194, 195, 196, 197, - 198, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 190, 191, 192, 193, 200, 204, - 205, 206, 207, 223, 224, 201, 202, 203, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 226, 227, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 228, 229, 240, 241, 242, 244, 245, 246, 247, 251, 255, 256, 257, 258, 259, 260, 266, - 248, 249, 250, 252, 253, 254, 261, 262, 263, 264, 265, 268, 269, 270, 271, 272, 276, - 280, 281, 282, 283, 284, 285, 291, 273, 274, 275, 277, 278, 279, 286, 287, 288, 289, - 290, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_TRANSFORM, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 24 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(60), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(67), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(72), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(81), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(86), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(90), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(96), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(97), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(106), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(114), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(134), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(139), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(155), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(167), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(179), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(183), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(191), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(197), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(201), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(205), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(212), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(215), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(230), 11 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(241), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(243), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(246), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(258), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(261), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(264), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(269), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(270), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(282), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(285), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(288), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB -}; - - -bool DestructibleActorParam::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam::mBuiltFlagMutex; - -DestructibleActorParam::DestructibleActorParam(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParamFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam::~DestructibleActorParam() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam::getParameterDefinitionTree(void) const -{ - DestructibleActorParam* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the DestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the DestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); - HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.alwaysDrawScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); - HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); - HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.velocityIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=291, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksLeavingUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; - ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); - ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=293, longName="deleteChunksEnteringUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[293]; - ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); - ParamDefTable[293].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[34]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(18); - Children[18] = PDEF_PTR(20); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(24); - Children[22] = PDEF_PTR(85); - Children[23] = PDEF_PTR(96); - Children[24] = PDEF_PTR(130); - Children[25] = PDEF_PTR(159); - Children[26] = PDEF_PTR(176); - Children[27] = PDEF_PTR(199); - Children[28] = PDEF_PTR(225); - Children[29] = PDEF_PTR(239); - Children[30] = PDEF_PTR(243); - Children[31] = PDEF_PTR(267); - Children[32] = PDEF_PTR(292); - Children[33] = PDEF_PTR(293); - - ParamDefTable[0].setChildren(Children, 34); - } - - // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(19); - - ParamDefTable[18].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(21); - - ParamDefTable[20].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="destructibleParameters" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(29); - Children[5] = PDEF_PTR(30); - Children[6] = PDEF_PTR(31); - Children[7] = PDEF_PTR(32); - Children[8] = PDEF_PTR(33); - Children[9] = PDEF_PTR(34); - Children[10] = PDEF_PTR(35); - Children[11] = PDEF_PTR(36); - Children[12] = PDEF_PTR(37); - Children[13] = PDEF_PTR(38); - Children[14] = PDEF_PTR(39); - Children[15] = PDEF_PTR(47); - Children[16] = PDEF_PTR(48); - Children[17] = PDEF_PTR(49); - Children[18] = PDEF_PTR(50); - Children[19] = PDEF_PTR(56); - Children[20] = PDEF_PTR(81); - Children[21] = PDEF_PTR(82); - Children[22] = PDEF_PTR(83); - Children[23] = PDEF_PTR(84); - - ParamDefTable[24].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - Children[6] = PDEF_PTR(46); - - ParamDefTable[39].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - - ParamDefTable[50].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(69); - Children[8] = PDEF_PTR(74); - - ParamDefTable[56].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(65); - Children[2] = PDEF_PTR(66); - Children[3] = PDEF_PTR(67); - Children[4] = PDEF_PTR(68); - - ParamDefTable[63].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(70); - Children[1] = PDEF_PTR(71); - Children[2] = PDEF_PTR(72); - Children[3] = PDEF_PTR(73); - - ParamDefTable[69].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - - ParamDefTable[74].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=85, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(86); - - ParamDefTable[85].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=86, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - Children[5] = PDEF_PTR(92); - Children[6] = PDEF_PTR(93); - Children[7] = PDEF_PTR(94); - Children[8] = PDEF_PTR(95); - - ParamDefTable[86].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=96, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(118); - Children[2] = PDEF_PTR(119); - Children[3] = PDEF_PTR(125); - Children[4] = PDEF_PTR(126); - Children[5] = PDEF_PTR(127); - Children[6] = PDEF_PTR(128); - Children[7] = PDEF_PTR(129); - - ParamDefTable[96].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=97, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(99); - Children[2] = PDEF_PTR(100); - Children[3] = PDEF_PTR(101); - Children[4] = PDEF_PTR(102); - Children[5] = PDEF_PTR(103); - Children[6] = PDEF_PTR(104); - Children[7] = PDEF_PTR(105); - Children[8] = PDEF_PTR(106); - Children[9] = PDEF_PTR(107); - Children[10] = PDEF_PTR(108); - Children[11] = PDEF_PTR(109); - Children[12] = PDEF_PTR(110); - Children[13] = PDEF_PTR(111); - Children[14] = PDEF_PTR(112); - Children[15] = PDEF_PTR(113); - Children[16] = PDEF_PTR(114); - Children[17] = PDEF_PTR(115); - Children[18] = PDEF_PTR(116); - Children[19] = PDEF_PTR(117); - - ParamDefTable[97].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=119, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(120); - Children[1] = PDEF_PTR(121); - Children[2] = PDEF_PTR(122); - Children[3] = PDEF_PTR(123); - Children[4] = PDEF_PTR(124); - - ParamDefTable[119].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=130, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(131); - Children[1] = PDEF_PTR(139); - Children[2] = PDEF_PTR(140); - Children[3] = PDEF_PTR(141); - Children[4] = PDEF_PTR(142); - Children[5] = PDEF_PTR(155); - Children[6] = PDEF_PTR(156); - Children[7] = PDEF_PTR(157); - Children[8] = PDEF_PTR(158); - - ParamDefTable[130].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=131, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(132); - Children[1] = PDEF_PTR(133); - Children[2] = PDEF_PTR(134); - Children[3] = PDEF_PTR(135); - Children[4] = PDEF_PTR(136); - Children[5] = PDEF_PTR(137); - Children[6] = PDEF_PTR(138); - - ParamDefTable[131].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(143); - Children[1] = PDEF_PTR(144); - Children[2] = PDEF_PTR(145); - Children[3] = PDEF_PTR(146); - Children[4] = PDEF_PTR(147); - Children[5] = PDEF_PTR(148); - Children[6] = PDEF_PTR(149); - Children[7] = PDEF_PTR(150); - Children[8] = PDEF_PTR(151); - Children[9] = PDEF_PTR(152); - Children[10] = PDEF_PTR(153); - Children[11] = PDEF_PTR(154); - - ParamDefTable[142].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=159, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(160); - Children[1] = PDEF_PTR(165); - Children[2] = PDEF_PTR(166); - Children[3] = PDEF_PTR(167); - Children[4] = PDEF_PTR(168); - Children[5] = PDEF_PTR(169); - Children[6] = PDEF_PTR(170); - Children[7] = PDEF_PTR(171); - Children[8] = PDEF_PTR(172); - Children[9] = PDEF_PTR(173); - Children[10] = PDEF_PTR(174); - Children[11] = PDEF_PTR(175); - - ParamDefTable[159].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=160, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(161); - Children[1] = PDEF_PTR(162); - Children[2] = PDEF_PTR(163); - Children[3] = PDEF_PTR(164); - - ParamDefTable[160].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(184); - Children[2] = PDEF_PTR(189); - Children[3] = PDEF_PTR(194); - Children[4] = PDEF_PTR(195); - Children[5] = PDEF_PTR(196); - Children[6] = PDEF_PTR(197); - Children[7] = PDEF_PTR(198); - - ParamDefTable[176].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=177, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(178); - Children[1] = PDEF_PTR(179); - Children[2] = PDEF_PTR(180); - Children[3] = PDEF_PTR(181); - Children[4] = PDEF_PTR(182); - Children[5] = PDEF_PTR(183); - - ParamDefTable[177].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(185); - Children[1] = PDEF_PTR(186); - Children[2] = PDEF_PTR(187); - Children[3] = PDEF_PTR(188); - - ParamDefTable[184].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(190); - Children[1] = PDEF_PTR(191); - Children[2] = PDEF_PTR(192); - Children[3] = PDEF_PTR(193); - - ParamDefTable[189].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(200); - Children[1] = PDEF_PTR(204); - Children[2] = PDEF_PTR(205); - Children[3] = PDEF_PTR(206); - Children[4] = PDEF_PTR(207); - Children[5] = PDEF_PTR(223); - Children[6] = PDEF_PTR(224); - - ParamDefTable[199].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=200, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(201); - Children[1] = PDEF_PTR(202); - Children[2] = PDEF_PTR(203); - - ParamDefTable[200].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(208); - Children[1] = PDEF_PTR(209); - Children[2] = PDEF_PTR(210); - Children[3] = PDEF_PTR(211); - Children[4] = PDEF_PTR(212); - Children[5] = PDEF_PTR(213); - Children[6] = PDEF_PTR(214); - Children[7] = PDEF_PTR(215); - Children[8] = PDEF_PTR(216); - Children[9] = PDEF_PTR(217); - Children[10] = PDEF_PTR(218); - Children[11] = PDEF_PTR(219); - Children[12] = PDEF_PTR(220); - Children[13] = PDEF_PTR(221); - Children[14] = PDEF_PTR(222); - - ParamDefTable[207].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=225, longName="p3BodyDescTemplate" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(226); - Children[1] = PDEF_PTR(227); - Children[2] = PDEF_PTR(230); - Children[3] = PDEF_PTR(231); - Children[4] = PDEF_PTR(232); - Children[5] = PDEF_PTR(233); - Children[6] = PDEF_PTR(234); - Children[7] = PDEF_PTR(235); - Children[8] = PDEF_PTR(236); - Children[9] = PDEF_PTR(237); - Children[10] = PDEF_PTR(238); - - ParamDefTable[225].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=227, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(228); - Children[1] = PDEF_PTR(229); - - ParamDefTable[227].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=239, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(240); - Children[1] = PDEF_PTR(241); - Children[2] = PDEF_PTR(242); - - ParamDefTable[239].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=243, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(244); - Children[1] = PDEF_PTR(245); - Children[2] = PDEF_PTR(246); - Children[3] = PDEF_PTR(247); - Children[4] = PDEF_PTR(251); - Children[5] = PDEF_PTR(255); - Children[6] = PDEF_PTR(256); - Children[7] = PDEF_PTR(257); - Children[8] = PDEF_PTR(258); - Children[9] = PDEF_PTR(259); - Children[10] = PDEF_PTR(260); - Children[11] = PDEF_PTR(266); - - ParamDefTable[243].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(248); - Children[1] = PDEF_PTR(249); - Children[2] = PDEF_PTR(250); - - ParamDefTable[247].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(252); - Children[1] = PDEF_PTR(253); - Children[2] = PDEF_PTR(254); - - ParamDefTable[251].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(261); - Children[1] = PDEF_PTR(262); - Children[2] = PDEF_PTR(263); - Children[3] = PDEF_PTR(264); - Children[4] = PDEF_PTR(265); - - ParamDefTable[260].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=267, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(268); - - ParamDefTable[267].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=268, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(269); - Children[1] = PDEF_PTR(270); - Children[2] = PDEF_PTR(271); - Children[3] = PDEF_PTR(272); - Children[4] = PDEF_PTR(276); - Children[5] = PDEF_PTR(280); - Children[6] = PDEF_PTR(281); - Children[7] = PDEF_PTR(282); - Children[8] = PDEF_PTR(283); - Children[9] = PDEF_PTR(284); - Children[10] = PDEF_PTR(285); - Children[11] = PDEF_PTR(291); - - ParamDefTable[268].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=272, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(273); - Children[1] = PDEF_PTR(274); - Children[2] = PDEF_PTR(275); - - ParamDefTable[272].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(277); - Children[1] = PDEF_PTR(278); - Children[2] = PDEF_PTR(279); - - ParamDefTable[276].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=285, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(286); - Children[1] = PDEF_PTR(287); - Children[2] = PDEF_PTR(288); - Children[3] = PDEF_PTR(289); - Children[4] = PDEF_PTR(290); - - ParamDefTable[285].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - globalPose = physx::PxTransform(physx::PxIdentity); - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - performDetailedOverlapTestForExtendedStructures = bool(true); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - destructibleParameters.alwaysDrawScatterMesh = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.velocityIterationCount = uint32_t(1); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - deleteChunksLeavingUserDefinedBB = bool(false); - deleteChunksEnteringUserDefinedBB = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam::initReferences(void) -{ -} - -void DestructibleActorParam::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructibleActorParamNS; + +const char* const DestructibleActorParamFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 294; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 85, + 96, 130, 159, 176, 199, 225, 239, 243, 267, 292, 293, 19, 21, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 84, 40, 41, + 42, 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, + 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 97, 118, 119, 125, 126, 127, 128, 129, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, + 131, 139, 140, 141, 142, 155, 156, 157, 158, 132, 133, 134, 135, 136, 137, 138, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 160, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 161, 162, 163, 164, 177, 184, 189, 194, 195, 196, 197, + 198, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 190, 191, 192, 193, 200, 204, + 205, 206, 207, 223, 224, 201, 202, 203, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 226, 227, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 228, 229, 240, 241, 242, 244, 245, 246, 247, 251, 255, 256, 257, 258, 259, 260, 266, + 248, 249, 250, 252, 253, 254, 261, 262, 263, 264, 265, 268, 269, 270, 271, 272, 276, + 280, 281, 282, 283, 284, 285, 291, 273, 274, 275, 277, 278, 279, 286, 287, 288, 289, + 290, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_TRANSFORM, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 24 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(60), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(67), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(72), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(81), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(86), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(90), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(96), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(97), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(106), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(114), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(134), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(139), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(155), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(167), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(179), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(183), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(191), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(197), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(201), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(205), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(212), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(215), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(230), 11 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(241), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(243), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(246), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(258), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(261), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(264), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(269), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(270), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(282), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(285), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(288), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB +}; + + +bool DestructibleActorParam::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam::mBuiltFlagMutex; + +DestructibleActorParam::DestructibleActorParam(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParamFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam::~DestructibleActorParam() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam::getParameterDefinitionTree(void) const +{ + DestructibleActorParam* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the DestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the DestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); + HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.alwaysDrawScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); + HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); + HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.velocityIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=291, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksLeavingUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; + ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); + ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=293, longName="deleteChunksEnteringUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[293]; + ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); + ParamDefTable[293].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[34]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(18); + Children[18] = PDEF_PTR(20); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(24); + Children[22] = PDEF_PTR(85); + Children[23] = PDEF_PTR(96); + Children[24] = PDEF_PTR(130); + Children[25] = PDEF_PTR(159); + Children[26] = PDEF_PTR(176); + Children[27] = PDEF_PTR(199); + Children[28] = PDEF_PTR(225); + Children[29] = PDEF_PTR(239); + Children[30] = PDEF_PTR(243); + Children[31] = PDEF_PTR(267); + Children[32] = PDEF_PTR(292); + Children[33] = PDEF_PTR(293); + + ParamDefTable[0].setChildren(Children, 34); + } + + // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(19); + + ParamDefTable[18].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(21); + + ParamDefTable[20].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="destructibleParameters" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(29); + Children[5] = PDEF_PTR(30); + Children[6] = PDEF_PTR(31); + Children[7] = PDEF_PTR(32); + Children[8] = PDEF_PTR(33); + Children[9] = PDEF_PTR(34); + Children[10] = PDEF_PTR(35); + Children[11] = PDEF_PTR(36); + Children[12] = PDEF_PTR(37); + Children[13] = PDEF_PTR(38); + Children[14] = PDEF_PTR(39); + Children[15] = PDEF_PTR(47); + Children[16] = PDEF_PTR(48); + Children[17] = PDEF_PTR(49); + Children[18] = PDEF_PTR(50); + Children[19] = PDEF_PTR(56); + Children[20] = PDEF_PTR(81); + Children[21] = PDEF_PTR(82); + Children[22] = PDEF_PTR(83); + Children[23] = PDEF_PTR(84); + + ParamDefTable[24].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + Children[6] = PDEF_PTR(46); + + ParamDefTable[39].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + + ParamDefTable[50].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(69); + Children[8] = PDEF_PTR(74); + + ParamDefTable[56].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(65); + Children[2] = PDEF_PTR(66); + Children[3] = PDEF_PTR(67); + Children[4] = PDEF_PTR(68); + + ParamDefTable[63].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(70); + Children[1] = PDEF_PTR(71); + Children[2] = PDEF_PTR(72); + Children[3] = PDEF_PTR(73); + + ParamDefTable[69].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + + ParamDefTable[74].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=85, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(86); + + ParamDefTable[85].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=86, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + Children[5] = PDEF_PTR(92); + Children[6] = PDEF_PTR(93); + Children[7] = PDEF_PTR(94); + Children[8] = PDEF_PTR(95); + + ParamDefTable[86].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=96, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(118); + Children[2] = PDEF_PTR(119); + Children[3] = PDEF_PTR(125); + Children[4] = PDEF_PTR(126); + Children[5] = PDEF_PTR(127); + Children[6] = PDEF_PTR(128); + Children[7] = PDEF_PTR(129); + + ParamDefTable[96].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=97, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(99); + Children[2] = PDEF_PTR(100); + Children[3] = PDEF_PTR(101); + Children[4] = PDEF_PTR(102); + Children[5] = PDEF_PTR(103); + Children[6] = PDEF_PTR(104); + Children[7] = PDEF_PTR(105); + Children[8] = PDEF_PTR(106); + Children[9] = PDEF_PTR(107); + Children[10] = PDEF_PTR(108); + Children[11] = PDEF_PTR(109); + Children[12] = PDEF_PTR(110); + Children[13] = PDEF_PTR(111); + Children[14] = PDEF_PTR(112); + Children[15] = PDEF_PTR(113); + Children[16] = PDEF_PTR(114); + Children[17] = PDEF_PTR(115); + Children[18] = PDEF_PTR(116); + Children[19] = PDEF_PTR(117); + + ParamDefTable[97].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=119, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(120); + Children[1] = PDEF_PTR(121); + Children[2] = PDEF_PTR(122); + Children[3] = PDEF_PTR(123); + Children[4] = PDEF_PTR(124); + + ParamDefTable[119].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=130, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(131); + Children[1] = PDEF_PTR(139); + Children[2] = PDEF_PTR(140); + Children[3] = PDEF_PTR(141); + Children[4] = PDEF_PTR(142); + Children[5] = PDEF_PTR(155); + Children[6] = PDEF_PTR(156); + Children[7] = PDEF_PTR(157); + Children[8] = PDEF_PTR(158); + + ParamDefTable[130].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=131, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(132); + Children[1] = PDEF_PTR(133); + Children[2] = PDEF_PTR(134); + Children[3] = PDEF_PTR(135); + Children[4] = PDEF_PTR(136); + Children[5] = PDEF_PTR(137); + Children[6] = PDEF_PTR(138); + + ParamDefTable[131].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(143); + Children[1] = PDEF_PTR(144); + Children[2] = PDEF_PTR(145); + Children[3] = PDEF_PTR(146); + Children[4] = PDEF_PTR(147); + Children[5] = PDEF_PTR(148); + Children[6] = PDEF_PTR(149); + Children[7] = PDEF_PTR(150); + Children[8] = PDEF_PTR(151); + Children[9] = PDEF_PTR(152); + Children[10] = PDEF_PTR(153); + Children[11] = PDEF_PTR(154); + + ParamDefTable[142].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=159, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(160); + Children[1] = PDEF_PTR(165); + Children[2] = PDEF_PTR(166); + Children[3] = PDEF_PTR(167); + Children[4] = PDEF_PTR(168); + Children[5] = PDEF_PTR(169); + Children[6] = PDEF_PTR(170); + Children[7] = PDEF_PTR(171); + Children[8] = PDEF_PTR(172); + Children[9] = PDEF_PTR(173); + Children[10] = PDEF_PTR(174); + Children[11] = PDEF_PTR(175); + + ParamDefTable[159].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=160, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(161); + Children[1] = PDEF_PTR(162); + Children[2] = PDEF_PTR(163); + Children[3] = PDEF_PTR(164); + + ParamDefTable[160].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(184); + Children[2] = PDEF_PTR(189); + Children[3] = PDEF_PTR(194); + Children[4] = PDEF_PTR(195); + Children[5] = PDEF_PTR(196); + Children[6] = PDEF_PTR(197); + Children[7] = PDEF_PTR(198); + + ParamDefTable[176].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=177, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(178); + Children[1] = PDEF_PTR(179); + Children[2] = PDEF_PTR(180); + Children[3] = PDEF_PTR(181); + Children[4] = PDEF_PTR(182); + Children[5] = PDEF_PTR(183); + + ParamDefTable[177].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(185); + Children[1] = PDEF_PTR(186); + Children[2] = PDEF_PTR(187); + Children[3] = PDEF_PTR(188); + + ParamDefTable[184].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(190); + Children[1] = PDEF_PTR(191); + Children[2] = PDEF_PTR(192); + Children[3] = PDEF_PTR(193); + + ParamDefTable[189].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(200); + Children[1] = PDEF_PTR(204); + Children[2] = PDEF_PTR(205); + Children[3] = PDEF_PTR(206); + Children[4] = PDEF_PTR(207); + Children[5] = PDEF_PTR(223); + Children[6] = PDEF_PTR(224); + + ParamDefTable[199].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=200, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(201); + Children[1] = PDEF_PTR(202); + Children[2] = PDEF_PTR(203); + + ParamDefTable[200].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(208); + Children[1] = PDEF_PTR(209); + Children[2] = PDEF_PTR(210); + Children[3] = PDEF_PTR(211); + Children[4] = PDEF_PTR(212); + Children[5] = PDEF_PTR(213); + Children[6] = PDEF_PTR(214); + Children[7] = PDEF_PTR(215); + Children[8] = PDEF_PTR(216); + Children[9] = PDEF_PTR(217); + Children[10] = PDEF_PTR(218); + Children[11] = PDEF_PTR(219); + Children[12] = PDEF_PTR(220); + Children[13] = PDEF_PTR(221); + Children[14] = PDEF_PTR(222); + + ParamDefTable[207].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=225, longName="p3BodyDescTemplate" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(226); + Children[1] = PDEF_PTR(227); + Children[2] = PDEF_PTR(230); + Children[3] = PDEF_PTR(231); + Children[4] = PDEF_PTR(232); + Children[5] = PDEF_PTR(233); + Children[6] = PDEF_PTR(234); + Children[7] = PDEF_PTR(235); + Children[8] = PDEF_PTR(236); + Children[9] = PDEF_PTR(237); + Children[10] = PDEF_PTR(238); + + ParamDefTable[225].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=227, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(228); + Children[1] = PDEF_PTR(229); + + ParamDefTable[227].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=239, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(240); + Children[1] = PDEF_PTR(241); + Children[2] = PDEF_PTR(242); + + ParamDefTable[239].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=243, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(244); + Children[1] = PDEF_PTR(245); + Children[2] = PDEF_PTR(246); + Children[3] = PDEF_PTR(247); + Children[4] = PDEF_PTR(251); + Children[5] = PDEF_PTR(255); + Children[6] = PDEF_PTR(256); + Children[7] = PDEF_PTR(257); + Children[8] = PDEF_PTR(258); + Children[9] = PDEF_PTR(259); + Children[10] = PDEF_PTR(260); + Children[11] = PDEF_PTR(266); + + ParamDefTable[243].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(248); + Children[1] = PDEF_PTR(249); + Children[2] = PDEF_PTR(250); + + ParamDefTable[247].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(252); + Children[1] = PDEF_PTR(253); + Children[2] = PDEF_PTR(254); + + ParamDefTable[251].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(261); + Children[1] = PDEF_PTR(262); + Children[2] = PDEF_PTR(263); + Children[3] = PDEF_PTR(264); + Children[4] = PDEF_PTR(265); + + ParamDefTable[260].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=267, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(268); + + ParamDefTable[267].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=268, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(269); + Children[1] = PDEF_PTR(270); + Children[2] = PDEF_PTR(271); + Children[3] = PDEF_PTR(272); + Children[4] = PDEF_PTR(276); + Children[5] = PDEF_PTR(280); + Children[6] = PDEF_PTR(281); + Children[7] = PDEF_PTR(282); + Children[8] = PDEF_PTR(283); + Children[9] = PDEF_PTR(284); + Children[10] = PDEF_PTR(285); + Children[11] = PDEF_PTR(291); + + ParamDefTable[268].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=272, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(273); + Children[1] = PDEF_PTR(274); + Children[2] = PDEF_PTR(275); + + ParamDefTable[272].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(277); + Children[1] = PDEF_PTR(278); + Children[2] = PDEF_PTR(279); + + ParamDefTable[276].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=285, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(286); + Children[1] = PDEF_PTR(287); + Children[2] = PDEF_PTR(288); + Children[3] = PDEF_PTR(289); + Children[4] = PDEF_PTR(290); + + ParamDefTable[285].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + globalPose = physx::PxTransform(physx::PxIdentity); + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + performDetailedOverlapTestForExtendedStructures = bool(true); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + destructibleParameters.alwaysDrawScatterMesh = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.velocityIterationCount = uint32_t(1); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + deleteChunksLeavingUserDefinedBB = bool(false); + deleteChunksEnteringUserDefinedBB = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam::initReferences(void) +{ +} + +void DestructibleActorParam::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorState.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorState.cpp old mode 100644 new mode 100755 index 21cb013..4d540e5 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorState.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleActorState.cpp @@ -1,2137 +1,2137 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorState.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructibleActorStateNS; - -const char* const DestructibleActorStateFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 69; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 66, 67, 68, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 28, 29, 30, 31, 37, 62, 63, 64, 65, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 36, - 38, 39, 40, 41, 42, 43, 44, 50, 55, 45, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, - 59, 60, 61, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(8), 24 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(32), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(39), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(44), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(53), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(58), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(62), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks -}; - - -bool DestructibleActorState::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorState::mBuiltFlagMutex; - -DestructibleActorState::DestructibleActorState(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorStateFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorState::~DestructibleActorState() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorState::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorState(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState::getParameterDefinitionTree(void) const -{ - DestructibleActorState* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorState::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorState::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorState::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorState::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorState::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="lod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("lod", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Destructible actor LOD.", true); - HintTable[1].init("shortDescription", "Destructible actor LOD", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="forceLod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("forceLod", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); - HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); - HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[38].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.alwaysDrawScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); - HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="actorParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("actorParameters", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The destructible actor parameters.", true); - HintTable[2].init("shortDescription", "The destructible actor parameters", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorParam" }; - ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="actorChunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("actorChunks", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; - ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(66); - Children[6] = PDEF_PTR(67); - Children[7] = PDEF_PTR(68); - - ParamDefTable[0].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=5, longName="destructibleParameters" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - Children[8] = PDEF_PTR(14); - Children[9] = PDEF_PTR(15); - Children[10] = PDEF_PTR(16); - Children[11] = PDEF_PTR(17); - Children[12] = PDEF_PTR(18); - Children[13] = PDEF_PTR(19); - Children[14] = PDEF_PTR(20); - Children[15] = PDEF_PTR(28); - Children[16] = PDEF_PTR(29); - Children[17] = PDEF_PTR(30); - Children[18] = PDEF_PTR(31); - Children[19] = PDEF_PTR(37); - Children[20] = PDEF_PTR(62); - Children[21] = PDEF_PTR(63); - Children[22] = PDEF_PTR(64); - Children[23] = PDEF_PTR(65); - - ParamDefTable[5].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=20, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(21); - Children[1] = PDEF_PTR(22); - Children[2] = PDEF_PTR(23); - Children[3] = PDEF_PTR(24); - Children[4] = PDEF_PTR(25); - Children[5] = PDEF_PTR(26); - Children[6] = PDEF_PTR(27); - - ParamDefTable[20].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - Children[3] = PDEF_PTR(35); - Children[4] = PDEF_PTR(36); - - ParamDefTable[31].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=37, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(38); - Children[1] = PDEF_PTR(39); - Children[2] = PDEF_PTR(40); - Children[3] = PDEF_PTR(41); - Children[4] = PDEF_PTR(42); - Children[5] = PDEF_PTR(43); - Children[6] = PDEF_PTR(44); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(55); - - ParamDefTable[37].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - - ParamDefTable[44].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - - ParamDefTable[50].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - - ParamDefTable[55].setChildren(Children, 6); - } - - mBuiltFlag = true; - -} -void DestructibleActorState::initStrings(void) -{ -} - -void DestructibleActorState::initDynamicArrays(void) -{ -} - -void DestructibleActorState::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - enableCrumbleEmitter = bool(true); - enableDustEmitter = bool(true); - lod = uint32_t(0); - forceLod = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - destructibleParameters.alwaysDrawScatterMesh = bool(false); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorState::initReferences(void) -{ - actorParameters = NULL; - - actorChunks = NULL; - -} - -void DestructibleActorState::freeDynamicArrays(void) -{ -} - -void DestructibleActorState::freeStrings(void) -{ -} - -void DestructibleActorState::freeReferences(void) -{ - if (actorParameters) - { - actorParameters->destroy(); - } - - if (actorChunks) - { - actorChunks->destroy(); - } - -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorState.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructibleActorStateNS; + +const char* const DestructibleActorStateFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 69; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 66, 67, 68, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 28, 29, 30, 31, 37, 62, 63, 64, 65, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 36, + 38, 39, 40, 41, 42, 43, 44, 50, 55, 45, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, + 59, 60, 61, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(8), 24 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(32), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(39), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(44), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(53), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(58), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(62), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks +}; + + +bool DestructibleActorState::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorState::mBuiltFlagMutex; + +DestructibleActorState::DestructibleActorState(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorStateFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorState::~DestructibleActorState() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorState::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorState(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState::getParameterDefinitionTree(void) const +{ + DestructibleActorState* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorState::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorState::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorState::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorState::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorState::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="lod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("lod", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Destructible actor LOD.", true); + HintTable[1].init("shortDescription", "Destructible actor LOD", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="forceLod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("forceLod", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); + HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); + HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[38].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.alwaysDrawScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); + HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="actorParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("actorParameters", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The destructible actor parameters.", true); + HintTable[2].init("shortDescription", "The destructible actor parameters", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorParam" }; + ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="actorChunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("actorChunks", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; + ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(66); + Children[6] = PDEF_PTR(67); + Children[7] = PDEF_PTR(68); + + ParamDefTable[0].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=5, longName="destructibleParameters" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + Children[8] = PDEF_PTR(14); + Children[9] = PDEF_PTR(15); + Children[10] = PDEF_PTR(16); + Children[11] = PDEF_PTR(17); + Children[12] = PDEF_PTR(18); + Children[13] = PDEF_PTR(19); + Children[14] = PDEF_PTR(20); + Children[15] = PDEF_PTR(28); + Children[16] = PDEF_PTR(29); + Children[17] = PDEF_PTR(30); + Children[18] = PDEF_PTR(31); + Children[19] = PDEF_PTR(37); + Children[20] = PDEF_PTR(62); + Children[21] = PDEF_PTR(63); + Children[22] = PDEF_PTR(64); + Children[23] = PDEF_PTR(65); + + ParamDefTable[5].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=20, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(21); + Children[1] = PDEF_PTR(22); + Children[2] = PDEF_PTR(23); + Children[3] = PDEF_PTR(24); + Children[4] = PDEF_PTR(25); + Children[5] = PDEF_PTR(26); + Children[6] = PDEF_PTR(27); + + ParamDefTable[20].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + Children[3] = PDEF_PTR(35); + Children[4] = PDEF_PTR(36); + + ParamDefTable[31].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=37, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(38); + Children[1] = PDEF_PTR(39); + Children[2] = PDEF_PTR(40); + Children[3] = PDEF_PTR(41); + Children[4] = PDEF_PTR(42); + Children[5] = PDEF_PTR(43); + Children[6] = PDEF_PTR(44); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(55); + + ParamDefTable[37].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + + ParamDefTable[44].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + + ParamDefTable[50].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + + ParamDefTable[55].setChildren(Children, 6); + } + + mBuiltFlag = true; + +} +void DestructibleActorState::initStrings(void) +{ +} + +void DestructibleActorState::initDynamicArrays(void) +{ +} + +void DestructibleActorState::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + enableCrumbleEmitter = bool(true); + enableDustEmitter = bool(true); + lod = uint32_t(0); + forceLod = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + destructibleParameters.alwaysDrawScatterMesh = bool(false); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorState::initReferences(void) +{ + actorParameters = NULL; + + actorChunks = NULL; + +} + +void DestructibleActorState::freeDynamicArrays(void) +{ +} + +void DestructibleActorState::freeStrings(void) +{ +} + +void DestructibleActorState::freeReferences(void) +{ + if (actorParameters) + { + actorParameters->destroy(); + } + + if (actorChunks) + { + actorChunks->destroy(); + } + +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetCollisionDataSet.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetCollisionDataSet.cpp old mode 100644 new mode 100755 index 3b8f208..f882cbc --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetCollisionDataSet.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetCollisionDataSet.cpp @@ -1,525 +1,525 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetCollisionDataSet.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructibleAssetCollisionDataSetNS; - -const char* const DestructibleAssetCollisionDataSetFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 8; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 6, 5, 7, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->assetName), NULL, 0 }, // assetName - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingPlatform), NULL, 0 }, // cookingPlatform - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingVersionNum), NULL, 0 }, // cookingVersionNum - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scales), CHILDREN(5), 1 }, // scales - { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // scales[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreamsAtScale), CHILDREN(6), 1 }, // meshCookedCollisionStreamsAtScale - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreamsAtScale[] -}; - - -bool DestructibleAssetCollisionDataSet::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetCollisionDataSet::mBuiltFlagMutex; - -DestructibleAssetCollisionDataSet::DestructibleAssetCollisionDataSet(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetCollisionDataSetFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetCollisionDataSet::~DestructibleAssetCollisionDataSet() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetCollisionDataSet::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetCollisionDataSet(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet::getParameterDefinitionTree(void) const -{ - DestructibleAssetCollisionDataSet* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetCollisionDataSet::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetCollisionDataSet::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetCollisionDataSet::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - meshCookedCollisionStreamsAtScale (not an array of structs) */ - -void DestructibleAssetCollisionDataSet::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetCollisionDataSet::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="assetName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("assetName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the asset for which convex hulls are cooked.\n A convex hull may be cooked for each chunk in the asset, for each scale in the\n scales array.", true); - HintTable[1].init("shortDescription", "The name of the asset for which convex hulls are cooked", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="cookingPlatform" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("cookingPlatform", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The cooking platform for convex cooking. Currently unused.", true); - HintTable[1].init("shortDescription", "Currently unused", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="cookingVersionNum" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("cookingVersionNum", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A version number for convex cooking. Currently unused.", true); - HintTable[1].init("shortDescription", "Currently unused", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scales" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scales", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="scales[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("scales", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; - ParamDefTable[6].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="meshCookedCollisionStreamsAtScale[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; - ParamDefTable[7].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(6); - - ParamDefTable[0].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=4, longName="scales" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(7); - - ParamDefTable[6].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetCollisionDataSet::initStrings(void) -{ - assetName.isAllocated = true; - assetName.buf = NULL; -} - -void DestructibleAssetCollisionDataSet::initDynamicArrays(void) -{ - scales.buf = NULL; - scales.isAllocated = true; - scales.elementSize = sizeof(physx::PxVec3); - scales.arraySizes[0] = 0; - meshCookedCollisionStreamsAtScale.buf = NULL; - meshCookedCollisionStreamsAtScale.isAllocated = true; - meshCookedCollisionStreamsAtScale.elementSize = sizeof(NvParameterized::Interface*); - meshCookedCollisionStreamsAtScale.arraySizes[0] = 0; -} - -void DestructibleAssetCollisionDataSet::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - cookingPlatform = uint32_t(UINT32_MAX); - cookingVersionNum = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetCollisionDataSet::initReferences(void) -{ -} - -void DestructibleAssetCollisionDataSet::freeDynamicArrays(void) -{ - if (scales.isAllocated && scales.buf) - { - mParameterizedTraits->free(scales.buf); - } - if (meshCookedCollisionStreamsAtScale.isAllocated && meshCookedCollisionStreamsAtScale.buf) - { - mParameterizedTraits->free(meshCookedCollisionStreamsAtScale.buf); - } -} - -void DestructibleAssetCollisionDataSet::freeStrings(void) -{ - - if (assetName.isAllocated && assetName.buf) - { - mParameterizedTraits->strfree((char*)assetName.buf); - } -} - -void DestructibleAssetCollisionDataSet::freeReferences(void) -{ - - for (int i = 0; i < meshCookedCollisionStreamsAtScale.arraySizes[0]; ++i) - { - if (meshCookedCollisionStreamsAtScale.buf[i]) - { - meshCookedCollisionStreamsAtScale.buf[i]->destroy(); - } - } -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetCollisionDataSet.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructibleAssetCollisionDataSetNS; + +const char* const DestructibleAssetCollisionDataSetFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 8; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 6, 5, 7, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->assetName), NULL, 0 }, // assetName + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingPlatform), NULL, 0 }, // cookingPlatform + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingVersionNum), NULL, 0 }, // cookingVersionNum + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scales), CHILDREN(5), 1 }, // scales + { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // scales[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreamsAtScale), CHILDREN(6), 1 }, // meshCookedCollisionStreamsAtScale + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreamsAtScale[] +}; + + +bool DestructibleAssetCollisionDataSet::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetCollisionDataSet::mBuiltFlagMutex; + +DestructibleAssetCollisionDataSet::DestructibleAssetCollisionDataSet(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetCollisionDataSetFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetCollisionDataSet::~DestructibleAssetCollisionDataSet() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetCollisionDataSet::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetCollisionDataSet(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet::getParameterDefinitionTree(void) const +{ + DestructibleAssetCollisionDataSet* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetCollisionDataSet::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetCollisionDataSet::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetCollisionDataSet::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - meshCookedCollisionStreamsAtScale (not an array of structs) */ + +void DestructibleAssetCollisionDataSet::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetCollisionDataSet::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="assetName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("assetName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the asset for which convex hulls are cooked.\n A convex hull may be cooked for each chunk in the asset, for each scale in the\n scales array.", true); + HintTable[1].init("shortDescription", "The name of the asset for which convex hulls are cooked", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="cookingPlatform" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("cookingPlatform", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The cooking platform for convex cooking. Currently unused.", true); + HintTable[1].init("shortDescription", "Currently unused", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="cookingVersionNum" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("cookingVersionNum", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A version number for convex cooking. Currently unused.", true); + HintTable[1].init("shortDescription", "Currently unused", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scales" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scales", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="scales[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("scales", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; + ParamDefTable[6].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="meshCookedCollisionStreamsAtScale[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; + ParamDefTable[7].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(6); + + ParamDefTable[0].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=4, longName="scales" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(7); + + ParamDefTable[6].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetCollisionDataSet::initStrings(void) +{ + assetName.isAllocated = true; + assetName.buf = NULL; +} + +void DestructibleAssetCollisionDataSet::initDynamicArrays(void) +{ + scales.buf = NULL; + scales.isAllocated = true; + scales.elementSize = sizeof(physx::PxVec3); + scales.arraySizes[0] = 0; + meshCookedCollisionStreamsAtScale.buf = NULL; + meshCookedCollisionStreamsAtScale.isAllocated = true; + meshCookedCollisionStreamsAtScale.elementSize = sizeof(NvParameterized::Interface*); + meshCookedCollisionStreamsAtScale.arraySizes[0] = 0; +} + +void DestructibleAssetCollisionDataSet::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + cookingPlatform = uint32_t(UINT32_MAX); + cookingVersionNum = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetCollisionDataSet::initReferences(void) +{ +} + +void DestructibleAssetCollisionDataSet::freeDynamicArrays(void) +{ + if (scales.isAllocated && scales.buf) + { + mParameterizedTraits->free(scales.buf); + } + if (meshCookedCollisionStreamsAtScale.isAllocated && meshCookedCollisionStreamsAtScale.buf) + { + mParameterizedTraits->free(meshCookedCollisionStreamsAtScale.buf); + } +} + +void DestructibleAssetCollisionDataSet::freeStrings(void) +{ + + if (assetName.isAllocated && assetName.buf) + { + mParameterizedTraits->strfree((char*)assetName.buf); + } +} + +void DestructibleAssetCollisionDataSet::freeReferences(void) +{ + + for (int i = 0; i < meshCookedCollisionStreamsAtScale.arraySizes[0]; ++i) + { + if (meshCookedCollisionStreamsAtScale.buf[i]) + { + meshCookedCollisionStreamsAtScale.buf[i]->destroy(); + } + } +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetParameters.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetParameters.cpp old mode 100644 new mode 100755 index a5792a4..f8db8a9 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleAssetParameters.cpp @@ -1,4829 +1,4829 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructibleAssetParametersNS; - -const char* const DestructibleAssetParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 160; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 120, 131, 132, 133, 134, 135, 136, 141, 143, - 144, 146, 148, 149, 150, 151, 152, 154, 156, 158, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, - 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, - 119, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, - 104, 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 137, 138, 139, 140, 142, 145, 147, - 153, 155, 157, 159, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 24 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(102), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(109), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(114), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(123), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(128), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(132), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(138), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(139), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(148), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(149), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(152), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(153), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(154), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(155), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(156), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(157), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(158), 1 }, // scatterMeshTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // scatterMeshTransforms[] -}; - - -bool DestructibleAssetParameters::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters::mBuiltFlagMutex; - -DestructibleAssetParameters::DestructibleAssetParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters::~DestructibleAssetParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the ApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="destructibleParameters.alwaysDrawScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); - HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[134].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[145].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[155].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("scatterMeshTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(42); - Children[7] = PDEF_PTR(43); - Children[8] = PDEF_PTR(55); - Children[9] = PDEF_PTR(57); - Children[10] = PDEF_PTR(59); - Children[11] = PDEF_PTR(120); - Children[12] = PDEF_PTR(131); - Children[13] = PDEF_PTR(132); - Children[14] = PDEF_PTR(133); - Children[15] = PDEF_PTR(134); - Children[16] = PDEF_PTR(135); - Children[17] = PDEF_PTR(136); - Children[18] = PDEF_PTR(141); - Children[19] = PDEF_PTR(143); - Children[20] = PDEF_PTR(144); - Children[21] = PDEF_PTR(146); - Children[22] = PDEF_PTR(148); - Children[23] = PDEF_PTR(149); - Children[24] = PDEF_PTR(150); - Children[25] = PDEF_PTR(151); - Children[26] = PDEF_PTR(152); - Children[27] = PDEF_PTR(154); - Children[28] = PDEF_PTR(156); - Children[29] = PDEF_PTR(158); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - - ParamDefTable[5].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(24); - - ParamDefTable[23].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(32); - Children[5] = PDEF_PTR(36); - Children[6] = PDEF_PTR(37); - Children[7] = PDEF_PTR(38); - Children[8] = PDEF_PTR(39); - Children[9] = PDEF_PTR(40); - Children[10] = PDEF_PTR(41); - - ParamDefTable[24].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(29); - Children[1] = PDEF_PTR(30); - Children[2] = PDEF_PTR(31); - - ParamDefTable[28].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - - ParamDefTable[32].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=43, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(44); - - ParamDefTable[43].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=44, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - Children[5] = PDEF_PTR(50); - Children[6] = PDEF_PTR(51); - Children[7] = PDEF_PTR(52); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(54); - - ParamDefTable[44].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(58); - - ParamDefTable[57].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=59, longName="destructibleParameters" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - Children[8] = PDEF_PTR(68); - Children[9] = PDEF_PTR(69); - Children[10] = PDEF_PTR(70); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(82); - Children[16] = PDEF_PTR(83); - Children[17] = PDEF_PTR(84); - Children[18] = PDEF_PTR(85); - Children[19] = PDEF_PTR(91); - Children[20] = PDEF_PTR(116); - Children[21] = PDEF_PTR(117); - Children[22] = PDEF_PTR(118); - Children[23] = PDEF_PTR(119); - - ParamDefTable[59].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - Children[6] = PDEF_PTR(81); - - ParamDefTable[74].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - - ParamDefTable[85].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(92); - Children[1] = PDEF_PTR(93); - Children[2] = PDEF_PTR(94); - Children[3] = PDEF_PTR(95); - Children[4] = PDEF_PTR(96); - Children[5] = PDEF_PTR(97); - Children[6] = PDEF_PTR(98); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(109); - - ParamDefTable[91].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - - ParamDefTable[98].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - - ParamDefTable[104].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - - ParamDefTable[109].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=120, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(121); - - ParamDefTable[120].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=121, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(122); - Children[1] = PDEF_PTR(123); - Children[2] = PDEF_PTR(124); - Children[3] = PDEF_PTR(125); - Children[4] = PDEF_PTR(126); - Children[5] = PDEF_PTR(127); - Children[6] = PDEF_PTR(128); - Children[7] = PDEF_PTR(129); - Children[8] = PDEF_PTR(130); - - ParamDefTable[121].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(137); - - ParamDefTable[136].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=137, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(138); - Children[1] = PDEF_PTR(139); - Children[2] = PDEF_PTR(140); - - ParamDefTable[137].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=141, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(142); - - ParamDefTable[141].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=144, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(145); - - ParamDefTable[144].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=146, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(147); - - ParamDefTable[146].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=152, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(153); - - ParamDefTable[152].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=154, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(155); - - ParamDefTable[154].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=156, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(157); - - ParamDefTable[156].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=158, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(159); - - ParamDefTable[158].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(physx::PxMat44); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - destructibleParameters.alwaysDrawScatterMesh = bool(false); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructibleAssetParametersNS; + +const char* const DestructibleAssetParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 160; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 120, 131, 132, 133, 134, 135, 136, 141, 143, + 144, 146, 148, 149, 150, 151, 152, 154, 156, 158, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, + 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, + 119, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, + 104, 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 137, 138, 139, 140, 142, 145, 147, + 153, 155, 157, 159, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 24 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(102), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(109), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(114), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(123), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(128), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(132), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(138), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(139), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(148), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(149), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(152), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(153), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(154), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(155), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(156), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(157), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(158), 1 }, // scatterMeshTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // scatterMeshTransforms[] +}; + + +bool DestructibleAssetParameters::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters::mBuiltFlagMutex; + +DestructibleAssetParameters::DestructibleAssetParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters::~DestructibleAssetParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the ApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="destructibleParameters.alwaysDrawScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); + HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[134].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[145].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[155].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("scatterMeshTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(42); + Children[7] = PDEF_PTR(43); + Children[8] = PDEF_PTR(55); + Children[9] = PDEF_PTR(57); + Children[10] = PDEF_PTR(59); + Children[11] = PDEF_PTR(120); + Children[12] = PDEF_PTR(131); + Children[13] = PDEF_PTR(132); + Children[14] = PDEF_PTR(133); + Children[15] = PDEF_PTR(134); + Children[16] = PDEF_PTR(135); + Children[17] = PDEF_PTR(136); + Children[18] = PDEF_PTR(141); + Children[19] = PDEF_PTR(143); + Children[20] = PDEF_PTR(144); + Children[21] = PDEF_PTR(146); + Children[22] = PDEF_PTR(148); + Children[23] = PDEF_PTR(149); + Children[24] = PDEF_PTR(150); + Children[25] = PDEF_PTR(151); + Children[26] = PDEF_PTR(152); + Children[27] = PDEF_PTR(154); + Children[28] = PDEF_PTR(156); + Children[29] = PDEF_PTR(158); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + + ParamDefTable[5].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(24); + + ParamDefTable[23].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(32); + Children[5] = PDEF_PTR(36); + Children[6] = PDEF_PTR(37); + Children[7] = PDEF_PTR(38); + Children[8] = PDEF_PTR(39); + Children[9] = PDEF_PTR(40); + Children[10] = PDEF_PTR(41); + + ParamDefTable[24].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(29); + Children[1] = PDEF_PTR(30); + Children[2] = PDEF_PTR(31); + + ParamDefTable[28].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + + ParamDefTable[32].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=43, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(44); + + ParamDefTable[43].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=44, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + Children[5] = PDEF_PTR(50); + Children[6] = PDEF_PTR(51); + Children[7] = PDEF_PTR(52); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(54); + + ParamDefTable[44].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(58); + + ParamDefTable[57].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=59, longName="destructibleParameters" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + Children[8] = PDEF_PTR(68); + Children[9] = PDEF_PTR(69); + Children[10] = PDEF_PTR(70); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(82); + Children[16] = PDEF_PTR(83); + Children[17] = PDEF_PTR(84); + Children[18] = PDEF_PTR(85); + Children[19] = PDEF_PTR(91); + Children[20] = PDEF_PTR(116); + Children[21] = PDEF_PTR(117); + Children[22] = PDEF_PTR(118); + Children[23] = PDEF_PTR(119); + + ParamDefTable[59].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + Children[6] = PDEF_PTR(81); + + ParamDefTable[74].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + + ParamDefTable[85].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(92); + Children[1] = PDEF_PTR(93); + Children[2] = PDEF_PTR(94); + Children[3] = PDEF_PTR(95); + Children[4] = PDEF_PTR(96); + Children[5] = PDEF_PTR(97); + Children[6] = PDEF_PTR(98); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(109); + + ParamDefTable[91].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + + ParamDefTable[98].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + + ParamDefTable[104].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + + ParamDefTable[109].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=120, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(121); + + ParamDefTable[120].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=121, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(122); + Children[1] = PDEF_PTR(123); + Children[2] = PDEF_PTR(124); + Children[3] = PDEF_PTR(125); + Children[4] = PDEF_PTR(126); + Children[5] = PDEF_PTR(127); + Children[6] = PDEF_PTR(128); + Children[7] = PDEF_PTR(129); + Children[8] = PDEF_PTR(130); + + ParamDefTable[121].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(137); + + ParamDefTable[136].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=137, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(138); + Children[1] = PDEF_PTR(139); + Children[2] = PDEF_PTR(140); + + ParamDefTable[137].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=141, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(142); + + ParamDefTable[141].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=144, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(145); + + ParamDefTable[144].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=146, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(147); + + ParamDefTable[146].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=152, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(153); + + ParamDefTable[152].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=154, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(155); + + ParamDefTable[154].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=156, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(157); + + ParamDefTable[156].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=158, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(159); + + ParamDefTable[158].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(physx::PxMat44); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + destructibleParameters.alwaysDrawScatterMesh = bool(false); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleDebugRenderParams.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleDebugRenderParams.cpp old mode 100644 new mode 100755 index 244ecb9..453d18f --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleDebugRenderParams.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleDebugRenderParams.cpp @@ -1,508 +1,508 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleDebugRenderParams.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructibleDebugRenderParamsNS; - -const char* const DestructibleDebugRenderParamsFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 10; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_BOUNDS), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_BOUNDS - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_SUPPORT), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_SUPPORT - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_POSE - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_NAME - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE -}; - - -bool DestructibleDebugRenderParams::mBuiltFlag = false; -NvParameterized::MutexType DestructibleDebugRenderParams::mBuiltFlagMutex; - -DestructibleDebugRenderParams::DestructibleDebugRenderParams(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleDebugRenderParamsFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleDebugRenderParams::~DestructibleDebugRenderParams() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleDebugRenderParams::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleDebugRenderParams(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams::getParameterDefinitionTree(void) const -{ - DestructibleDebugRenderParams* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleDebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleDebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleDebugRenderParams::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleDebugRenderParams::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleDebugRenderParams::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="VISUALIZE_DESTRUCTIBLE_ACTOR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Module switch - whether or not to visualize destruction.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="VISUALIZE_DESTRUCTIBLE_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_BOUNDS", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the axis-aligned bounding box which contains all chunks for each destructible actor.", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="VISUALIZE_DESTRUCTIBLE_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_SUPPORT", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the support graph as lines and support chunks' bounding boxes.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_POSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for unfractured destructibles.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_POSE is true, the maximum object-to-eye distance to draw the chunk poses.", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_NAME" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_NAME", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the name of each destructible.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_NAME is true, the maximum object-to-eye distance to draw the actor names.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for each chunk island.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE is true, the maximum object-to-eye distance to draw the fragment poses", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - - ParamDefTable[0].setChildren(Children, 9); - } - - mBuiltFlag = true; - -} -void DestructibleDebugRenderParams::initStrings(void) -{ -} - -void DestructibleDebugRenderParams::initDynamicArrays(void) -{ -} - -void DestructibleDebugRenderParams::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - VISUALIZE_DESTRUCTIBLE_ACTOR = bool(true); - VISUALIZE_DESTRUCTIBLE_BOUNDS = float(0); - VISUALIZE_DESTRUCTIBLE_SUPPORT = float(0); - VISUALIZE_DESTRUCTIBLE_ACTOR_POSE = bool(true); - THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE = float(3.402823466e+038); - VISUALIZE_DESTRUCTIBLE_ACTOR_NAME = bool(true); - THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME = float(3.402823466e+038); - VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE = bool(true); - THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE = float(3.402823466e+038); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleDebugRenderParams::initReferences(void) -{ -} - -void DestructibleDebugRenderParams::freeDynamicArrays(void) -{ -} - -void DestructibleDebugRenderParams::freeStrings(void) -{ -} - -void DestructibleDebugRenderParams::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleDebugRenderParams.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructibleDebugRenderParamsNS; + +const char* const DestructibleDebugRenderParamsFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 10; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_BOUNDS), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_BOUNDS + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_SUPPORT), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_SUPPORT + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_POSE + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_NAME + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE +}; + + +bool DestructibleDebugRenderParams::mBuiltFlag = false; +NvParameterized::MutexType DestructibleDebugRenderParams::mBuiltFlagMutex; + +DestructibleDebugRenderParams::DestructibleDebugRenderParams(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleDebugRenderParamsFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleDebugRenderParams::~DestructibleDebugRenderParams() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleDebugRenderParams::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleDebugRenderParams(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams::getParameterDefinitionTree(void) const +{ + DestructibleDebugRenderParams* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleDebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleDebugRenderParams::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleDebugRenderParams::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleDebugRenderParams::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleDebugRenderParams::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="VISUALIZE_DESTRUCTIBLE_ACTOR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Module switch - whether or not to visualize destruction.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="VISUALIZE_DESTRUCTIBLE_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_BOUNDS", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the axis-aligned bounding box which contains all chunks for each destructible actor.", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="VISUALIZE_DESTRUCTIBLE_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_SUPPORT", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the support graph as lines and support chunks' bounding boxes.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_POSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for unfractured destructibles.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_POSE is true, the maximum object-to-eye distance to draw the chunk poses.", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_NAME" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_NAME", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the name of each destructible.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_NAME is true, the maximum object-to-eye distance to draw the actor names.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for each chunk island.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE is true, the maximum object-to-eye distance to draw the fragment poses", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + + ParamDefTable[0].setChildren(Children, 9); + } + + mBuiltFlag = true; + +} +void DestructibleDebugRenderParams::initStrings(void) +{ +} + +void DestructibleDebugRenderParams::initDynamicArrays(void) +{ +} + +void DestructibleDebugRenderParams::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + VISUALIZE_DESTRUCTIBLE_ACTOR = bool(true); + VISUALIZE_DESTRUCTIBLE_BOUNDS = float(0); + VISUALIZE_DESTRUCTIBLE_SUPPORT = float(0); + VISUALIZE_DESTRUCTIBLE_ACTOR_POSE = bool(true); + THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE = float(3.402823466e+038); + VISUALIZE_DESTRUCTIBLE_ACTOR_NAME = bool(true); + THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME = float(3.402823466e+038); + VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE = bool(true); + THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE = float(3.402823466e+038); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleDebugRenderParams::initReferences(void) +{ +} + +void DestructibleDebugRenderParams::freeDynamicArrays(void) +{ +} + +void DestructibleDebugRenderParams::freeStrings(void) +{ +} + +void DestructibleDebugRenderParams::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleModuleParameters.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleModuleParameters.cpp old mode 100644 new mode 100755 index d280d16..1a9c603 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleModuleParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructibleModuleParameters.cpp @@ -1,505 +1,505 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleModuleParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructibleModuleParametersNS; - -const char* const DestructibleModuleParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 9; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent -}; - - -bool DestructibleModuleParameters::mBuiltFlag = false; -NvParameterized::MutexType DestructibleModuleParameters::mBuiltFlagMutex; - -DestructibleModuleParameters::DestructibleModuleParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleModuleParameters::~DestructibleModuleParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleModuleParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleModuleParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters::getParameterDefinitionTree(void) const -{ - DestructibleModuleParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleModuleParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleModuleParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleModuleParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleModuleParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleModuleParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "This class is used for initializing the ModuleDestructible.", true); - ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="maxDynamicChunkIslandCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The maximum number of dynamic PxActors that will be allowed to be active per ApexScene. A value of 0 (the default) is interpreted as no limit.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="sortFIFOByBenefit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="validBoundsPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and Destructible actor bounds. The final combined and passed bounds is used to cull PxActors", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="maxChunkSeparationLOD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("max", uint64_t(1), true); - HintTable[1].init("min", uint64_t(0), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); - HintTable[1].init("max", uint64_t(1), true); - HintTable[2].init("min", uint64_t(0), true); - HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="maxActorCreatesPerFrame" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="maxChunkDepthOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); - HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from DestructibleAssets (see DestructibleAsset).", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="massScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("massScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); - HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="scaledMassExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - - ParamDefTable[0].setChildren(Children, 8); - } - - mBuiltFlag = true; - -} -void DestructibleModuleParameters::initStrings(void) -{ -} - -void DestructibleModuleParameters::initDynamicArrays(void) -{ -} - -void DestructibleModuleParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - maxDynamicChunkIslandCount = uint32_t(0); - sortFIFOByBenefit = bool(false); - validBoundsPadding = float(0); - maxChunkSeparationLOD = float(0.5); - maxActorCreatesPerFrame = uint32_t(UINT32_MAX); - maxChunkDepthOffset = uint32_t(0); - massScale = float(1); - scaledMassExponent = float(0.5); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleModuleParameters::initReferences(void) -{ -} - -void DestructibleModuleParameters::freeDynamicArrays(void) -{ -} - -void DestructibleModuleParameters::freeStrings(void) -{ -} - -void DestructibleModuleParameters::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleModuleParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructibleModuleParametersNS; + +const char* const DestructibleModuleParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 9; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent +}; + + +bool DestructibleModuleParameters::mBuiltFlag = false; +NvParameterized::MutexType DestructibleModuleParameters::mBuiltFlagMutex; + +DestructibleModuleParameters::DestructibleModuleParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleModuleParameters::~DestructibleModuleParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleModuleParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleModuleParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters::getParameterDefinitionTree(void) const +{ + DestructibleModuleParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleModuleParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleModuleParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleModuleParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleModuleParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleModuleParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "This class is used for initializing the ModuleDestructible.", true); + ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="maxDynamicChunkIslandCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The maximum number of dynamic PxActors that will be allowed to be active per ApexScene. A value of 0 (the default) is interpreted as no limit.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="sortFIFOByBenefit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="validBoundsPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and Destructible actor bounds. The final combined and passed bounds is used to cull PxActors", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="maxChunkSeparationLOD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("max", uint64_t(1), true); + HintTable[1].init("min", uint64_t(0), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); + HintTable[1].init("max", uint64_t(1), true); + HintTable[2].init("min", uint64_t(0), true); + HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="maxActorCreatesPerFrame" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="maxChunkDepthOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); + HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from DestructibleAssets (see DestructibleAsset).", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="massScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("massScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); + HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="scaledMassExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + + ParamDefTable[0].setChildren(Children, 8); + } + + mBuiltFlag = true; + +} +void DestructibleModuleParameters::initStrings(void) +{ +} + +void DestructibleModuleParameters::initDynamicArrays(void) +{ +} + +void DestructibleModuleParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + maxDynamicChunkIslandCount = uint32_t(0); + sortFIFOByBenefit = bool(false); + validBoundsPadding = float(0); + maxChunkSeparationLOD = float(0.5); + maxActorCreatesPerFrame = uint32_t(UINT32_MAX); + maxChunkDepthOffset = uint32_t(0); + massScale = float(1); + scaledMassExponent = float(0.5); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleModuleParameters::initReferences(void) +{ +} + +void DestructibleModuleParameters::freeDynamicArrays(void) +{ +} + +void DestructibleModuleParameters::freeStrings(void) +{ +} + +void DestructibleModuleParameters::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructiblePreviewParam.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructiblePreviewParam.cpp old mode 100644 new mode 100755 index 21ddbc9..7ce8e99 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructiblePreviewParam.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/DestructiblePreviewParam.cpp @@ -1,572 +1,572 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructiblePreviewParam.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace DestructiblePreviewParamNS; - -const char* const DestructiblePreviewParamFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 10; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 7, 9, 6, 8, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, - { TYPE_MAT44, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->chunkDepth), NULL, 0 }, // chunkDepth - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->explodeAmount), NULL, 0 }, // explodeAmount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderUnexplodedChunksStatically), NULL, 0 }, // renderUnexplodedChunksStatically - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(7), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(8), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData -}; - - -bool DestructiblePreviewParam::mBuiltFlag = false; -NvParameterized::MutexType DestructiblePreviewParam::mBuiltFlagMutex; - -DestructiblePreviewParam::DestructiblePreviewParam(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructiblePreviewParamFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructiblePreviewParam::~DestructiblePreviewParam() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructiblePreviewParam::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructiblePreviewParam(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructiblePreviewParam::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructiblePreviewParam::getParameterDefinitionTree(void) const -{ - DestructiblePreviewParam* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructiblePreviewParam::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructiblePreviewParam::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructiblePreviewParam::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructiblePreviewParam::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructiblePreviewParam::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("globalPose", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The pose for the destructible preview, including scaling.\n", true); - HintTable[1].init("shortDescription", "The pose for the destructible preview", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="chunkDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("chunkDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Which chunk depth to render.\n", true); - HintTable[1].init("shortDescription", "Which chunk depth to render.", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="explodeAmount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("explodeAmount", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to 'explode' the chunks rendered. The value is relative to the chunk's initial offset from the origin.\n", true); - HintTable[1].init("shortDescription", "How far apart to 'explode' the chunks rendered.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="renderUnexplodedChunksStatically" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("renderUnexplodedChunksStatically", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, unexploded chunks (see explodeAmount) will be renderered statically (without skinning).\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render unexploded chunks statically (without skinning)", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("shortDescription", "Optional user data pointer associated with the destructible preview", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(7); - Children[6] = PDEF_PTR(9); - - ParamDefTable[0].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=5, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=7, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructiblePreviewParam::initStrings(void) -{ -} - -void DestructiblePreviewParam::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; -} - -void DestructiblePreviewParam::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - globalPose = physx::PxMat44(init(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)); - chunkDepth = uint32_t(0); - explodeAmount = float(0); - renderUnexplodedChunksStatically = bool(false); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructiblePreviewParam::initReferences(void) -{ -} - -void DestructiblePreviewParam::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } -} - -void DestructiblePreviewParam::freeStrings(void) -{ - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructiblePreviewParam::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructiblePreviewParam.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace DestructiblePreviewParamNS; + +const char* const DestructiblePreviewParamFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 10; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 7, 9, 6, 8, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, + { TYPE_MAT44, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->chunkDepth), NULL, 0 }, // chunkDepth + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->explodeAmount), NULL, 0 }, // explodeAmount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderUnexplodedChunksStatically), NULL, 0 }, // renderUnexplodedChunksStatically + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(7), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(8), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData +}; + + +bool DestructiblePreviewParam::mBuiltFlag = false; +NvParameterized::MutexType DestructiblePreviewParam::mBuiltFlagMutex; + +DestructiblePreviewParam::DestructiblePreviewParam(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructiblePreviewParamFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructiblePreviewParam::~DestructiblePreviewParam() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructiblePreviewParam::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructiblePreviewParam(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructiblePreviewParam::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructiblePreviewParam::getParameterDefinitionTree(void) const +{ + DestructiblePreviewParam* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructiblePreviewParam::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructiblePreviewParam::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructiblePreviewParam::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructiblePreviewParam::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructiblePreviewParam::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("globalPose", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The pose for the destructible preview, including scaling.\n", true); + HintTable[1].init("shortDescription", "The pose for the destructible preview", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="chunkDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("chunkDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Which chunk depth to render.\n", true); + HintTable[1].init("shortDescription", "Which chunk depth to render.", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="explodeAmount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("explodeAmount", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to 'explode' the chunks rendered. The value is relative to the chunk's initial offset from the origin.\n", true); + HintTable[1].init("shortDescription", "How far apart to 'explode' the chunks rendered.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="renderUnexplodedChunksStatically" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("renderUnexplodedChunksStatically", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, unexploded chunks (see explodeAmount) will be renderered statically (without skinning).\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render unexploded chunks statically (without skinning)", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("shortDescription", "Optional user data pointer associated with the destructible preview", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(7); + Children[6] = PDEF_PTR(9); + + ParamDefTable[0].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=5, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=7, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructiblePreviewParam::initStrings(void) +{ +} + +void DestructiblePreviewParam::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; +} + +void DestructiblePreviewParam::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + globalPose = physx::PxMat44(init(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)); + chunkDepth = uint32_t(0); + explodeAmount = float(0); + renderUnexplodedChunksStatically = bool(false); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructiblePreviewParam::initReferences(void) +{ +} + +void DestructiblePreviewParam::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } +} + +void DestructiblePreviewParam::freeStrings(void) +{ + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructiblePreviewParam::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStream.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStream.cpp old mode 100644 new mode 100755 index aa04217..95043f5 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStream.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStream.cpp @@ -1,348 +1,348 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "MeshCookedCollisionStream.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace MeshCookedCollisionStreamNS; - -const char* const MeshCookedCollisionStreamFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bytes), CHILDREN(1), 1 }, // bytes - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // bytes[] -}; - - -bool MeshCookedCollisionStream::mBuiltFlag = false; -NvParameterized::MutexType MeshCookedCollisionStream::mBuiltFlagMutex; - -MeshCookedCollisionStream::MeshCookedCollisionStream(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStreamFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -MeshCookedCollisionStream::~MeshCookedCollisionStream() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void MeshCookedCollisionStream::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~MeshCookedCollisionStream(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStream::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStream::getParameterDefinitionTree(void) const -{ - MeshCookedCollisionStream* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType MeshCookedCollisionStream::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType MeshCookedCollisionStream::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void MeshCookedCollisionStream::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void MeshCookedCollisionStream::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void MeshCookedCollisionStream::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="bytes" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("bytes", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); - HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="bytes[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("bytes", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); - HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="bytes" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void MeshCookedCollisionStream::initStrings(void) -{ -} - -void MeshCookedCollisionStream::initDynamicArrays(void) -{ - bytes.buf = NULL; - bytes.isAllocated = true; - bytes.elementSize = sizeof(uint8_t); - bytes.arraySizes[0] = 0; -} - -void MeshCookedCollisionStream::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void MeshCookedCollisionStream::initReferences(void) -{ -} - -void MeshCookedCollisionStream::freeDynamicArrays(void) -{ - if (bytes.isAllocated && bytes.buf) - { - mParameterizedTraits->free(bytes.buf); - } -} - -void MeshCookedCollisionStream::freeStrings(void) -{ -} - -void MeshCookedCollisionStream::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "MeshCookedCollisionStream.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace MeshCookedCollisionStreamNS; + +const char* const MeshCookedCollisionStreamFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bytes), CHILDREN(1), 1 }, // bytes + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // bytes[] +}; + + +bool MeshCookedCollisionStream::mBuiltFlag = false; +NvParameterized::MutexType MeshCookedCollisionStream::mBuiltFlagMutex; + +MeshCookedCollisionStream::MeshCookedCollisionStream(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStreamFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +MeshCookedCollisionStream::~MeshCookedCollisionStream() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void MeshCookedCollisionStream::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~MeshCookedCollisionStream(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStream::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStream::getParameterDefinitionTree(void) const +{ + MeshCookedCollisionStream* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType MeshCookedCollisionStream::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType MeshCookedCollisionStream::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void MeshCookedCollisionStream::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void MeshCookedCollisionStream::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void MeshCookedCollisionStream::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="bytes" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("bytes", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); + HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="bytes[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("bytes", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); + HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="bytes" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void MeshCookedCollisionStream::initStrings(void) +{ +} + +void MeshCookedCollisionStream::initDynamicArrays(void) +{ + bytes.buf = NULL; + bytes.isAllocated = true; + bytes.elementSize = sizeof(uint8_t); + bytes.arraySizes[0] = 0; +} + +void MeshCookedCollisionStream::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void MeshCookedCollisionStream::initReferences(void) +{ +} + +void MeshCookedCollisionStream::freeDynamicArrays(void) +{ + if (bytes.isAllocated && bytes.buf) + { + mParameterizedTraits->free(bytes.buf); + } +} + +void MeshCookedCollisionStream::freeStrings(void) +{ +} + +void MeshCookedCollisionStream::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStreamsAtScale.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStreamsAtScale.cpp old mode 100644 new mode 100755 index bab0610..b651704 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStreamsAtScale.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/MeshCookedCollisionStreamsAtScale.cpp @@ -1,376 +1,376 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "MeshCookedCollisionStreamsAtScale.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace MeshCookedCollisionStreamsAtScaleNS; - -const char* const MeshCookedCollisionStreamsAtScaleFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreams), CHILDREN(1), 1 }, // meshCookedCollisionStreams - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreams[] -}; - - -bool MeshCookedCollisionStreamsAtScale::mBuiltFlag = false; -NvParameterized::MutexType MeshCookedCollisionStreamsAtScale::mBuiltFlagMutex; - -MeshCookedCollisionStreamsAtScale::MeshCookedCollisionStreamsAtScale(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStreamsAtScaleFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -MeshCookedCollisionStreamsAtScale::~MeshCookedCollisionStreamsAtScale() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void MeshCookedCollisionStreamsAtScale::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~MeshCookedCollisionStreamsAtScale(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale::getParameterDefinitionTree(void) const -{ - MeshCookedCollisionStreamsAtScale* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void MeshCookedCollisionStreamsAtScale::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - meshCookedCollisionStreams (not an array of structs) */ - -void MeshCookedCollisionStreamsAtScale::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void MeshCookedCollisionStreamsAtScale::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="meshCookedCollisionStreams" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("meshCookedCollisionStreams", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); - HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="meshCookedCollisionStreams[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("meshCookedCollisionStreams", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); - HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="meshCookedCollisionStreams" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void MeshCookedCollisionStreamsAtScale::initStrings(void) -{ -} - -void MeshCookedCollisionStreamsAtScale::initDynamicArrays(void) -{ - meshCookedCollisionStreams.buf = NULL; - meshCookedCollisionStreams.isAllocated = true; - meshCookedCollisionStreams.elementSize = sizeof(NvParameterized::Interface*); - meshCookedCollisionStreams.arraySizes[0] = 0; -} - -void MeshCookedCollisionStreamsAtScale::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void MeshCookedCollisionStreamsAtScale::initReferences(void) -{ -} - -void MeshCookedCollisionStreamsAtScale::freeDynamicArrays(void) -{ - if (meshCookedCollisionStreams.isAllocated && meshCookedCollisionStreams.buf) - { - mParameterizedTraits->free(meshCookedCollisionStreams.buf); - } -} - -void MeshCookedCollisionStreamsAtScale::freeStrings(void) -{ -} - -void MeshCookedCollisionStreamsAtScale::freeReferences(void) -{ - - for (int i = 0; i < meshCookedCollisionStreams.arraySizes[0]; ++i) - { - if (meshCookedCollisionStreams.buf[i]) - { - meshCookedCollisionStreams.buf[i]->destroy(); - } - } -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "MeshCookedCollisionStreamsAtScale.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace MeshCookedCollisionStreamsAtScaleNS; + +const char* const MeshCookedCollisionStreamsAtScaleFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreams), CHILDREN(1), 1 }, // meshCookedCollisionStreams + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreams[] +}; + + +bool MeshCookedCollisionStreamsAtScale::mBuiltFlag = false; +NvParameterized::MutexType MeshCookedCollisionStreamsAtScale::mBuiltFlagMutex; + +MeshCookedCollisionStreamsAtScale::MeshCookedCollisionStreamsAtScale(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStreamsAtScaleFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +MeshCookedCollisionStreamsAtScale::~MeshCookedCollisionStreamsAtScale() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void MeshCookedCollisionStreamsAtScale::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~MeshCookedCollisionStreamsAtScale(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale::getParameterDefinitionTree(void) const +{ + MeshCookedCollisionStreamsAtScale* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void MeshCookedCollisionStreamsAtScale::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - meshCookedCollisionStreams (not an array of structs) */ + +void MeshCookedCollisionStreamsAtScale::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void MeshCookedCollisionStreamsAtScale::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="meshCookedCollisionStreams" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("meshCookedCollisionStreams", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); + HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="meshCookedCollisionStreams[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("meshCookedCollisionStreams", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); + HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="meshCookedCollisionStreams" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void MeshCookedCollisionStreamsAtScale::initStrings(void) +{ +} + +void MeshCookedCollisionStreamsAtScale::initDynamicArrays(void) +{ + meshCookedCollisionStreams.buf = NULL; + meshCookedCollisionStreams.isAllocated = true; + meshCookedCollisionStreams.elementSize = sizeof(NvParameterized::Interface*); + meshCookedCollisionStreams.arraySizes[0] = 0; +} + +void MeshCookedCollisionStreamsAtScale::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void MeshCookedCollisionStreamsAtScale::initReferences(void) +{ +} + +void MeshCookedCollisionStreamsAtScale::freeDynamicArrays(void) +{ + if (meshCookedCollisionStreams.isAllocated && meshCookedCollisionStreams.buf) + { + mParameterizedTraits->free(meshCookedCollisionStreams.buf); + } +} + +void MeshCookedCollisionStreamsAtScale::freeStrings(void) +{ +} + +void MeshCookedCollisionStreamsAtScale::freeReferences(void) +{ + + for (int i = 0; i < meshCookedCollisionStreams.arraySizes[0]; ++i) + { + if (meshCookedCollisionStreams.buf[i]) + { + meshCookedCollisionStreams.buf[i]->destroy(); + } + } +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceParameters.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceParameters.cpp old mode 100644 new mode 100755 index 9dd40d3..1d45e20 --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceParameters.cpp @@ -1,438 +1,438 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceTraceParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace SurfaceTraceParametersNS; - -const char* const SurfaceTraceParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 5, 2, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshIndices), CHILDREN(3), 1 }, // submeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // submeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexIndices), CHILDREN(4), 1 }, // vertexIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexIndices[] - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->defaultNormal), NULL, 0 }, // defaultNormal -}; - - -bool SurfaceTraceParameters::mBuiltFlag = false; -NvParameterized::MutexType SurfaceTraceParameters::mBuiltFlagMutex; - -SurfaceTraceParameters::SurfaceTraceParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceTraceParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceTraceParameters::~SurfaceTraceParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceTraceParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceTraceParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceParameters::getParameterDefinitionTree(void) const -{ - SurfaceTraceParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceTraceParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceTraceParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceTraceParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void SurfaceTraceParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceTraceParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("submeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("submeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="vertexIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("vertexIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("vertexIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal for this trace. A surface trace is a single closed loop\n on the surface of the mesh, along triangle boundaries. This normal is the normalized average of the\n surface triangles enclosed by the loop.", true); - HintTable[1].init("shortDescription", "The average surface normal for this trace", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(5); - - ParamDefTable[0].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=1, longName="submeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="vertexIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SurfaceTraceParameters::initStrings(void) -{ -} - -void SurfaceTraceParameters::initDynamicArrays(void) -{ - submeshIndices.buf = NULL; - submeshIndices.isAllocated = true; - submeshIndices.elementSize = sizeof(uint8_t); - submeshIndices.arraySizes[0] = 0; - vertexIndices.buf = NULL; - vertexIndices.isAllocated = true; - vertexIndices.elementSize = sizeof(uint32_t); - vertexIndices.arraySizes[0] = 0; -} - -void SurfaceTraceParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceTraceParameters::initReferences(void) -{ -} - -void SurfaceTraceParameters::freeDynamicArrays(void) -{ - if (submeshIndices.isAllocated && submeshIndices.buf) - { - mParameterizedTraits->free(submeshIndices.buf); - } - if (vertexIndices.isAllocated && vertexIndices.buf) - { - mParameterizedTraits->free(vertexIndices.buf); - } -} - -void SurfaceTraceParameters::freeStrings(void) -{ -} - -void SurfaceTraceParameters::freeReferences(void) -{ -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceTraceParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace SurfaceTraceParametersNS; + +const char* const SurfaceTraceParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 5, 2, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshIndices), CHILDREN(3), 1 }, // submeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // submeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexIndices), CHILDREN(4), 1 }, // vertexIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexIndices[] + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->defaultNormal), NULL, 0 }, // defaultNormal +}; + + +bool SurfaceTraceParameters::mBuiltFlag = false; +NvParameterized::MutexType SurfaceTraceParameters::mBuiltFlagMutex; + +SurfaceTraceParameters::SurfaceTraceParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceTraceParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceTraceParameters::~SurfaceTraceParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceTraceParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceTraceParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceParameters::getParameterDefinitionTree(void) const +{ + SurfaceTraceParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceTraceParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceTraceParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceTraceParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void SurfaceTraceParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceTraceParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("submeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("submeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="vertexIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("vertexIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("vertexIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal for this trace. A surface trace is a single closed loop\n on the surface of the mesh, along triangle boundaries. This normal is the normalized average of the\n surface triangles enclosed by the loop.", true); + HintTable[1].init("shortDescription", "The average surface normal for this trace", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(5); + + ParamDefTable[0].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=1, longName="submeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="vertexIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SurfaceTraceParameters::initStrings(void) +{ +} + +void SurfaceTraceParameters::initDynamicArrays(void) +{ + submeshIndices.buf = NULL; + submeshIndices.isAllocated = true; + submeshIndices.elementSize = sizeof(uint8_t); + submeshIndices.arraySizes[0] = 0; + vertexIndices.buf = NULL; + vertexIndices.isAllocated = true; + vertexIndices.elementSize = sizeof(uint32_t); + vertexIndices.arraySizes[0] = 0; +} + +void SurfaceTraceParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceTraceParameters::initReferences(void) +{ +} + +void SurfaceTraceParameters::freeDynamicArrays(void) +{ + if (submeshIndices.isAllocated && submeshIndices.buf) + { + mParameterizedTraits->free(submeshIndices.buf); + } + if (vertexIndices.isAllocated && vertexIndices.buf) + { + mParameterizedTraits->free(vertexIndices.buf); + } +} + +void SurfaceTraceParameters::freeStrings(void) +{ +} + +void SurfaceTraceParameters::freeReferences(void) +{ +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceSetParameters.cpp b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceSetParameters.cpp old mode 100644 new mode 100755 index bff1a92..dc1887d --- a/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceSetParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible/src/autogen/SurfaceTraceSetParameters.cpp @@ -1,402 +1,402 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceTraceSetParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace destructible -{ - -using namespace SurfaceTraceSetParametersNS; - -const char* const SurfaceTraceSetParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 4; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(2), 1 }, // traces - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->positionOffset), NULL, 0 }, // positionOffset -}; - - -bool SurfaceTraceSetParameters::mBuiltFlag = false; -NvParameterized::MutexType SurfaceTraceSetParameters::mBuiltFlagMutex; - -SurfaceTraceSetParameters::SurfaceTraceSetParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceTraceSetParameters::~SurfaceTraceSetParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceTraceSetParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceTraceSetParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters::getParameterDefinitionTree(void) const -{ - SurfaceTraceSetParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceTraceSetParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - traces (not an array of structs) */ - -void SurfaceTraceSetParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceTraceSetParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("traces", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("traces", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="positionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("positionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk-local offset for this trace, needed for instanced chunks.", true); - HintTable[1].init("shortDescription", "Chunk-local offset for this trace, needed for instanced chunks", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=1, longName="traces" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SurfaceTraceSetParameters::initStrings(void) -{ -} - -void SurfaceTraceSetParameters::initDynamicArrays(void) -{ - traces.buf = NULL; - traces.isAllocated = true; - traces.elementSize = sizeof(NvParameterized::Interface*); - traces.arraySizes[0] = 0; -} - -void SurfaceTraceSetParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - positionOffset = physx::PxVec3(physx::PxVec3(0.0f)); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceTraceSetParameters::initReferences(void) -{ -} - -void SurfaceTraceSetParameters::freeDynamicArrays(void) -{ - if (traces.isAllocated && traces.buf) - { - mParameterizedTraits->free(traces.buf); - } -} - -void SurfaceTraceSetParameters::freeStrings(void) -{ -} - -void SurfaceTraceSetParameters::freeReferences(void) -{ - - for (int i = 0; i < traces.arraySizes[0]; ++i) - { - if (traces.buf[i]) - { - traces.buf[i]->destroy(); - } - } -} - -} // namespace destructible -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceTraceSetParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace destructible +{ + +using namespace SurfaceTraceSetParametersNS; + +const char* const SurfaceTraceSetParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 4; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(2), 1 }, // traces + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->positionOffset), NULL, 0 }, // positionOffset +}; + + +bool SurfaceTraceSetParameters::mBuiltFlag = false; +NvParameterized::MutexType SurfaceTraceSetParameters::mBuiltFlagMutex; + +SurfaceTraceSetParameters::SurfaceTraceSetParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceTraceSetParameters::~SurfaceTraceSetParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceTraceSetParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceTraceSetParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters::getParameterDefinitionTree(void) const +{ + SurfaceTraceSetParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceTraceSetParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - traces (not an array of structs) */ + +void SurfaceTraceSetParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceTraceSetParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("traces", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("traces", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="positionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("positionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk-local offset for this trace, needed for instanced chunks.", true); + HintTable[1].init("shortDescription", "Chunk-local offset for this trace, needed for instanced chunks", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=1, longName="traces" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SurfaceTraceSetParameters::initStrings(void) +{ +} + +void SurfaceTraceSetParameters::initDynamicArrays(void) +{ + traces.buf = NULL; + traces.isAllocated = true; + traces.elementSize = sizeof(NvParameterized::Interface*); + traces.arraySizes[0] = 0; +} + +void SurfaceTraceSetParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + positionOffset = physx::PxVec3(physx::PxVec3(0.0f)); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceTraceSetParameters::initReferences(void) +{ +} + +void SurfaceTraceSetParameters::freeDynamicArrays(void) +{ + if (traces.isAllocated && traces.buf) + { + mParameterizedTraits->free(traces.buf); + } +} + +void SurfaceTraceSetParameters::freeStrings(void) +{ +} + +void SurfaceTraceSetParameters::freeReferences(void) +{ + + for (int i = 0; i < traces.arraySizes[0]; ++i) + { + if (traces.buf[i]) + { + traces.buf[i]->destroy(); + } + } +} + +} // namespace destructible +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionCachedOverlaps_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionCachedOverlaps_0p0_0p1.h old mode 100644 new mode 100755 index 5956835..d6c5019 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionCachedOverlaps_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionCachedOverlaps_0p0_0p1.h @@ -1,98 +1,98 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONCACHEDOVERLAPS_0P0_0P1H_H -#define MODULE_CONVERSIONCACHEDOVERLAPS_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "CachedOverlaps_0p0.h" -#include "CachedOverlaps_0p1.h" - -#include "ApexCommonStructs.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionCachedOverlaps_0p0_0p1Parent; - -class ConversionCachedOverlaps_0p0_0p1: public ConversionCachedOverlaps_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionCachedOverlaps_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionCachedOverlaps_0p0_0p1)(t) : 0; - } - -protected: - ConversionCachedOverlaps_0p0_0p1(NvParameterized::Traits* t) : ConversionCachedOverlaps_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - parameterized::CachedOverlaps_0p0NS::IntPair_Type* pairs = mLegacyData->overlaps.buf; - uint32_t numPairs = (uint32_t)mLegacyData->overlaps.arraySizes[0]; - - NvParameterized::Handle overlapsHandle(*mNewData, "overlaps"); - mNewData->resizeArray(overlapsHandle, 2*(int32_t)numPairs); - for (uint32_t i = 0; i < numPairs; ++i) - { - mNewData->overlaps.buf[2*i].i0 = pairs[i].i0; - mNewData->overlaps.buf[2*i].i1 = pairs[i].i1; - - mNewData->overlaps.buf[2*i+1].i0 = pairs[i].i1; - mNewData->overlaps.buf[2*i+1].i1 = pairs[i].i0; - } - - qsort(mNewData->overlaps.buf, 2*numPairs, sizeof(IntPair), IntPair::compare); - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONCACHEDOVERLAPS_0P0_0P1H_H +#define MODULE_CONVERSIONCACHEDOVERLAPS_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "CachedOverlaps_0p0.h" +#include "CachedOverlaps_0p1.h" + +#include "ApexCommonStructs.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionCachedOverlaps_0p0_0p1Parent; + +class ConversionCachedOverlaps_0p0_0p1: public ConversionCachedOverlaps_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionCachedOverlaps_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionCachedOverlaps_0p0_0p1)(t) : 0; + } + +protected: + ConversionCachedOverlaps_0p0_0p1(NvParameterized::Traits* t) : ConversionCachedOverlaps_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + parameterized::CachedOverlaps_0p0NS::IntPair_Type* pairs = mLegacyData->overlaps.buf; + uint32_t numPairs = (uint32_t)mLegacyData->overlaps.arraySizes[0]; + + NvParameterized::Handle overlapsHandle(*mNewData, "overlaps"); + mNewData->resizeArray(overlapsHandle, 2*(int32_t)numPairs); + for (uint32_t i = 0; i < numPairs; ++i) + { + mNewData->overlaps.buf[2*i].i0 = pairs[i].i0; + mNewData->overlaps.buf[2*i].i1 = pairs[i].i1; + + mNewData->overlaps.buf[2*i+1].i0 = pairs[i].i1; + mNewData->overlaps.buf[2*i+1].i1 = pairs[i].i0; + } + + qsort(mNewData->overlaps.buf, 2*numPairs, sizeof(IntPair), IntPair::compare); + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p0_0p1.h old mode 100644 new mode 100755 index eebd91d..c3ddf10 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p0_0p1.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P0_0P1H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p0.h" -#include "DestructibleActorParam_0p1.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p0_0p1Parent; - -class ConversionDestructibleActorParam_0p0_0p1: public ConversionDestructibleActorParam_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p0_0p1)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P0_0P1H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p0.h" +#include "DestructibleActorParam_0p1.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p0_0p1Parent; + +class ConversionDestructibleActorParam_0p0_0p1: public ConversionDestructibleActorParam_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p0_0p1)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p10_0p11.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p10_0p11.h old mode 100644 new mode 100755 index 7e83331..a9e1de6 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p10_0p11.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p10_0p11.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P10_0P11H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P10_0P11H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p10.h" -#include "DestructibleActorParam_0p11.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p10_0p11Parent; - -class ConversionDestructibleActorParam_0p10_0p11: public ConversionDestructibleActorParam_0p10_0p11Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p10_0p11)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p10_0p11)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p10_0p11(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p10_0p11Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P10_0P11H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P10_0P11H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p10.h" +#include "DestructibleActorParam_0p11.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p10_0p11Parent; + +class ConversionDestructibleActorParam_0p10_0p11: public ConversionDestructibleActorParam_0p10_0p11Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p10_0p11)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p10_0p11)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p10_0p11(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p10_0p11Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p11_0p12.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p11_0p12.h old mode 100644 new mode 100755 index 0055d11..17c16af --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p11_0p12.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p11_0p12.h @@ -1,95 +1,95 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P11_0P12H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P11_0P12H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p11.h" -#include "DestructibleActorParam_0p12.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p11_0p12Parent; - -class ConversionDestructibleActorParam_0p11_0p12: public ConversionDestructibleActorParam_0p11_0p12Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p11_0p12)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p11_0p12)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p11_0p12(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p11_0p12Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - // Convert sleepVelocitySmoothingFactor to sleepVelocityFrameDecayConstant - if (mLegacyData->sleepVelocitySmoothingFactor <= 0.0f) - { - mNewData->sleepVelocityFrameDecayConstant = 1.0f; - } - else - if (mLegacyData->sleepVelocitySmoothingFactor > 1.0f - PX_EPS_F32) - { - mNewData->sleepVelocityFrameDecayConstant = 1.0f/PX_EPS_F32; - } - else - { - mNewData->sleepVelocityFrameDecayConstant = 1.0f/(1.0f - mLegacyData->sleepVelocitySmoothingFactor); - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P11_0P12H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P11_0P12H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p11.h" +#include "DestructibleActorParam_0p12.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p11_0p12Parent; + +class ConversionDestructibleActorParam_0p11_0p12: public ConversionDestructibleActorParam_0p11_0p12Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p11_0p12)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p11_0p12)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p11_0p12(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p11_0p12Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + // Convert sleepVelocitySmoothingFactor to sleepVelocityFrameDecayConstant + if (mLegacyData->sleepVelocitySmoothingFactor <= 0.0f) + { + mNewData->sleepVelocityFrameDecayConstant = 1.0f; + } + else + if (mLegacyData->sleepVelocitySmoothingFactor > 1.0f - PX_EPS_F32) + { + mNewData->sleepVelocityFrameDecayConstant = 1.0f/PX_EPS_F32; + } + else + { + mNewData->sleepVelocityFrameDecayConstant = 1.0f/(1.0f - mLegacyData->sleepVelocitySmoothingFactor); + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p12_0p13.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p12_0p13.h old mode 100644 new mode 100755 index 7d7626a..0b73278 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p12_0p13.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p12_0p13.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P12_0P13H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P12_0P13H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p12.h" -#include "DestructibleActorParam_0p13.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p12_0p13Parent; - -class ConversionDestructibleActorParam_0p12_0p13: public ConversionDestructibleActorParam_0p12_0p13Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p12_0p13)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p12_0p13)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p12_0p13(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p12_0p13Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P12_0P13H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P12_0P13H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p12.h" +#include "DestructibleActorParam_0p13.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p12_0p13Parent; + +class ConversionDestructibleActorParam_0p12_0p13: public ConversionDestructibleActorParam_0p12_0p13Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p12_0p13)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p12_0p13)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p12_0p13(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p12_0p13Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p13_0p14.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p13_0p14.h old mode 100644 new mode 100755 index 7b1fb9f..4ccff69 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p13_0p14.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p13_0p14.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P13_0P14H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P13_0P14H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p13.h" -#include "DestructibleActorParam_0p14.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p13_0p14Parent; - -class ConversionDestructibleActorParam_0p13_0p14: public ConversionDestructibleActorParam_0p13_0p14Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p13_0p14)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p13_0p14)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p13_0p14(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p13_0p14Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P13_0P14H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P13_0P14H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p13.h" +#include "DestructibleActorParam_0p14.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p13_0p14Parent; + +class ConversionDestructibleActorParam_0p13_0p14: public ConversionDestructibleActorParam_0p13_0p14Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p13_0p14)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p13_0p14)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p13_0p14(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p13_0p14Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p14_0p15.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p14_0p15.h old mode 100644 new mode 100755 index 4aa569c..1005d47 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p14_0p15.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p14_0p15.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P14_0P15H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P14_0P15H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p14.h" -#include "DestructibleActorParam_0p15.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p14_0p15Parent; - -class ConversionDestructibleActorParam_0p14_0p15: public ConversionDestructibleActorParam_0p14_0p15Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p14_0p15)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p14_0p15)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p14_0p15(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p14_0p15Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P14_0P15H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P14_0P15H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p14.h" +#include "DestructibleActorParam_0p15.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p14_0p15Parent; + +class ConversionDestructibleActorParam_0p14_0p15: public ConversionDestructibleActorParam_0p14_0p15Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p14_0p15)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p14_0p15)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p14_0p15(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p14_0p15Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p15_0p16.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p15_0p16.h old mode 100644 new mode 100755 index 77bb56a..a1d7ad0 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p15_0p16.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p15_0p16.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P15_0P16H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P15_0P16H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p15.h" -#include "DestructibleActorParam_0p16.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p15_0p16Parent; - -class ConversionDestructibleActorParam_0p15_0p16: public ConversionDestructibleActorParam_0p15_0p16Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p15_0p16)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p15_0p16)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p15_0p16(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p15_0p16Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P15_0P16H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P15_0P16H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p15.h" +#include "DestructibleActorParam_0p16.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p15_0p16Parent; + +class ConversionDestructibleActorParam_0p15_0p16: public ConversionDestructibleActorParam_0p15_0p16Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p15_0p16)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p15_0p16)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p15_0p16(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p15_0p16Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p16_0p17.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p16_0p17.h old mode 100644 new mode 100755 index 3cc316d..2e3c3c1 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p16_0p17.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p16_0p17.h @@ -1,83 +1,83 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P16_0P17H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P16_0P17H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p16.h" -#include "DestructibleActorParam_0p17.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p16_0p17Parent; - -class ConversionDestructibleActorParam_0p16_0p17: public ConversionDestructibleActorParam_0p16_0p17Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p16_0p17)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p16_0p17)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p16_0p17(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p16_0p17Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - // Convert default behavior group's damage spread function parameters - mNewData->defaultBehaviorGroup.damageSpread.minimumRadius = mLegacyData->defaultBehaviorGroup.minimumDamageRadius; - mNewData->defaultBehaviorGroup.damageSpread.radiusMultiplier = mLegacyData->defaultBehaviorGroup.damageRadiusMultiplier; - mNewData->defaultBehaviorGroup.damageSpread.falloffExponent = mLegacyData->defaultBehaviorGroup.damageFalloffExponent; - - // Convert user-defined behavior group's damage spread function parameters - const int32_t behaviorGroupCount = mLegacyData->behaviorGroups.arraySizes[0]; - PX_ASSERT(mNewData->behaviorGroups.arraySizes[0] == behaviorGroupCount); - for (int32_t i = 0; i < physx::PxMin(behaviorGroupCount, mNewData->behaviorGroups.arraySizes[0]); ++i) - { - mNewData->behaviorGroups.buf[i].damageSpread.minimumRadius = mLegacyData->behaviorGroups.buf[i].minimumDamageRadius; - mNewData->behaviorGroups.buf[i].damageSpread.radiusMultiplier = mLegacyData->behaviorGroups.buf[i].damageRadiusMultiplier; - mNewData->behaviorGroups.buf[i].damageSpread.falloffExponent = mLegacyData->behaviorGroups.buf[i].damageFalloffExponent; - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P16_0P17H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P16_0P17H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p16.h" +#include "DestructibleActorParam_0p17.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p16_0p17Parent; + +class ConversionDestructibleActorParam_0p16_0p17: public ConversionDestructibleActorParam_0p16_0p17Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p16_0p17)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p16_0p17)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p16_0p17(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p16_0p17Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + // Convert default behavior group's damage spread function parameters + mNewData->defaultBehaviorGroup.damageSpread.minimumRadius = mLegacyData->defaultBehaviorGroup.minimumDamageRadius; + mNewData->defaultBehaviorGroup.damageSpread.radiusMultiplier = mLegacyData->defaultBehaviorGroup.damageRadiusMultiplier; + mNewData->defaultBehaviorGroup.damageSpread.falloffExponent = mLegacyData->defaultBehaviorGroup.damageFalloffExponent; + + // Convert user-defined behavior group's damage spread function parameters + const int32_t behaviorGroupCount = mLegacyData->behaviorGroups.arraySizes[0]; + PX_ASSERT(mNewData->behaviorGroups.arraySizes[0] == behaviorGroupCount); + for (int32_t i = 0; i < physx::PxMin(behaviorGroupCount, mNewData->behaviorGroups.arraySizes[0]); ++i) + { + mNewData->behaviorGroups.buf[i].damageSpread.minimumRadius = mLegacyData->behaviorGroups.buf[i].minimumDamageRadius; + mNewData->behaviorGroups.buf[i].damageSpread.radiusMultiplier = mLegacyData->behaviorGroups.buf[i].damageRadiusMultiplier; + mNewData->behaviorGroups.buf[i].damageSpread.falloffExponent = mLegacyData->behaviorGroups.buf[i].damageFalloffExponent; + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p17_0p18.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p17_0p18.h old mode 100644 new mode 100755 index aaa55aa..849de21 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p17_0p18.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p17_0p18.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P17_0P18H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P17_0P18H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p17.h" -#include "DestructibleActorParam_0p18.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p17_0p18Parent; - -class ConversionDestructibleActorParam_0p17_0p18: public ConversionDestructibleActorParam_0p17_0p18Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p17_0p18)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p17_0p18)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p17_0p18(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p17_0p18Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P17_0P18H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P17_0P18H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p17.h" +#include "DestructibleActorParam_0p18.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p17_0p18Parent; + +class ConversionDestructibleActorParam_0p17_0p18: public ConversionDestructibleActorParam_0p17_0p18Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p17_0p18)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p17_0p18)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p17_0p18(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p17_0p18Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p18_0p19.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p18_0p19.h old mode 100644 new mode 100755 index 728e526..c44796e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p18_0p19.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p18_0p19.h @@ -1,70 +1,70 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P18_0P19H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P18_0P19H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p18.h" -#include "DestructibleActorParam_0p19.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p18_0p19Parent; - -class ConversionDestructibleActorParam_0p18_0p19: public ConversionDestructibleActorParam_0p18_0p19Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p18_0p19)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p18_0p19)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p18_0p19(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p18_0p19Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - mNewData->p3BodyDescTemplate.flags.eENABLE_CCD = mLegacyData->p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS; - mNewData->p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = mLegacyData->p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR; - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P18_0P19H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P18_0P19H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p18.h" +#include "DestructibleActorParam_0p19.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p18_0p19Parent; + +class ConversionDestructibleActorParam_0p18_0p19: public ConversionDestructibleActorParam_0p18_0p19Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p18_0p19)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p18_0p19)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p18_0p19(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p18_0p19Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + mNewData->p3BodyDescTemplate.flags.eENABLE_CCD = mLegacyData->p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS; + mNewData->p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = mLegacyData->p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR; + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p19_0p20.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p19_0p20.h old mode 100644 new mode 100755 index 8dab7b1..18b7291 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p19_0p20.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p19_0p20.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P19_0P20H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P19_0P20H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p19.h" -#include "DestructibleActorParam_0p20.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p19_0p20Parent; - -class ConversionDestructibleActorParam_0p19_0p20: public ConversionDestructibleActorParam_0p19_0p20Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p19_0p20)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p19_0p20)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p19_0p20(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p19_0p20Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P19_0P20H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P19_0P20H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p19.h" +#include "DestructibleActorParam_0p20.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p19_0p20Parent; + +class ConversionDestructibleActorParam_0p19_0p20: public ConversionDestructibleActorParam_0p19_0p20Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p19_0p20)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p19_0p20)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p19_0p20(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p19_0p20Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p1_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p1_0p2.h old mode 100644 new mode 100755 index 54f1119..654a1df --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p1_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p1_0p2.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P1_0P2H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P1_0P2H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p1.h" -#include "DestructibleActorParam_0p2.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p1_0p2Parent; - -class ConversionDestructibleActorParam_0p1_0p2: public ConversionDestructibleActorParam_0p1_0p2Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p1_0p2)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p1_0p2)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p1_0p2Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P1_0P2H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P1_0P2H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p1.h" +#include "DestructibleActorParam_0p2.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p1_0p2Parent; + +class ConversionDestructibleActorParam_0p1_0p2: public ConversionDestructibleActorParam_0p1_0p2Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p1_0p2)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p1_0p2)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p1_0p2Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p20_0p21.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p20_0p21.h old mode 100644 new mode 100755 index bdfc095..dc48fbb --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p20_0p21.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p20_0p21.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P20_0P21H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P20_0P21H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p20.h" -#include "DestructibleActorParam_0p21.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p20_0p21Parent; - -class ConversionDestructibleActorParam_0p20_0p21: public ConversionDestructibleActorParam_0p20_0p21Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p20_0p21)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p20_0p21)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p20_0p21(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p20_0p21Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P20_0P21H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P20_0P21H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p20.h" +#include "DestructibleActorParam_0p21.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p20_0p21Parent; + +class ConversionDestructibleActorParam_0p20_0p21: public ConversionDestructibleActorParam_0p20_0p21Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p20_0p21)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p20_0p21)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p20_0p21(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p20_0p21Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p21_0p22.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p21_0p22.h old mode 100644 new mode 100755 index 7cb2551..27c733f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p21_0p22.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p21_0p22.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P21_0P22H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P21_0P22H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p21.h" -#include "DestructibleActorParam_0p22.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p21_0p22Parent; - -class ConversionDestructibleActorParam_0p21_0p22: public ConversionDestructibleActorParam_0p21_0p22Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p21_0p22)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p21_0p22)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p21_0p22(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p21_0p22Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P21_0P22H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P21_0P22H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p21.h" +#include "DestructibleActorParam_0p22.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p21_0p22Parent; + +class ConversionDestructibleActorParam_0p21_0p22: public ConversionDestructibleActorParam_0p21_0p22Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p21_0p22)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p21_0p22)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p21_0p22(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p21_0p22Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p22_0p23.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p22_0p23.h old mode 100644 new mode 100755 index a70e981..8c0b6a5 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p22_0p23.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p22_0p23.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P22_0P23H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P22_0P23H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p22.h" -#include "DestructibleActorParam_0p23.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p22_0p23Parent; - -class ConversionDestructibleActorParam_0p22_0p23: public ConversionDestructibleActorParam_0p22_0p23Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p22_0p23)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p22_0p23)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p22_0p23(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p22_0p23Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P22_0P23H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P22_0P23H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p22.h" +#include "DestructibleActorParam_0p23.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p22_0p23Parent; + +class ConversionDestructibleActorParam_0p22_0p23: public ConversionDestructibleActorParam_0p22_0p23Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p22_0p23)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p22_0p23)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p22_0p23(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p22_0p23Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p23_0p24.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p23_0p24.h old mode 100644 new mode 100755 index 60f4c7a..2821e03 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p23_0p24.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p23_0p24.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P23_0P24H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P23_0P24H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p23.h" -#include "DestructibleActorParam_0p24.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p23_0p24Parent; - -class ConversionDestructibleActorParam_0p23_0p24: public ConversionDestructibleActorParam_0p23_0p24Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p23_0p24)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p23_0p24)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p23_0p24(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p23_0p24Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P23_0P24H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P23_0P24H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p23.h" +#include "DestructibleActorParam_0p24.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p23_0p24Parent; + +class ConversionDestructibleActorParam_0p23_0p24: public ConversionDestructibleActorParam_0p23_0p24Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p23_0p24)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p23_0p24)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p23_0p24(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p23_0p24Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p24_0p25.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p24_0p25.h old mode 100644 new mode 100755 index 9e31e9a..1b950c1 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p24_0p25.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p24_0p25.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P24_0P25H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P24_0P25H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p24.h" -#include "DestructibleActorParam_0p25.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p24_0p25Parent; - -class ConversionDestructibleActorParam_0p24_0p25: public ConversionDestructibleActorParam_0p24_0p25Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p24_0p25)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p24_0p25)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p24_0p25(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p24_0p25Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P24_0P25H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P24_0P25H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p24.h" +#include "DestructibleActorParam_0p25.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p24_0p25Parent; + +class ConversionDestructibleActorParam_0p24_0p25: public ConversionDestructibleActorParam_0p24_0p25Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p24_0p25)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p24_0p25)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p24_0p25(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p24_0p25Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p25_0p26.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p25_0p26.h old mode 100644 new mode 100755 index 3fb542d..c044068 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p25_0p26.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p25_0p26.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P25_0P26H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P25_0P26H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p25.h" -#include "DestructibleActorParam_0p26.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p25_0p26Parent; - -class ConversionDestructibleActorParam_0p25_0p26: public ConversionDestructibleActorParam_0p25_0p26Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p25_0p26)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p25_0p26)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p25_0p26(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p25_0p26Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P25_0P26H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P25_0P26H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p25.h" +#include "DestructibleActorParam_0p26.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p25_0p26Parent; + +class ConversionDestructibleActorParam_0p25_0p26: public ConversionDestructibleActorParam_0p25_0p26Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p25_0p26)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p25_0p26)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p25_0p26(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p25_0p26Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p26_0p27.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p26_0p27.h old mode 100644 new mode 100755 index bc7367f..1001f4c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p26_0p27.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p26_0p27.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P26_0P27H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P26_0P27H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p26.h" -#include "DestructibleActorParam_0p27.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p26_0p27Parent; - -class ConversionDestructibleActorParam_0p26_0p27: public ConversionDestructibleActorParam_0p26_0p27Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p26_0p27)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p26_0p27)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p26_0p27(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p26_0p27Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P26_0P27H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P26_0P27H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p26.h" +#include "DestructibleActorParam_0p27.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p26_0p27Parent; + +class ConversionDestructibleActorParam_0p26_0p27: public ConversionDestructibleActorParam_0p26_0p27Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p26_0p27)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p26_0p27)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p26_0p27(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p26_0p27Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p27_0p28.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p27_0p28.h old mode 100644 new mode 100755 index c8acde1..ffd296b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p27_0p28.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p27_0p28.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P27_0P28H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P27_0P28H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p27.h" -#include "DestructibleActorParam_0p28.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p27_0p28Parent; - -class ConversionDestructibleActorParam_0p27_0p28: public ConversionDestructibleActorParam_0p27_0p28Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p27_0p28)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p27_0p28)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p27_0p28(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p27_0p28Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P27_0P28H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P27_0P28H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p27.h" +#include "DestructibleActorParam_0p28.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p27_0p28Parent; + +class ConversionDestructibleActorParam_0p27_0p28: public ConversionDestructibleActorParam_0p27_0p28Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p27_0p28)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p27_0p28)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p27_0p28(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p27_0p28Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p28_0p29.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p28_0p29.h old mode 100644 new mode 100755 index fe78570..419b582 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p28_0p29.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p28_0p29.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P28_0P29H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P28_0P29H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p28.h" -#include "DestructibleActorParam_0p29.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p28_0p29Parent; - -class ConversionDestructibleActorParam_0p28_0p29: public ConversionDestructibleActorParam_0p28_0p29Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p28_0p29)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p28_0p29)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p28_0p29(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p28_0p29Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P28_0P29H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P28_0P29H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p28.h" +#include "DestructibleActorParam_0p29.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p28_0p29Parent; + +class ConversionDestructibleActorParam_0p28_0p29: public ConversionDestructibleActorParam_0p28_0p29Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p28_0p29)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p28_0p29)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p28_0p29(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p28_0p29Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p29_0p30.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p29_0p30.h old mode 100644 new mode 100755 index 23bdccf..8f591be --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p29_0p30.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p29_0p30.h @@ -1,79 +1,79 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P29_0P30H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P29_0P30H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p29.h" -#include "DestructibleActorParam_0p30.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p29_0p30Parent; - -class ConversionDestructibleActorParam_0p29_0p30: public ConversionDestructibleActorParam_0p29_0p30Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p29_0p30)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p29_0p30)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p29_0p30(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p29_0p30Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - if (mLegacyData->p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS) - { - mNewData->p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = true; - } - - if (mLegacyData->p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR) - { - mNewData->p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = true; - mNewData->p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = true; - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P29_0P30H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P29_0P30H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p29.h" +#include "DestructibleActorParam_0p30.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p29_0p30Parent; + +class ConversionDestructibleActorParam_0p29_0p30: public ConversionDestructibleActorParam_0p29_0p30Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p29_0p30)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p29_0p30)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p29_0p30(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p29_0p30Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + if (mLegacyData->p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS) + { + mNewData->p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = true; + } + + if (mLegacyData->p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR) + { + mNewData->p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = true; + mNewData->p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = true; + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p2_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p2_0p3.h old mode 100644 new mode 100755 index c18b084..2aa2b56 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p2_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p2_0p3.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P2_0P3H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P2_0P3H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p2.h" -#include "DestructibleActorParam_0p3.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p2_0p3Parent; - -class ConversionDestructibleActorParam_0p2_0p3: public ConversionDestructibleActorParam_0p2_0p3Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p2_0p3)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p2_0p3)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p2_0p3Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P2_0P3H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P2_0P3H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p2.h" +#include "DestructibleActorParam_0p3.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p2_0p3Parent; + +class ConversionDestructibleActorParam_0p2_0p3: public ConversionDestructibleActorParam_0p2_0p3Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p2_0p3)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p2_0p3)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p2_0p3Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p30_0p31.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p30_0p31.h old mode 100644 new mode 100755 index 17f8f47..669a2a2 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p30_0p31.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p30_0p31.h @@ -1,85 +1,85 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P30_0P31H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P30_0P31H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p30.h" -#include "DestructibleActorParam_0p31.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p30_0p31Parent; - -class ConversionDestructibleActorParam_0p30_0p31: public ConversionDestructibleActorParam_0p30_0p31Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p30_0p31)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p30_0p31)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p30_0p31(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p30_0p31Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - physx::PxMat33 tm(physx::PxVec3(mLegacyData->globalPose[0], mLegacyData->globalPose[1], mLegacyData->globalPose[2]), - physx::PxVec3(mLegacyData->globalPose[3], mLegacyData->globalPose[4], mLegacyData->globalPose[5]), - physx::PxVec3(mLegacyData->globalPose[6], mLegacyData->globalPose[7], mLegacyData->globalPose[8])); - - mNewData->globalPose.q = physx::PxQuat(tm); - mNewData->globalPose.p = physx::PxVec3(mLegacyData->globalPose[9], mLegacyData->globalPose[10], mLegacyData->globalPose[11]); - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P30_0P31H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P30_0P31H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p30.h" +#include "DestructibleActorParam_0p31.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p30_0p31Parent; + +class ConversionDestructibleActorParam_0p30_0p31: public ConversionDestructibleActorParam_0p30_0p31Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p30_0p31)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p30_0p31)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p30_0p31(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p30_0p31Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + physx::PxMat33 tm(physx::PxVec3(mLegacyData->globalPose[0], mLegacyData->globalPose[1], mLegacyData->globalPose[2]), + physx::PxVec3(mLegacyData->globalPose[3], mLegacyData->globalPose[4], mLegacyData->globalPose[5]), + physx::PxVec3(mLegacyData->globalPose[6], mLegacyData->globalPose[7], mLegacyData->globalPose[8])); + + mNewData->globalPose.q = physx::PxQuat(tm); + mNewData->globalPose.p = physx::PxVec3(mLegacyData->globalPose[9], mLegacyData->globalPose[10], mLegacyData->globalPose[11]); + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p31_0p32.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p31_0p32.h old mode 100644 new mode 100755 index bdc1476..139a4f9 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p31_0p32.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p31_0p32.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P31_0P32H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P31_0P32H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p31.h" -#include "DestructibleActorParam_0p32.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p31_0p32Parent; - -class ConversionDestructibleActorParam_0p31_0p32: public ConversionDestructibleActorParam_0p31_0p32Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p31_0p32)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p31_0p32)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p31_0p32(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p31_0p32Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P31_0P32H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P31_0P32H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p31.h" +#include "DestructibleActorParam_0p32.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p31_0p32Parent; + +class ConversionDestructibleActorParam_0p31_0p32: public ConversionDestructibleActorParam_0p31_0p32Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p31_0p32)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p31_0p32)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p31_0p32(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p31_0p32Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p3_0p4.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p3_0p4.h old mode 100644 new mode 100755 index 8456b1b..9ad97c6 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p3_0p4.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p3_0p4.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P3_0P4H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P3_0P4H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p3.h" -#include "DestructibleActorParam_0p4.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p3_0p4Parent; - -class ConversionDestructibleActorParam_0p3_0p4: public ConversionDestructibleActorParam_0p3_0p4Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p3_0p4)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p3_0p4)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p3_0p4(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p3_0p4Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P3_0P4H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P3_0P4H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p3.h" +#include "DestructibleActorParam_0p4.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p3_0p4Parent; + +class ConversionDestructibleActorParam_0p3_0p4: public ConversionDestructibleActorParam_0p3_0p4Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p3_0p4)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p3_0p4)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p3_0p4(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p3_0p4Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p4_0p5.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p4_0p5.h old mode 100644 new mode 100755 index dd40137..4c217f8 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p4_0p5.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p4_0p5.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P4_0P5H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P4_0P5H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p4.h" -#include "DestructibleActorParam_0p5.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p4_0p5Parent; - -class ConversionDestructibleActorParam_0p4_0p5: public ConversionDestructibleActorParam_0p4_0p5Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p4_0p5)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p4_0p5)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p4_0p5(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p4_0p5Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P4_0P5H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P4_0P5H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p4.h" +#include "DestructibleActorParam_0p5.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p4_0p5Parent; + +class ConversionDestructibleActorParam_0p4_0p5: public ConversionDestructibleActorParam_0p4_0p5Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p4_0p5)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p4_0p5)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p4_0p5(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p4_0p5Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p5_0p6.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p5_0p6.h old mode 100644 new mode 100755 index 878c5e8..0658c3c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p5_0p6.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p5_0p6.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P5_0P6H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P5_0P6H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p5.h" -#include "DestructibleActorParam_0p6.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p5_0p6Parent; - -class ConversionDestructibleActorParam_0p5_0p6: public ConversionDestructibleActorParam_0p5_0p6Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p5_0p6)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p5_0p6)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p5_0p6(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p5_0p6Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P5_0P6H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P5_0P6H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p5.h" +#include "DestructibleActorParam_0p6.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p5_0p6Parent; + +class ConversionDestructibleActorParam_0p5_0p6: public ConversionDestructibleActorParam_0p5_0p6Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p5_0p6)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p5_0p6)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p5_0p6(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p5_0p6Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p6_0p7.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p6_0p7.h old mode 100644 new mode 100755 index 8062ded..75cd95e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p6_0p7.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p6_0p7.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P6_0P7H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P6_0P7H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p6.h" -#include "DestructibleActorParam_0p7.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p6_0p7Parent; - -class ConversionDestructibleActorParam_0p6_0p7: public ConversionDestructibleActorParam_0p6_0p7Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p6_0p7)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p6_0p7)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p6_0p7(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p6_0p7Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P6_0P7H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P6_0P7H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p6.h" +#include "DestructibleActorParam_0p7.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p6_0p7Parent; + +class ConversionDestructibleActorParam_0p6_0p7: public ConversionDestructibleActorParam_0p6_0p7Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p6_0p7)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p6_0p7)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p6_0p7(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p6_0p7Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p7_0p8.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p7_0p8.h old mode 100644 new mode 100755 index 37920cc..29183ba --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p7_0p8.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p7_0p8.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P7_0P8H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P7_0P8H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p7.h" -#include "DestructibleActorParam_0p8.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p7_0p8Parent; - -class ConversionDestructibleActorParam_0p7_0p8: public ConversionDestructibleActorParam_0p7_0p8Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p7_0p8)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p7_0p8)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p7_0p8(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p7_0p8Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P7_0P8H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P7_0P8H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p7.h" +#include "DestructibleActorParam_0p8.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p7_0p8Parent; + +class ConversionDestructibleActorParam_0p7_0p8: public ConversionDestructibleActorParam_0p7_0p8Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p7_0p8)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p7_0p8)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p7_0p8(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p7_0p8Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p8_0p9.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p8_0p9.h old mode 100644 new mode 100755 index 0d4071c..f672d4d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p8_0p9.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p8_0p9.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P8_0P9H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P8_0P9H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p8.h" -#include "DestructibleActorParam_0p9.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p8_0p9Parent; - -class ConversionDestructibleActorParam_0p8_0p9: public ConversionDestructibleActorParam_0p8_0p9Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p8_0p9)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p8_0p9)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p8_0p9(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p8_0p9Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P8_0P9H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P8_0P9H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p8.h" +#include "DestructibleActorParam_0p9.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p8_0p9Parent; + +class ConversionDestructibleActorParam_0p8_0p9: public ConversionDestructibleActorParam_0p8_0p9Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p8_0p9)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p8_0p9)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p8_0p9(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p8_0p9Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p9_0p10.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p9_0p10.h old mode 100644 new mode 100755 index 13c8563..ca3d6fa --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p9_0p10.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorParam_0p9_0p10.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P9_0P10H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P9_0P10H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorParam_0p9.h" -#include "DestructibleActorParam_0p10.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorParam_0p9_0p10Parent; - -class ConversionDestructibleActorParam_0p9_0p10: public ConversionDestructibleActorParam_0p9_0p10Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p9_0p10)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p9_0p10)(t) : 0; - } - -protected: - ConversionDestructibleActorParam_0p9_0p10(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p9_0p10Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P9_0P10H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORPARAM_0P9_0P10H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorParam_0p9.h" +#include "DestructibleActorParam_0p10.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorParam_0p9_0p10Parent; + +class ConversionDestructibleActorParam_0p9_0p10: public ConversionDestructibleActorParam_0p9_0p10Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorParam_0p9_0p10)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorParam_0p9_0p10)(t) : 0; + } + +protected: + ConversionDestructibleActorParam_0p9_0p10(NvParameterized::Traits* t) : ConversionDestructibleActorParam_0p9_0p10Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p0_0p1.h old mode 100644 new mode 100755 index 066986c..91148b7 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p0_0p1.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P0_0P1H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorState_0p0.h" -#include "DestructibleActorState_0p1.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorState_0p0_0p1Parent; - -class ConversionDestructibleActorState_0p0_0p1: public ConversionDestructibleActorState_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p0_0p1)(t) : 0; - } - -protected: - ConversionDestructibleActorState_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P0_0P1H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorState_0p0.h" +#include "DestructibleActorState_0p1.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorState_0p0_0p1Parent; + +class ConversionDestructibleActorState_0p0_0p1: public ConversionDestructibleActorState_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p0_0p1)(t) : 0; + } + +protected: + ConversionDestructibleActorState_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p1_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p1_0p2.h old mode 100644 new mode 100755 index 08f9ec6..6aefa2d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p1_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p1_0p2.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P1_0P2H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P1_0P2H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorState_0p1.h" -#include "DestructibleActorState_0p2.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorState_0p1_0p2Parent; - -class ConversionDestructibleActorState_0p1_0p2: public ConversionDestructibleActorState_0p1_0p2Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p1_0p2)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p1_0p2)(t) : 0; - } - -protected: - ConversionDestructibleActorState_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p1_0p2Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P1_0P2H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P1_0P2H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorState_0p1.h" +#include "DestructibleActorState_0p2.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorState_0p1_0p2Parent; + +class ConversionDestructibleActorState_0p1_0p2: public ConversionDestructibleActorState_0p1_0p2Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p1_0p2)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p1_0p2)(t) : 0; + } + +protected: + ConversionDestructibleActorState_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p1_0p2Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p2_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p2_0p3.h old mode 100644 new mode 100755 index a761483..6234b0f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p2_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p2_0p3.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P2_0P3H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P2_0P3H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorState_0p2.h" -#include "DestructibleActorState_0p3.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorState_0p2_0p3Parent; - -class ConversionDestructibleActorState_0p2_0p3: public ConversionDestructibleActorState_0p2_0p3Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p2_0p3)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p2_0p3)(t) : 0; - } - -protected: - ConversionDestructibleActorState_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p2_0p3Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P2_0P3H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P2_0P3H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorState_0p2.h" +#include "DestructibleActorState_0p3.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorState_0p2_0p3Parent; + +class ConversionDestructibleActorState_0p2_0p3: public ConversionDestructibleActorState_0p2_0p3Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p2_0p3)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p2_0p3)(t) : 0; + } + +protected: + ConversionDestructibleActorState_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p2_0p3Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p3_0p4.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p3_0p4.h old mode 100644 new mode 100755 index f2edf4d..cfec22b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p3_0p4.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleActorState_0p3_0p4.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P3_0P4H_H -#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P3_0P4H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleActorState_0p3.h" -#include "DestructibleActorState_0p4.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleActorState_0p3_0p4Parent; - -class ConversionDestructibleActorState_0p3_0p4: public ConversionDestructibleActorState_0p3_0p4Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p3_0p4)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p3_0p4)(t) : 0; - } - -protected: - ConversionDestructibleActorState_0p3_0p4(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p3_0p4Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P3_0P4H_H +#define MODULE_CONVERSIONDESTRUCTIBLEACTORSTATE_0P3_0P4H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleActorState_0p3.h" +#include "DestructibleActorState_0p4.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleActorState_0p3_0p4Parent; + +class ConversionDestructibleActorState_0p3_0p4: public ConversionDestructibleActorState_0p3_0p4Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleActorState_0p3_0p4)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleActorState_0p3_0p4)(t) : 0; + } + +protected: + ConversionDestructibleActorState_0p3_0p4(NvParameterized::Traits* t) : ConversionDestructibleActorState_0p3_0p4Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p0_0p1.h old mode 100644 new mode 100755 index 0272e30..1ef7264 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p0_0p1.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P0_0P1H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p0.h" -#include "DestructibleAssetParameters_0p1.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p0_0p1Parent; - -class ConversionDestructibleAssetParameters_0p0_0p1: public ConversionDestructibleAssetParameters_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p0_0p1)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P0_0P1H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p0.h" +#include "DestructibleAssetParameters_0p1.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p0_0p1Parent; + +class ConversionDestructibleAssetParameters_0p0_0p1: public ConversionDestructibleAssetParameters_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p0_0p1)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p10_0p11.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p10_0p11.h old mode 100644 new mode 100755 index a02c306..f8fb6bd --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p10_0p11.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p10_0p11.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P10_0P11H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P10_0P11H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p10.h" -#include "DestructibleAssetParameters_0p11.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p10_0p11Parent; - -class ConversionDestructibleAssetParameters_0p10_0p11: public ConversionDestructibleAssetParameters_0p10_0p11Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p10_0p11)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p10_0p11)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p10_0p11(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p10_0p11Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P10_0P11H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P10_0P11H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p10.h" +#include "DestructibleAssetParameters_0p11.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p10_0p11Parent; + +class ConversionDestructibleAssetParameters_0p10_0p11: public ConversionDestructibleAssetParameters_0p10_0p11Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p10_0p11)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p10_0p11)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p10_0p11(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p10_0p11Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p11_0p12.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p11_0p12.h old mode 100644 new mode 100755 index 64db0af..1da2c6f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p11_0p12.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p11_0p12.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P11_0P12H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P11_0P12H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p11.h" -#include "DestructibleAssetParameters_0p12.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p11_0p12Parent; - -class ConversionDestructibleAssetParameters_0p11_0p12: public ConversionDestructibleAssetParameters_0p11_0p12Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p11_0p12)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p11_0p12)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p11_0p12(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p11_0p12Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P11_0P12H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P11_0P12H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p11.h" +#include "DestructibleAssetParameters_0p12.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p11_0p12Parent; + +class ConversionDestructibleAssetParameters_0p11_0p12: public ConversionDestructibleAssetParameters_0p11_0p12Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p11_0p12)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p11_0p12)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p11_0p12(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p11_0p12Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p12_0p13.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p12_0p13.h old mode 100644 new mode 100755 index 2c5a74c..01dd477 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p12_0p13.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p12_0p13.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P12_0P13H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P12_0P13H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p12.h" -#include "DestructibleAssetParameters_0p13.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p12_0p13Parent; - -class ConversionDestructibleAssetParameters_0p12_0p13: public ConversionDestructibleAssetParameters_0p12_0p13Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p12_0p13)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p12_0p13)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p12_0p13(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p12_0p13Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P12_0P13H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P12_0P13H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p12.h" +#include "DestructibleAssetParameters_0p13.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p12_0p13Parent; + +class ConversionDestructibleAssetParameters_0p12_0p13: public ConversionDestructibleAssetParameters_0p12_0p13Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p12_0p13)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p12_0p13)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p12_0p13(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p12_0p13Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p13_0p14.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p13_0p14.h old mode 100644 new mode 100755 index dc142ef..7e34834 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p13_0p14.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p13_0p14.h @@ -1,81 +1,81 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P13_0P14H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P13_0P14H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p13.h" -#include "DestructibleAssetParameters_0p14.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p13_0p14Parent; - -class ConversionDestructibleAssetParameters_0p13_0p14: public ConversionDestructibleAssetParameters_0p13_0p14Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p13_0p14)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p13_0p14)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p13_0p14(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p13_0p14Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - const int8_t DEFAULT_GROUP = -1; - mNewData->RTFractureBehaviorGroup = DEFAULT_GROUP; - mNewData->defaultBehaviorGroup.damageThreshold = mLegacyData->destructibleParameters.damageThreshold; - mNewData->defaultBehaviorGroup.damageToRadius = mLegacyData->destructibleParameters.damageToRadius; - mNewData->defaultBehaviorGroup.materialStrength = mLegacyData->destructibleParameters.materialStrength; - - PX_ASSERT(mLegacyData->chunks.arraySizes[0] == mNewData->chunks.arraySizes[0]); - for (int32_t chunkIndex = 0; chunkIndex < mLegacyData->chunks.arraySizes[0]; ++chunkIndex) - { - parameterized::DestructibleAssetParameters_0p14NS::Chunk_Type& newChunk = mNewData->chunks.buf[chunkIndex]; - newChunk.behaviorGroupIndex = DEFAULT_GROUP; - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P13_0P14H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P13_0P14H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p13.h" +#include "DestructibleAssetParameters_0p14.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p13_0p14Parent; + +class ConversionDestructibleAssetParameters_0p13_0p14: public ConversionDestructibleAssetParameters_0p13_0p14Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p13_0p14)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p13_0p14)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p13_0p14(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p13_0p14Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + const int8_t DEFAULT_GROUP = -1; + mNewData->RTFractureBehaviorGroup = DEFAULT_GROUP; + mNewData->defaultBehaviorGroup.damageThreshold = mLegacyData->destructibleParameters.damageThreshold; + mNewData->defaultBehaviorGroup.damageToRadius = mLegacyData->destructibleParameters.damageToRadius; + mNewData->defaultBehaviorGroup.materialStrength = mLegacyData->destructibleParameters.materialStrength; + + PX_ASSERT(mLegacyData->chunks.arraySizes[0] == mNewData->chunks.arraySizes[0]); + for (int32_t chunkIndex = 0; chunkIndex < mLegacyData->chunks.arraySizes[0]; ++chunkIndex) + { + parameterized::DestructibleAssetParameters_0p14NS::Chunk_Type& newChunk = mNewData->chunks.buf[chunkIndex]; + newChunk.behaviorGroupIndex = DEFAULT_GROUP; + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p14_0p15.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p14_0p15.h old mode 100644 new mode 100755 index aaae1fc..584a6bb --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p14_0p15.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p14_0p15.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P14_0P15H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P14_0P15H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p14.h" -#include "DestructibleAssetParameters_0p15.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p14_0p15Parent; - -class ConversionDestructibleAssetParameters_0p14_0p15: public ConversionDestructibleAssetParameters_0p14_0p15Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p14_0p15)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p14_0p15)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p14_0p15(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p14_0p15Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P14_0P15H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P14_0P15H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p14.h" +#include "DestructibleAssetParameters_0p15.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p14_0p15Parent; + +class ConversionDestructibleAssetParameters_0p14_0p15: public ConversionDestructibleAssetParameters_0p14_0p15Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p14_0p15)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p14_0p15)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p14_0p15(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p14_0p15Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p15_0p16.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p15_0p16.h old mode 100644 new mode 100755 index d174e68..01c04be --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p15_0p16.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p15_0p16.h @@ -1,83 +1,83 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P15_0P16H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P15_0P16H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p15.h" -#include "DestructibleAssetParameters_0p16.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p15_0p16Parent; - -class ConversionDestructibleAssetParameters_0p15_0p16: public ConversionDestructibleAssetParameters_0p15_0p16Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p15_0p16)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p15_0p16)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p15_0p16(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p15_0p16Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - // Convert default behavior group's damage spread function parameters - mNewData->defaultBehaviorGroup.damageSpread.minimumRadius = mLegacyData->defaultBehaviorGroup.minimumDamageRadius; - mNewData->defaultBehaviorGroup.damageSpread.radiusMultiplier = mLegacyData->defaultBehaviorGroup.damageRadiusMultiplier; - mNewData->defaultBehaviorGroup.damageSpread.falloffExponent = mLegacyData->defaultBehaviorGroup.damageFalloffExponent; - - // Convert user-defined behavior group's damage spread function parameters - const int32_t behaviorGroupCount = mLegacyData->behaviorGroups.arraySizes[0]; - PX_ASSERT(mNewData->behaviorGroups.arraySizes[0] == behaviorGroupCount); - for (int32_t i = 0; i < physx::PxMin(behaviorGroupCount, mNewData->behaviorGroups.arraySizes[0]); ++i) - { - mNewData->behaviorGroups.buf[i].damageSpread.minimumRadius = mLegacyData->behaviorGroups.buf[i].minimumDamageRadius; - mNewData->behaviorGroups.buf[i].damageSpread.radiusMultiplier = mLegacyData->behaviorGroups.buf[i].damageRadiusMultiplier; - mNewData->behaviorGroups.buf[i].damageSpread.falloffExponent = mLegacyData->behaviorGroups.buf[i].damageFalloffExponent; - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P15_0P16H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P15_0P16H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p15.h" +#include "DestructibleAssetParameters_0p16.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p15_0p16Parent; + +class ConversionDestructibleAssetParameters_0p15_0p16: public ConversionDestructibleAssetParameters_0p15_0p16Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p15_0p16)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p15_0p16)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p15_0p16(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p15_0p16Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + // Convert default behavior group's damage spread function parameters + mNewData->defaultBehaviorGroup.damageSpread.minimumRadius = mLegacyData->defaultBehaviorGroup.minimumDamageRadius; + mNewData->defaultBehaviorGroup.damageSpread.radiusMultiplier = mLegacyData->defaultBehaviorGroup.damageRadiusMultiplier; + mNewData->defaultBehaviorGroup.damageSpread.falloffExponent = mLegacyData->defaultBehaviorGroup.damageFalloffExponent; + + // Convert user-defined behavior group's damage spread function parameters + const int32_t behaviorGroupCount = mLegacyData->behaviorGroups.arraySizes[0]; + PX_ASSERT(mNewData->behaviorGroups.arraySizes[0] == behaviorGroupCount); + for (int32_t i = 0; i < physx::PxMin(behaviorGroupCount, mNewData->behaviorGroups.arraySizes[0]); ++i) + { + mNewData->behaviorGroups.buf[i].damageSpread.minimumRadius = mLegacyData->behaviorGroups.buf[i].minimumDamageRadius; + mNewData->behaviorGroups.buf[i].damageSpread.radiusMultiplier = mLegacyData->behaviorGroups.buf[i].damageRadiusMultiplier; + mNewData->behaviorGroups.buf[i].damageSpread.falloffExponent = mLegacyData->behaviorGroups.buf[i].damageFalloffExponent; + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p16_0p17.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p16_0p17.h old mode 100644 new mode 100755 index 338b852..31fa6c0 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p16_0p17.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p16_0p17.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P16_0P17H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P16_0P17H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p16.h" -#include "DestructibleAssetParameters_0p17.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p16_0p17Parent; - -class ConversionDestructibleAssetParameters_0p16_0p17: public ConversionDestructibleAssetParameters_0p16_0p17Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p16_0p17)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p16_0p17)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p16_0p17(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p16_0p17Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P16_0P17H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P16_0P17H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p16.h" +#include "DestructibleAssetParameters_0p17.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p16_0p17Parent; + +class ConversionDestructibleAssetParameters_0p16_0p17: public ConversionDestructibleAssetParameters_0p16_0p17Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p16_0p17)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p16_0p17)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p16_0p17(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p16_0p17Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p17_0p18.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p17_0p18.h old mode 100644 new mode 100755 index 2f2cc0d..437fe67 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p17_0p18.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p17_0p18.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P17_0P18H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P17_0P18H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p17.h" -#include "DestructibleAssetParameters_0p18.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p17_0p18Parent; - -class ConversionDestructibleAssetParameters_0p17_0p18: public ConversionDestructibleAssetParameters_0p17_0p18Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p17_0p18)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p17_0p18)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p17_0p18(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p17_0p18Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P17_0P18H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P17_0P18H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p17.h" +#include "DestructibleAssetParameters_0p18.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p17_0p18Parent; + +class ConversionDestructibleAssetParameters_0p17_0p18: public ConversionDestructibleAssetParameters_0p17_0p18Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p17_0p18)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p17_0p18)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p17_0p18(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p17_0p18Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p18_0p19.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p18_0p19.h old mode 100644 new mode 100755 index ef9a470..8fdfbc2 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p18_0p19.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p18_0p19.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P18_0P19H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P18_0P19H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p18.h" -#include "DestructibleAssetParameters_0p19.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p18_0p19Parent; - -class ConversionDestructibleAssetParameters_0p18_0p19: public ConversionDestructibleAssetParameters_0p18_0p19Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p18_0p19)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p18_0p19)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p18_0p19(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p18_0p19Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P18_0P19H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P18_0P19H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p18.h" +#include "DestructibleAssetParameters_0p19.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p18_0p19Parent; + +class ConversionDestructibleAssetParameters_0p18_0p19: public ConversionDestructibleAssetParameters_0p18_0p19Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p18_0p19)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p18_0p19)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p18_0p19(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p18_0p19Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p19_0p20.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p19_0p20.h old mode 100644 new mode 100755 index f397e6b..45317bb --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p19_0p20.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p19_0p20.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P19_0P20H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P19_0P20H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p19.h" -#include "DestructibleAssetParameters_0p20.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p19_0p20Parent; - -class ConversionDestructibleAssetParameters_0p19_0p20: public ConversionDestructibleAssetParameters_0p19_0p20Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p19_0p20)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p19_0p20)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p19_0p20(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p19_0p20Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - // Convert to new behaviorGroup index convention - - const int32_t chunkCount = mNewData->chunks.arraySizes[0]; - for (int32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) - { - parameterized::DestructibleAssetParameters_0p20NS::Chunk_Type& chunk = mNewData->chunks.buf[chunkIndex]; - if (chunk.parentIndex < chunkCount && chunk.behaviorGroupIndex < 0) - { - chunk.behaviorGroupIndex = mNewData->chunks.buf[chunk.parentIndex].behaviorGroupIndex; - } - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P19_0P20H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P19_0P20H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p19.h" +#include "DestructibleAssetParameters_0p20.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p19_0p20Parent; + +class ConversionDestructibleAssetParameters_0p19_0p20: public ConversionDestructibleAssetParameters_0p19_0p20Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p19_0p20)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p19_0p20)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p19_0p20(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p19_0p20Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + // Convert to new behaviorGroup index convention + + const int32_t chunkCount = mNewData->chunks.arraySizes[0]; + for (int32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) + { + parameterized::DestructibleAssetParameters_0p20NS::Chunk_Type& chunk = mNewData->chunks.buf[chunkIndex]; + if (chunk.parentIndex < chunkCount && chunk.behaviorGroupIndex < 0) + { + chunk.behaviorGroupIndex = mNewData->chunks.buf[chunk.parentIndex].behaviorGroupIndex; + } + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p1_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p1_0p2.h old mode 100644 new mode 100755 index 03c1c5c..93910b9 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p1_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p1_0p2.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P1_0P2H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P1_0P2H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p1.h" -#include "DestructibleAssetParameters_0p2.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p1_0p2Parent; - -class ConversionDestructibleAssetParameters_0p1_0p2: public ConversionDestructibleAssetParameters_0p1_0p2Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p1_0p2)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p1_0p2)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p1_0p2Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P1_0P2H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P1_0P2H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p1.h" +#include "DestructibleAssetParameters_0p2.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p1_0p2Parent; + +class ConversionDestructibleAssetParameters_0p1_0p2: public ConversionDestructibleAssetParameters_0p1_0p2Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p1_0p2)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p1_0p2)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p1_0p2Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p20_0p21.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p20_0p21.h old mode 100644 new mode 100755 index 15fc309..341191d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p20_0p21.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p20_0p21.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P20_0P21H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P20_0P21H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p20.h" -#include "DestructibleAssetParameters_0p21.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p20_0p21Parent; - -class ConversionDestructibleAssetParameters_0p20_0p21: public ConversionDestructibleAssetParameters_0p20_0p21Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p20_0p21)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p20_0p21)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p20_0p21(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p20_0p21Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P20_0P21H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P20_0P21H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p20.h" +#include "DestructibleAssetParameters_0p21.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p20_0p21Parent; + +class ConversionDestructibleAssetParameters_0p20_0p21: public ConversionDestructibleAssetParameters_0p20_0p21Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p20_0p21)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p20_0p21)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p20_0p21(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p20_0p21Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p21_0p22.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p21_0p22.h old mode 100644 new mode 100755 index 5fdf746..9f1398f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p21_0p22.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p21_0p22.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P21_0P22H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P21_0P22H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p21.h" -#include "DestructibleAssetParameters_0p22.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p21_0p22Parent; - -class ConversionDestructibleAssetParameters_0p21_0p22: public ConversionDestructibleAssetParameters_0p21_0p22Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p21_0p22)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p21_0p22)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p21_0p22(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p21_0p22Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P21_0P22H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P21_0P22H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p21.h" +#include "DestructibleAssetParameters_0p22.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p21_0p22Parent; + +class ConversionDestructibleAssetParameters_0p21_0p22: public ConversionDestructibleAssetParameters_0p21_0p22Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p21_0p22)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p21_0p22)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p21_0p22(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p21_0p22Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p22_0p23.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p22_0p23.h old mode 100644 new mode 100755 index a917ad1..7f4ebe9 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p22_0p23.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p22_0p23.h @@ -1,85 +1,85 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P22_0P23H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P22_0P23H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p22.h" -#include "DestructibleAssetParameters_0p23.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p22_0p23Parent; - -class ConversionDestructibleAssetParameters_0p22_0p23: public ConversionDestructibleAssetParameters_0p22_0p23Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p22_0p23)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p22_0p23)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p22_0p23(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p22_0p23Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - // dynamic array needs explicit initialization of it's members to default - for (int32_t i = 0; i < mNewData->behaviorGroups.arraySizes[0]; ++i) - { - mNewData->behaviorGroups.buf[i].maxDepenetrationVelocity = PX_MAX_F32; - } - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P22_0P23H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P22_0P23H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p22.h" +#include "DestructibleAssetParameters_0p23.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p22_0p23Parent; + +class ConversionDestructibleAssetParameters_0p22_0p23: public ConversionDestructibleAssetParameters_0p22_0p23Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p22_0p23)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p22_0p23)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p22_0p23(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p22_0p23Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + // dynamic array needs explicit initialization of it's members to default + for (int32_t i = 0; i < mNewData->behaviorGroups.arraySizes[0]; ++i) + { + mNewData->behaviorGroups.buf[i].maxDepenetrationVelocity = PX_MAX_F32; + } + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p23_0p24.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p23_0p24.h old mode 100644 new mode 100755 index bcab582..f0ba745 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p23_0p24.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p23_0p24.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P23_0P24H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P23_0P24H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p23.h" -#include "DestructibleAssetParameters_0p24.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p23_0p24Parent; - -class ConversionDestructibleAssetParameters_0p23_0p24: public ConversionDestructibleAssetParameters_0p23_0p24Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p23_0p24)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p23_0p24)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p23_0p24(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p23_0p24Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P23_0P24H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P23_0P24H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p23.h" +#include "DestructibleAssetParameters_0p24.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p23_0p24Parent; + +class ConversionDestructibleAssetParameters_0p23_0p24: public ConversionDestructibleAssetParameters_0p23_0p24Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p23_0p24)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p23_0p24)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p23_0p24(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p23_0p24Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p24_0p25.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p24_0p25.h old mode 100644 new mode 100755 index 7468afc..2af2534 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p24_0p25.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p24_0p25.h @@ -1,84 +1,84 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P24_0P25H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P24_0P25H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p24.h" -#include "DestructibleAssetParameters_0p25.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p24_0p25Parent; - -class ConversionDestructibleAssetParameters_0p24_0p25: public ConversionDestructibleAssetParameters_0p24_0p25Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p24_0p25)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p24_0p25)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p24_0p25(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p24_0p25Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (PxU32)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - for (int i = 0; i < mLegacyData->scatterMeshTransforms.arraySizes[0]; ++i) - { - mNewData->scatterMeshTransforms.buf[i] = physx::PxMat44(mLegacyData->scatterMeshTransforms.buf[i].matrix, - mLegacyData->scatterMeshTransforms.buf[i].vector); - } - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P24_0P25H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P24_0P25H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p24.h" +#include "DestructibleAssetParameters_0p25.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p24_0p25Parent; + +class ConversionDestructibleAssetParameters_0p24_0p25: public ConversionDestructibleAssetParameters_0p24_0p25Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p24_0p25)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p24_0p25)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p24_0p25(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p24_0p25Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (PxU32)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + for (int i = 0; i < mLegacyData->scatterMeshTransforms.arraySizes[0]; ++i) + { + mNewData->scatterMeshTransforms.buf[i] = physx::PxMat44(mLegacyData->scatterMeshTransforms.buf[i].matrix, + mLegacyData->scatterMeshTransforms.buf[i].vector); + } + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p25_0p26.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p25_0p26.h old mode 100644 new mode 100755 index 8de268d..aa66d31 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p25_0p26.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p25_0p26.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P25_0P26H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P25_0P26H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p25.h" -#include "DestructibleAssetParameters_0p26.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p25_0p26Parent; - -class ConversionDestructibleAssetParameters_0p25_0p26: public ConversionDestructibleAssetParameters_0p25_0p26Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p25_0p26)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p25_0p26)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p25_0p26(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p25_0p26Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P25_0P26H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P25_0P26H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p25.h" +#include "DestructibleAssetParameters_0p26.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p25_0p26Parent; + +class ConversionDestructibleAssetParameters_0p25_0p26: public ConversionDestructibleAssetParameters_0p25_0p26Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p25_0p26)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p25_0p26)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p25_0p26(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p25_0p26Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p2_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p2_0p3.h old mode 100644 new mode 100755 index 1b0176e..389662b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p2_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p2_0p3.h @@ -1,74 +1,74 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P2_0P3H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P2_0P3H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p2.h" -#include "DestructibleAssetParameters_0p3.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p2_0p3Parent; - -class ConversionDestructibleAssetParameters_0p2_0p3: public ConversionDestructibleAssetParameters_0p2_0p3Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p2_0p3)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p2_0p3)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p2_0p3Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - mNewData->massScaleExponent = mLegacyData->destructibleParameters.massScaleExponent; - mNewData->supportDepth = mLegacyData->destructibleParameters.supportDepth; - mNewData->formExtendedStructures = mLegacyData->destructibleParameters.formExtendedStructures != 0; - mNewData->useAssetDefinedSupport = mLegacyData->destructibleParameters.flags.ASSET_DEFINED_SUPPORT; - mNewData->useWorldSupport = mLegacyData->destructibleParameters.flags.WORLD_SUPPORT; - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P2_0P3H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P2_0P3H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p2.h" +#include "DestructibleAssetParameters_0p3.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p2_0p3Parent; + +class ConversionDestructibleAssetParameters_0p2_0p3: public ConversionDestructibleAssetParameters_0p2_0p3Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p2_0p3)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p2_0p3)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p2_0p3Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + mNewData->massScaleExponent = mLegacyData->destructibleParameters.massScaleExponent; + mNewData->supportDepth = mLegacyData->destructibleParameters.supportDepth; + mNewData->formExtendedStructures = mLegacyData->destructibleParameters.formExtendedStructures != 0; + mNewData->useAssetDefinedSupport = mLegacyData->destructibleParameters.flags.ASSET_DEFINED_SUPPORT; + mNewData->useWorldSupport = mLegacyData->destructibleParameters.flags.WORLD_SUPPORT; + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p3_0p4.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p3_0p4.h old mode 100644 new mode 100755 index cc7f03f..7e8bc1a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p3_0p4.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p3_0p4.h @@ -1,76 +1,76 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P3_0P4H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P3_0P4H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p3.h" -#include "DestructibleAssetParameters_0p4.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p3_0p4Parent; - -class ConversionDestructibleAssetParameters_0p3_0p4: public ConversionDestructibleAssetParameters_0p3_0p4Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p3_0p4)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p3_0p4)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p3_0p4(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p3_0p4Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - NvParameterized::Handle handle(*mNewData); - mNewData->getParameterHandle("chunkConvexHullStartIndices", handle); - mNewData->resizeArray(handle, mNewData->chunks.arraySizes[0] + 1); - for (int32_t i = 0; i <= mNewData->chunks.arraySizes[0]; ++i) - { - mNewData->chunkConvexHullStartIndices.buf[i] = (uint32_t)i; - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P3_0P4H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P3_0P4H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p3.h" +#include "DestructibleAssetParameters_0p4.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p3_0p4Parent; + +class ConversionDestructibleAssetParameters_0p3_0p4: public ConversionDestructibleAssetParameters_0p3_0p4Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p3_0p4)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p3_0p4)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p3_0p4(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p3_0p4Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + NvParameterized::Handle handle(*mNewData); + mNewData->getParameterHandle("chunkConvexHullStartIndices", handle); + mNewData->resizeArray(handle, mNewData->chunks.arraySizes[0] + 1); + for (int32_t i = 0; i <= mNewData->chunks.arraySizes[0]; ++i) + { + mNewData->chunkConvexHullStartIndices.buf[i] = (uint32_t)i; + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p4_0p5.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p4_0p5.h old mode 100644 new mode 100755 index a57e829..1a5ea76 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p4_0p5.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p4_0p5.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P4_0P5H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P4_0P5H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p4.h" -#include "DestructibleAssetParameters_0p5.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p4_0p5Parent; - -class ConversionDestructibleAssetParameters_0p4_0p5: public ConversionDestructibleAssetParameters_0p4_0p5Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p4_0p5)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p4_0p5)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p4_0p5(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p4_0p5Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P4_0P5H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P4_0P5H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p4.h" +#include "DestructibleAssetParameters_0p5.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p4_0p5Parent; + +class ConversionDestructibleAssetParameters_0p4_0p5: public ConversionDestructibleAssetParameters_0p4_0p5Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p4_0p5)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p4_0p5)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p4_0p5(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p4_0p5Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p5_0p6.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p5_0p6.h old mode 100644 new mode 100755 index 063f673..68996ef --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p5_0p6.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p5_0p6.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P5_0P6H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P5_0P6H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p5.h" -#include "DestructibleAssetParameters_0p6.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p5_0p6Parent; - -class ConversionDestructibleAssetParameters_0p5_0p6: public ConversionDestructibleAssetParameters_0p5_0p6Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p5_0p6)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p5_0p6)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p5_0p6(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p5_0p6Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P5_0P6H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P5_0P6H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p5.h" +#include "DestructibleAssetParameters_0p6.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p5_0p6Parent; + +class ConversionDestructibleAssetParameters_0p5_0p6: public ConversionDestructibleAssetParameters_0p5_0p6Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p5_0p6)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p5_0p6)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p5_0p6(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p5_0p6Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p6_0p7.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p6_0p7.h old mode 100644 new mode 100755 index c2d05d8..a5e3473 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p6_0p7.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p6_0p7.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P6_0P7H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P6_0P7H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p6.h" -#include "DestructibleAssetParameters_0p7.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p6_0p7Parent; - -class ConversionDestructibleAssetParameters_0p6_0p7: public ConversionDestructibleAssetParameters_0p6_0p7Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p6_0p7)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p6_0p7)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p6_0p7(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p6_0p7Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P6_0P7H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P6_0P7H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p6.h" +#include "DestructibleAssetParameters_0p7.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p6_0p7Parent; + +class ConversionDestructibleAssetParameters_0p6_0p7: public ConversionDestructibleAssetParameters_0p6_0p7Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p6_0p7)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p6_0p7)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p6_0p7(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p6_0p7Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p7_0p8.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p7_0p8.h old mode 100644 new mode 100755 index a45fe43..5806183 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p7_0p8.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p7_0p8.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P7_0P8H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P7_0P8H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p7.h" -#include "DestructibleAssetParameters_0p8.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p7_0p8Parent; - -class ConversionDestructibleAssetParameters_0p7_0p8: public ConversionDestructibleAssetParameters_0p7_0p8Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p7_0p8)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p7_0p8)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p7_0p8(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p7_0p8Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P7_0P8H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P7_0P8H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p7.h" +#include "DestructibleAssetParameters_0p8.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p7_0p8Parent; + +class ConversionDestructibleAssetParameters_0p7_0p8: public ConversionDestructibleAssetParameters_0p7_0p8Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p7_0p8)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p7_0p8)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p7_0p8(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p7_0p8Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p8_0p9.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p8_0p9.h old mode 100644 new mode 100755 index 206eb6f..1bc6e26 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p8_0p9.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p8_0p9.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P8_0P9H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P8_0P9H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p8.h" -#include "DestructibleAssetParameters_0p9.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p8_0p9Parent; - -class ConversionDestructibleAssetParameters_0p8_0p9: public ConversionDestructibleAssetParameters_0p8_0p9Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p8_0p9)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p8_0p9)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p8_0p9(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p8_0p9Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P8_0P9H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P8_0P9H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p8.h" +#include "DestructibleAssetParameters_0p9.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p8_0p9Parent; + +class ConversionDestructibleAssetParameters_0p8_0p9: public ConversionDestructibleAssetParameters_0p8_0p9Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p8_0p9)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p8_0p9)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p8_0p9(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p8_0p9Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p9_0p10.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p9_0p10.h old mode 100644 new mode 100755 index 9d4e61e..2aab700 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p9_0p10.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleAssetParameters_0p9_0p10.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P9_0P10H_H -#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P9_0P10H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleAssetParameters_0p9.h" -#include "DestructibleAssetParameters_0p10.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleAssetParameters_0p9_0p10Parent; - -class ConversionDestructibleAssetParameters_0p9_0p10: public ConversionDestructibleAssetParameters_0p9_0p10Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p9_0p10)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p9_0p10)(t) : 0; - } - -protected: - ConversionDestructibleAssetParameters_0p9_0p10(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p9_0p10Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P9_0P10H_H +#define MODULE_CONVERSIONDESTRUCTIBLEASSETPARAMETERS_0P9_0P10H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleAssetParameters_0p9.h" +#include "DestructibleAssetParameters_0p10.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleAssetParameters_0p9_0p10Parent; + +class ConversionDestructibleAssetParameters_0p9_0p10: public ConversionDestructibleAssetParameters_0p9_0p10Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleAssetParameters_0p9_0p10)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleAssetParameters_0p9_0p10)(t) : 0; + } + +protected: + ConversionDestructibleAssetParameters_0p9_0p10(NvParameterized::Traits* t) : ConversionDestructibleAssetParameters_0p9_0p10Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p0_0p1.h old mode 100644 new mode 100755 index 31315b9..0abb113 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p0_0p1.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P0_0P1H_H -#define MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleModuleParameters_0p0.h" -#include "DestructibleModuleParameters_0p1.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleModuleParameters_0p0_0p1Parent; - -class ConversionDestructibleModuleParameters_0p0_0p1: public ConversionDestructibleModuleParameters_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleModuleParameters_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleModuleParameters_0p0_0p1)(t) : 0; - } - -protected: - ConversionDestructibleModuleParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleModuleParameters_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P0_0P1H_H +#define MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleModuleParameters_0p0.h" +#include "DestructibleModuleParameters_0p1.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleModuleParameters_0p0_0p1Parent; + +class ConversionDestructibleModuleParameters_0p0_0p1: public ConversionDestructibleModuleParameters_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleModuleParameters_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleModuleParameters_0p0_0p1)(t) : 0; + } + +protected: + ConversionDestructibleModuleParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionDestructibleModuleParameters_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p1_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p1_0p2.h old mode 100644 new mode 100755 index 615f981..83b83df --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p1_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p1_0p2.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P1_0P2H_H -#define MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P1_0P2H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleModuleParameters_0p1.h" -#include "DestructibleModuleParameters_0p2.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleModuleParameters_0p1_0p2Parent; - -class ConversionDestructibleModuleParameters_0p1_0p2: public ConversionDestructibleModuleParameters_0p1_0p2Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleModuleParameters_0p1_0p2)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleModuleParameters_0p1_0p2)(t) : 0; - } - -protected: - ConversionDestructibleModuleParameters_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleModuleParameters_0p1_0p2Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P1_0P2H_H +#define MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P1_0P2H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleModuleParameters_0p1.h" +#include "DestructibleModuleParameters_0p2.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleModuleParameters_0p1_0p2Parent; + +class ConversionDestructibleModuleParameters_0p1_0p2: public ConversionDestructibleModuleParameters_0p1_0p2Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleModuleParameters_0p1_0p2)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleModuleParameters_0p1_0p2)(t) : 0; + } + +protected: + ConversionDestructibleModuleParameters_0p1_0p2(NvParameterized::Traits* t) : ConversionDestructibleModuleParameters_0p1_0p2Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p2_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p2_0p3.h old mode 100644 new mode 100755 index bd72ceb..f033cf4 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p2_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionDestructibleModuleParameters_0p2_0p3.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P2_0P3H_H -#define MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P2_0P3H_H - -#include "NvParamConversionTemplate.h" -#include "DestructibleModuleParameters_0p2.h" -#include "DestructibleModuleParameters_0p3.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionDestructibleModuleParameters_0p2_0p3Parent; - -class ConversionDestructibleModuleParameters_0p2_0p3: public ConversionDestructibleModuleParameters_0p2_0p3Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionDestructibleModuleParameters_0p2_0p3)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleModuleParameters_0p2_0p3)(t) : 0; - } - -protected: - ConversionDestructibleModuleParameters_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleModuleParameters_0p2_0p3Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P2_0P3H_H +#define MODULE_CONVERSIONDESTRUCTIBLEMODULEPARAMETERS_0P2_0P3H_H + +#include "NvParamConversionTemplate.h" +#include "DestructibleModuleParameters_0p2.h" +#include "DestructibleModuleParameters_0p3.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionDestructibleModuleParameters_0p2_0p3Parent; + +class ConversionDestructibleModuleParameters_0p2_0p3: public ConversionDestructibleModuleParameters_0p2_0p3Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionDestructibleModuleParameters_0p2_0p3)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionDestructibleModuleParameters_0p2_0p3)(t) : 0; + } + +protected: + ConversionDestructibleModuleParameters_0p2_0p3(NvParameterized::Traits* t) : ConversionDestructibleModuleParameters_0p2_0p3Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p0_0p1.h old mode 100644 new mode 100755 index 0993bb1..4006bce --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p0_0p1.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P0_0P1H_H -#define MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "SurfaceTraceSetParameters_0p0.h" -#include "SurfaceTraceSetParameters_0p1.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionSurfaceTraceSetParameters_0p0_0p1Parent; - -class ConversionSurfaceTraceSetParameters_0p0_0p1: public ConversionSurfaceTraceSetParameters_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionSurfaceTraceSetParameters_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionSurfaceTraceSetParameters_0p0_0p1)(t) : 0; - } - -protected: - ConversionSurfaceTraceSetParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionSurfaceTraceSetParameters_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P0_0P1H_H +#define MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "SurfaceTraceSetParameters_0p0.h" +#include "SurfaceTraceSetParameters_0p1.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionSurfaceTraceSetParameters_0p0_0p1Parent; + +class ConversionSurfaceTraceSetParameters_0p0_0p1: public ConversionSurfaceTraceSetParameters_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionSurfaceTraceSetParameters_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionSurfaceTraceSetParameters_0p0_0p1)(t) : 0; + } + +protected: + ConversionSurfaceTraceSetParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionSurfaceTraceSetParameters_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p1_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p1_0p2.h old mode 100644 new mode 100755 index ae65945..60ea531 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p1_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/ConversionSurfaceTraceSetParameters_0p1_0p2.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P1_0P2H_H -#define MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P1_0P2H_H - -#include "NvParamConversionTemplate.h" -#include "SurfaceTraceSetParameters_0p1.h" -#include "SurfaceTraceSetParameters_0p2.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionSurfaceTraceSetParameters_0p1_0p2Parent; - -class ConversionSurfaceTraceSetParameters_0p1_0p2: public ConversionSurfaceTraceSetParameters_0p1_0p2Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionSurfaceTraceSetParameters_0p1_0p2)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionSurfaceTraceSetParameters_0p1_0p2)(t) : 0; - } - -protected: - ConversionSurfaceTraceSetParameters_0p1_0p2(NvParameterized::Traits* t) : ConversionSurfaceTraceSetParameters_0p1_0p2Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P1_0P2H_H +#define MODULE_CONVERSIONSURFACETRACESETPARAMETERS_0P1_0P2H_H + +#include "NvParamConversionTemplate.h" +#include "SurfaceTraceSetParameters_0p1.h" +#include "SurfaceTraceSetParameters_0p2.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionSurfaceTraceSetParameters_0p1_0p2Parent; + +class ConversionSurfaceTraceSetParameters_0p1_0p2: public ConversionSurfaceTraceSetParameters_0p1_0p2Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionSurfaceTraceSetParameters_0p1_0p2)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionSurfaceTraceSetParameters_0p1_0p2)(t) : 0; + } + +protected: + ConversionSurfaceTraceSetParameters_0p1_0p2(NvParameterized::Traits* t) : ConversionSurfaceTraceSetParameters_0p1_0p2Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p0.h old mode 100644 new mode 100755 index eae3a71..1397ed2 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p0.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_CachedOverlaps_0p0_h -#define HEADER_CachedOverlaps_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace CachedOverlaps_0p0NS -{ - -struct IntPair_Type; - -struct IntPair_DynamicArray1D_Type -{ - IntPair_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct IntPair_Type -{ - int32_t i0; - int32_t i1; -}; - -struct ParametersStruct -{ - - bool isCached; - IntPair_DynamicArray1D_Type overlaps; - -}; - -static const uint32_t checksum[] = { 0x48e6b53c, 0x54c6b8f6, 0xfd6fb9d9, 0xed400045, }; - -} // namespace CachedOverlaps_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class CachedOverlaps_0p0 : public NvParameterized::NvParameters, public CachedOverlaps_0p0NS::ParametersStruct -{ -public: - CachedOverlaps_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~CachedOverlaps_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("CachedOverlaps"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(CachedOverlaps_0p0NS::checksum); - return CachedOverlaps_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const CachedOverlaps_0p0NS::ParametersStruct& parameters(void) const - { - CachedOverlaps_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - CachedOverlaps_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class CachedOverlaps_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - CachedOverlaps_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(CachedOverlaps_0p0), CachedOverlaps_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, CachedOverlaps_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(CachedOverlaps_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, CachedOverlaps_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, CachedOverlaps_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, CachedOverlaps_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of CachedOverlaps_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (CachedOverlaps_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (CachedOverlaps_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (CachedOverlaps_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (CachedOverlaps_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (CachedOverlaps_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_CachedOverlaps_0p0_h +#define HEADER_CachedOverlaps_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace CachedOverlaps_0p0NS +{ + +struct IntPair_Type; + +struct IntPair_DynamicArray1D_Type +{ + IntPair_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct IntPair_Type +{ + int32_t i0; + int32_t i1; +}; + +struct ParametersStruct +{ + + bool isCached; + IntPair_DynamicArray1D_Type overlaps; + +}; + +static const uint32_t checksum[] = { 0x48e6b53c, 0x54c6b8f6, 0xfd6fb9d9, 0xed400045, }; + +} // namespace CachedOverlaps_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class CachedOverlaps_0p0 : public NvParameterized::NvParameters, public CachedOverlaps_0p0NS::ParametersStruct +{ +public: + CachedOverlaps_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~CachedOverlaps_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("CachedOverlaps"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(CachedOverlaps_0p0NS::checksum); + return CachedOverlaps_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const CachedOverlaps_0p0NS::ParametersStruct& parameters(void) const + { + CachedOverlaps_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + CachedOverlaps_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class CachedOverlaps_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + CachedOverlaps_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(CachedOverlaps_0p0), CachedOverlaps_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, CachedOverlaps_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(CachedOverlaps_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, CachedOverlaps_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, CachedOverlaps_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, CachedOverlaps_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of CachedOverlaps_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (CachedOverlaps_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (CachedOverlaps_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (CachedOverlaps_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (CachedOverlaps_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (CachedOverlaps_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p1.h old mode 100644 new mode 100755 index 85c3d85..41870ef --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/CachedOverlaps_0p1.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_CachedOverlaps_0p1_h -#define HEADER_CachedOverlaps_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace CachedOverlaps_0p1NS -{ - -struct IntPair_Type; - -struct IntPair_DynamicArray1D_Type -{ - IntPair_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct IntPair_Type -{ - int32_t i0; - int32_t i1; -}; - -struct ParametersStruct -{ - - bool isCached; - IntPair_DynamicArray1D_Type overlaps; - -}; - -static const uint32_t checksum[] = { 0x42ce64a0, 0x9634fff2, 0x6f308fbe, 0xf3ce7bcd, }; - -} // namespace CachedOverlaps_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class CachedOverlaps_0p1 : public NvParameterized::NvParameters, public CachedOverlaps_0p1NS::ParametersStruct -{ -public: - CachedOverlaps_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~CachedOverlaps_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("CachedOverlaps"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(CachedOverlaps_0p1NS::checksum); - return CachedOverlaps_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const CachedOverlaps_0p1NS::ParametersStruct& parameters(void) const - { - CachedOverlaps_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - CachedOverlaps_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class CachedOverlaps_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - CachedOverlaps_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(CachedOverlaps_0p1), CachedOverlaps_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, CachedOverlaps_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(CachedOverlaps_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, CachedOverlaps_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, CachedOverlaps_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, CachedOverlaps_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of CachedOverlaps_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (CachedOverlaps_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (CachedOverlaps_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (CachedOverlaps_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (CachedOverlaps_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (CachedOverlaps_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_CachedOverlaps_0p1_h +#define HEADER_CachedOverlaps_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace CachedOverlaps_0p1NS +{ + +struct IntPair_Type; + +struct IntPair_DynamicArray1D_Type +{ + IntPair_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct IntPair_Type +{ + int32_t i0; + int32_t i1; +}; + +struct ParametersStruct +{ + + bool isCached; + IntPair_DynamicArray1D_Type overlaps; + +}; + +static const uint32_t checksum[] = { 0x42ce64a0, 0x9634fff2, 0x6f308fbe, 0xf3ce7bcd, }; + +} // namespace CachedOverlaps_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class CachedOverlaps_0p1 : public NvParameterized::NvParameters, public CachedOverlaps_0p1NS::ParametersStruct +{ +public: + CachedOverlaps_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~CachedOverlaps_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("CachedOverlaps"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(CachedOverlaps_0p1NS::checksum); + return CachedOverlaps_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const CachedOverlaps_0p1NS::ParametersStruct& parameters(void) const + { + CachedOverlaps_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + CachedOverlaps_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class CachedOverlaps_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + CachedOverlaps_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(CachedOverlaps_0p1), CachedOverlaps_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, CachedOverlaps_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(CachedOverlaps_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, CachedOverlaps_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, CachedOverlaps_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, CachedOverlaps_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class CachedOverlaps_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of CachedOverlaps_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (CachedOverlaps_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (CachedOverlaps_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (CachedOverlaps_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (CachedOverlaps_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (CachedOverlaps_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorChunks_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorChunks_0p0.h old mode 100644 new mode 100755 index 3678175..b3a77cf --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorChunks_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorChunks_0p0.h @@ -1,253 +1,253 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorChunks_0p0_h -#define HEADER_DestructibleActorChunks_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorChunks_0p0NS -{ - -struct Chunk_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_Type -{ - uint8_t state; - uint8_t flags; - uint32_t islandID; - float damage; - physx::PxVec4 localSphere; - physx::PxVec3 localOffset; - int32_t visibleAncestorIndex; - uint32_t shapesCount; - physx::PxTransform globalPose; - physx::PxVec3 linearVelocity; - physx::PxVec3 angularVelocity; -}; - -struct ParametersStruct -{ - - Chunk_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x1f4e04ad, 0x95dc5558, 0x4dae15a1, 0x46caf98e, }; - -} // namespace DestructibleActorChunks_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorChunks_0p0 : public NvParameterized::NvParameters, public DestructibleActorChunks_0p0NS::ParametersStruct -{ -public: - DestructibleActorChunks_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorChunks_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorChunks"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorChunks_0p0NS::checksum); - return DestructibleActorChunks_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorChunks_0p0NS::ParametersStruct& parameters(void) const - { - DestructibleActorChunks_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorChunks_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorChunks_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorChunks_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorChunks_0p0), DestructibleActorChunks_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorChunks_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorChunks_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorChunks_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorChunks_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorChunks_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorChunks_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorChunks_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorChunks_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorChunks_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorChunks_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorChunks_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorChunks_0p0_h +#define HEADER_DestructibleActorChunks_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorChunks_0p0NS +{ + +struct Chunk_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_Type +{ + uint8_t state; + uint8_t flags; + uint32_t islandID; + float damage; + physx::PxVec4 localSphere; + physx::PxVec3 localOffset; + int32_t visibleAncestorIndex; + uint32_t shapesCount; + physx::PxTransform globalPose; + physx::PxVec3 linearVelocity; + physx::PxVec3 angularVelocity; +}; + +struct ParametersStruct +{ + + Chunk_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x1f4e04ad, 0x95dc5558, 0x4dae15a1, 0x46caf98e, }; + +} // namespace DestructibleActorChunks_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorChunks_0p0 : public NvParameterized::NvParameters, public DestructibleActorChunks_0p0NS::ParametersStruct +{ +public: + DestructibleActorChunks_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorChunks_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorChunks"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorChunks_0p0NS::checksum); + return DestructibleActorChunks_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorChunks_0p0NS::ParametersStruct& parameters(void) const + { + DestructibleActorChunks_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorChunks_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorChunks_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorChunks_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorChunks_0p0), DestructibleActorChunks_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorChunks_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorChunks_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorChunks_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorChunks_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorChunks_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorChunks_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorChunks_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorChunks_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorChunks_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorChunks_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorChunks_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorChunks_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p0.h old mode 100644 new mode 100755 index e1e37c8..8cab160 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p0.h @@ -1,428 +1,428 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p0_h -#define HEADER_DestructibleActorParam_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p0NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool ASSET_DEFINED_SUPPORT; - bool WORLD_SUPPORT; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float bias; - float benefitsBias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t formExtendedStructures; - uint32_t supportDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - float massScaleExponent; - DestructibleParametersFlag_Type flags; - float grbVolumeLimit; - float grbParticleSpacing; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0xd4b08535, 0x3442a17d, 0xa9c52df2, 0x56f139da, }; - -} // namespace DestructibleActorParam_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p0 : public NvParameterized::NvParameters, public DestructibleActorParam_0p0NS::ParametersStruct -{ -public: - DestructibleActorParam_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p0NS::checksum); - return DestructibleActorParam_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p0NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p0), DestructibleActorParam_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p0_h +#define HEADER_DestructibleActorParam_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p0NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool ASSET_DEFINED_SUPPORT; + bool WORLD_SUPPORT; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float bias; + float benefitsBias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t formExtendedStructures; + uint32_t supportDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + float massScaleExponent; + DestructibleParametersFlag_Type flags; + float grbVolumeLimit; + float grbParticleSpacing; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0xd4b08535, 0x3442a17d, 0xa9c52df2, 0x56f139da, }; + +} // namespace DestructibleActorParam_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p0 : public NvParameterized::NvParameters, public DestructibleActorParam_0p0NS::ParametersStruct +{ +public: + DestructibleActorParam_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p0NS::checksum); + return DestructibleActorParam_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p0NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p0), DestructibleActorParam_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p1.h old mode 100644 new mode 100755 index bf9a830..9194e11 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p1.h @@ -1,429 +1,429 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p1_h -#define HEADER_DestructibleActorParam_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p1NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool ASSET_DEFINED_SUPPORT; - bool WORLD_SUPPORT; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float bias; - float benefitsBias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t formExtendedStructures; - uint32_t supportDepth; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - float massScaleExponent; - DestructibleParametersFlag_Type flags; - float grbVolumeLimit; - float grbParticleSpacing; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0x3ad0af7d, 0xd7719dac, 0xf560b077, 0x017be9bb, }; - -} // namespace DestructibleActorParam_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p1 : public NvParameterized::NvParameters, public DestructibleActorParam_0p1NS::ParametersStruct -{ -public: - DestructibleActorParam_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p1NS::checksum); - return DestructibleActorParam_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p1NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p1), DestructibleActorParam_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p1_h +#define HEADER_DestructibleActorParam_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p1NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool ASSET_DEFINED_SUPPORT; + bool WORLD_SUPPORT; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float bias; + float benefitsBias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t formExtendedStructures; + uint32_t supportDepth; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + float massScaleExponent; + DestructibleParametersFlag_Type flags; + float grbVolumeLimit; + float grbParticleSpacing; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0x3ad0af7d, 0xd7719dac, 0xf560b077, 0x017be9bb, }; + +} // namespace DestructibleActorParam_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p1 : public NvParameterized::NvParameters, public DestructibleActorParam_0p1NS::ParametersStruct +{ +public: + DestructibleActorParam_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p1NS::checksum); + return DestructibleActorParam_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p1NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p1), DestructibleActorParam_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p10.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p10.h old mode 100644 new mode 100755 index 8cabf90..6ca3f1d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p10.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p10.h @@ -1,524 +1,524 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p10_h -#define HEADER_DestructibleActorParam_0p10_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p10NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0xbe978f37, 0x502639bf, 0x1719eb6b, 0xded5e239, }; - -} // namespace DestructibleActorParam_0p10NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p10 : public NvParameterized::NvParameters, public DestructibleActorParam_0p10NS::ParametersStruct -{ -public: - DestructibleActorParam_0p10(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p10(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)10; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p10NS::checksum); - return DestructibleActorParam_0p10NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p10NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p10* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p10NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p10Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p10::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p10), DestructibleActorParam_0p10::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p10::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p10"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p10)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p10)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p10::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p10::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p10"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p10 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p10*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p10::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p10::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p10::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p10::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p10_h +#define HEADER_DestructibleActorParam_0p10_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p10NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0xbe978f37, 0x502639bf, 0x1719eb6b, 0xded5e239, }; + +} // namespace DestructibleActorParam_0p10NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p10 : public NvParameterized::NvParameters, public DestructibleActorParam_0p10NS::ParametersStruct +{ +public: + DestructibleActorParam_0p10(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p10(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)10; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p10NS::checksum); + return DestructibleActorParam_0p10NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p10NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p10* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p10NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p10Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p10::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p10), DestructibleActorParam_0p10::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p10::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p10"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p10)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p10)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p10::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p10::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p10"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p10 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p10*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p10::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p10::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p10::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p10::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p11.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p11.h old mode 100644 new mode 100755 index 9d0e369..4961ba7 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p11.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p11.h @@ -1,525 +1,525 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p11_h -#define HEADER_DestructibleActorParam_0p11_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p11NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocitySmoothingFactor; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0xdd5dd270, 0x74d8996a, 0x63268e74, 0xb3dc6115, }; - -} // namespace DestructibleActorParam_0p11NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p11 : public NvParameterized::NvParameters, public DestructibleActorParam_0p11NS::ParametersStruct -{ -public: - DestructibleActorParam_0p11(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p11(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)11; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p11NS::checksum); - return DestructibleActorParam_0p11NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p11NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p11* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p11NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p11Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p11::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p11), DestructibleActorParam_0p11::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p11::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p11"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p11)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p11)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p11::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p11::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p11"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p11 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p11*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p11::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p11::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p11::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p11::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p11_h +#define HEADER_DestructibleActorParam_0p11_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p11NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocitySmoothingFactor; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0xdd5dd270, 0x74d8996a, 0x63268e74, 0xb3dc6115, }; + +} // namespace DestructibleActorParam_0p11NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p11 : public NvParameterized::NvParameters, public DestructibleActorParam_0p11NS::ParametersStruct +{ +public: + DestructibleActorParam_0p11(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p11(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)11; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p11NS::checksum); + return DestructibleActorParam_0p11NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p11NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p11* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p11NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p11Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p11::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p11), DestructibleActorParam_0p11::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p11::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p11"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p11)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p11)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p11::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p11::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p11"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p11 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p11*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p11::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p11::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p11::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p11::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p12.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p12.h old mode 100644 new mode 100755 index dea82e9..73c9bd4 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p12.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p12.h @@ -1,526 +1,526 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p12_h -#define HEADER_DestructibleActorParam_0p12_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p12NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0x0bf61569, 0xbaa5819e, 0x5ef9d546, 0xbe60fed3, }; - -} // namespace DestructibleActorParam_0p12NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p12 : public NvParameterized::NvParameters, public DestructibleActorParam_0p12NS::ParametersStruct -{ -public: - DestructibleActorParam_0p12(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p12(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)12; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p12NS::checksum); - return DestructibleActorParam_0p12NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p12NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p12* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p12NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p12Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p12::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p12), DestructibleActorParam_0p12::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p12::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p12"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p12)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p12)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p12::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p12::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p12"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p12 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p12*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p12::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p12::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p12::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p12::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p12_h +#define HEADER_DestructibleActorParam_0p12_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p12NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0x0bf61569, 0xbaa5819e, 0x5ef9d546, 0xbe60fed3, }; + +} // namespace DestructibleActorParam_0p12NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p12 : public NvParameterized::NvParameters, public DestructibleActorParam_0p12NS::ParametersStruct +{ +public: + DestructibleActorParam_0p12(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p12(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)12; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p12NS::checksum); + return DestructibleActorParam_0p12NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p12NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p12* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p12NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p12Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p12::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p12), DestructibleActorParam_0p12::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p12::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p12"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p12)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p12)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p12::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p12::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p12"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p12 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p12*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p12::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p12::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p12::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p12::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p13.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p13.h old mode 100644 new mode 100755 index 1fe63fa..0802050 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p13.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p13.h @@ -1,534 +1,534 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p13_h -#define HEADER_DestructibleActorParam_0p13_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p13NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - -}; - -static const uint32_t checksum[] = { 0x61491594, 0xc6bbcc7e, 0x465e5e58, 0x1aac70b5, }; - -} // namespace DestructibleActorParam_0p13NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p13 : public NvParameterized::NvParameters, public DestructibleActorParam_0p13NS::ParametersStruct -{ -public: - DestructibleActorParam_0p13(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p13(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)13; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p13NS::checksum); - return DestructibleActorParam_0p13NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p13NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p13* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p13NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p13Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p13::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p13), DestructibleActorParam_0p13::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p13::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p13"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p13)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p13)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p13::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p13::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p13"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p13 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p13*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p13::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p13::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p13::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p13::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p13_h +#define HEADER_DestructibleActorParam_0p13_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p13NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + +}; + +static const uint32_t checksum[] = { 0x61491594, 0xc6bbcc7e, 0x465e5e58, 0x1aac70b5, }; + +} // namespace DestructibleActorParam_0p13NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p13 : public NvParameterized::NvParameters, public DestructibleActorParam_0p13NS::ParametersStruct +{ +public: + DestructibleActorParam_0p13(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p13(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)13; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p13NS::checksum); + return DestructibleActorParam_0p13NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p13NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p13* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p13NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p13Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p13::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p13), DestructibleActorParam_0p13::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p13::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p13"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p13)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p13)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p13::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p13::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p13"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p13 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p13*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p13::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p13::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p13::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p13::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p14.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p14.h old mode 100644 new mode 100755 index ea664a7..394d175 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p14.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p14.h @@ -1,535 +1,535 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p14_h -#define HEADER_DestructibleActorParam_0p14_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p14NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - -}; - -static const uint32_t checksum[] = { 0xb1ba7cab, 0x2d216f2b, 0x80fa1a34, 0xd796c0b0, }; - -} // namespace DestructibleActorParam_0p14NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p14 : public NvParameterized::NvParameters, public DestructibleActorParam_0p14NS::ParametersStruct -{ -public: - DestructibleActorParam_0p14(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p14(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)14; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p14NS::checksum); - return DestructibleActorParam_0p14NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p14NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p14* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p14NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p14Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p14::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p14), DestructibleActorParam_0p14::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p14::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p14"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p14)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p14)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p14::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p14::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p14"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p14 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p14*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p14::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p14::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p14::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p14::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p14_h +#define HEADER_DestructibleActorParam_0p14_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p14NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + +}; + +static const uint32_t checksum[] = { 0xb1ba7cab, 0x2d216f2b, 0x80fa1a34, 0xd796c0b0, }; + +} // namespace DestructibleActorParam_0p14NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p14 : public NvParameterized::NvParameters, public DestructibleActorParam_0p14NS::ParametersStruct +{ +public: + DestructibleActorParam_0p14(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p14(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)14; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p14NS::checksum); + return DestructibleActorParam_0p14NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p14NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p14* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p14NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p14Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p14::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p14), DestructibleActorParam_0p14::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p14::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p14"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p14)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p14)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p14::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p14::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p14"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p14 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p14*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p14::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p14::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p14::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p14::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p15.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p15.h old mode 100644 new mode 100755 index 07b2136..03381f8 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p15.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p15.h @@ -1,553 +1,553 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p15_h -#define HEADER_DestructibleActorParam_0p15_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p15NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x78c8fde9, 0x751632a2, 0x8b1f93be, 0xace8e25b, }; - -} // namespace DestructibleActorParam_0p15NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p15 : public NvParameterized::NvParameters, public DestructibleActorParam_0p15NS::ParametersStruct -{ -public: - DestructibleActorParam_0p15(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p15(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)15; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p15NS::checksum); - return DestructibleActorParam_0p15NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p15NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p15* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p15NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p15Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p15::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p15), DestructibleActorParam_0p15::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p15::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p15"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p15)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p15)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p15::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p15::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p15"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p15 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p15*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p15::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p15::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p15::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p15::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p15_h +#define HEADER_DestructibleActorParam_0p15_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p15NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x78c8fde9, 0x751632a2, 0x8b1f93be, 0xace8e25b, }; + +} // namespace DestructibleActorParam_0p15NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p15 : public NvParameterized::NvParameters, public DestructibleActorParam_0p15NS::ParametersStruct +{ +public: + DestructibleActorParam_0p15(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p15(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)15; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p15NS::checksum); + return DestructibleActorParam_0p15NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p15NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p15* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p15NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p15Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p15::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p15), DestructibleActorParam_0p15::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p15::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p15"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p15)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p15)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p15::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p15::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p15"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p15 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p15*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p15::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p15::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p15::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p15::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p16.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p16.h old mode 100644 new mode 100755 index f108182..5ed642e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p16.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p16.h @@ -1,556 +1,556 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p16_h -#define HEADER_DestructibleActorParam_0p16_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p16NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - float minimumDamageRadius; - float damageRadiusMultiplier; - float damageFalloffExponent; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x200aebdd, 0x2a042ee9, 0x8778a11c, 0xfe43f8e4, }; - -} // namespace DestructibleActorParam_0p16NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p16 : public NvParameterized::NvParameters, public DestructibleActorParam_0p16NS::ParametersStruct -{ -public: - DestructibleActorParam_0p16(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p16(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)16; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p16NS::checksum); - return DestructibleActorParam_0p16NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p16NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p16* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p16NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p16Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p16::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p16), DestructibleActorParam_0p16::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p16::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p16"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p16)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p16)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p16::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p16::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p16"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p16 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p16*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p16::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p16::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p16::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p16::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p16_h +#define HEADER_DestructibleActorParam_0p16_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p16NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + float minimumDamageRadius; + float damageRadiusMultiplier; + float damageFalloffExponent; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x200aebdd, 0x2a042ee9, 0x8778a11c, 0xfe43f8e4, }; + +} // namespace DestructibleActorParam_0p16NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p16 : public NvParameterized::NvParameters, public DestructibleActorParam_0p16NS::ParametersStruct +{ +public: + DestructibleActorParam_0p16(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p16(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)16; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p16NS::checksum); + return DestructibleActorParam_0p16NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p16NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p16* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p16NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p16Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p16::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p16), DestructibleActorParam_0p16::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p16::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p16"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p16)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p16)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p16::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p16::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p16"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p16 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p16*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p16::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p16::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p16::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p16::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p17.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p17.h old mode 100644 new mode 100755 index 5f7cab9..be76321 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p17.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p17.h @@ -1,563 +1,563 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p17_h -#define HEADER_DestructibleActorParam_0p17_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p17NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x0f6b3b48, 0xf9950d84, 0x860f86a3, 0x7373e712, }; - -} // namespace DestructibleActorParam_0p17NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p17 : public NvParameterized::NvParameters, public DestructibleActorParam_0p17NS::ParametersStruct -{ -public: - DestructibleActorParam_0p17(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p17(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)17; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p17NS::checksum); - return DestructibleActorParam_0p17NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p17NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p17* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p17NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p17Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p17::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p17), DestructibleActorParam_0p17::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p17::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p17"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p17)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p17)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p17::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p17::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p17"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p17 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p17*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p17::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p17::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p17::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p17::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p17_h +#define HEADER_DestructibleActorParam_0p17_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p17NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x0f6b3b48, 0xf9950d84, 0x860f86a3, 0x7373e712, }; + +} // namespace DestructibleActorParam_0p17NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p17 : public NvParameterized::NvParameters, public DestructibleActorParam_0p17NS::ParametersStruct +{ +public: + DestructibleActorParam_0p17(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p17(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)17; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p17NS::checksum); + return DestructibleActorParam_0p17NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p17NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p17* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p17NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p17Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p17::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p17), DestructibleActorParam_0p17::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p17::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p17"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p17)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p17)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p17::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p17::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p17"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p17 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p17*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p17::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p17::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p17::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p17::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p18.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p18.h old mode 100644 new mode 100755 index d72ba82..25e768b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p18.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p18.h @@ -1,564 +1,564 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p18_h -#define HEADER_DestructibleActorParam_0p18_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p18NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0xff622f55, 0x361bdaca, 0x89c51449, 0xed0744fd, }; - -} // namespace DestructibleActorParam_0p18NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p18 : public NvParameterized::NvParameters, public DestructibleActorParam_0p18NS::ParametersStruct -{ -public: - DestructibleActorParam_0p18(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p18(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)18; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p18NS::checksum); - return DestructibleActorParam_0p18NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p18NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p18* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p18NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p18Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p18::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p18), DestructibleActorParam_0p18::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p18::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p18"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p18)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p18)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p18::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p18::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p18"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p18 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p18*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p18::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p18::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p18::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p18::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p18_h +#define HEADER_DestructibleActorParam_0p18_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p18NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0xff622f55, 0x361bdaca, 0x89c51449, 0xed0744fd, }; + +} // namespace DestructibleActorParam_0p18NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p18 : public NvParameterized::NvParameters, public DestructibleActorParam_0p18NS::ParametersStruct +{ +public: + DestructibleActorParam_0p18(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p18(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)18; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p18NS::checksum); + return DestructibleActorParam_0p18NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p18NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p18* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p18NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p18Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p18::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p18), DestructibleActorParam_0p18::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p18::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p18"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p18)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p18)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p18::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p18::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p18"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p18 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p18*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p18::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p18::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p18::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p18::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p19.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p19.h old mode 100644 new mode 100755 index 499a024..b058508 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p19.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p19.h @@ -1,562 +1,562 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p19_h -#define HEADER_DestructibleActorParam_0p19_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p19NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x2aa7f5df, 0xf588bdd6, 0xa5ae7f11, 0x8373b357, }; - -} // namespace DestructibleActorParam_0p19NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p19 : public NvParameterized::NvParameters, public DestructibleActorParam_0p19NS::ParametersStruct -{ -public: - DestructibleActorParam_0p19(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p19(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)19; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p19NS::checksum); - return DestructibleActorParam_0p19NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p19NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p19* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p19NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p19Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p19::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p19), DestructibleActorParam_0p19::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p19::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p19"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p19)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p19)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p19::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p19::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p19"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p19 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p19*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p19::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p19::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p19::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p19::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p19_h +#define HEADER_DestructibleActorParam_0p19_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p19NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x2aa7f5df, 0xf588bdd6, 0xa5ae7f11, 0x8373b357, }; + +} // namespace DestructibleActorParam_0p19NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p19 : public NvParameterized::NvParameters, public DestructibleActorParam_0p19NS::ParametersStruct +{ +public: + DestructibleActorParam_0p19(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p19(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)19; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p19NS::checksum); + return DestructibleActorParam_0p19NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p19NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p19* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p19NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p19Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p19::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p19), DestructibleActorParam_0p19::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p19::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p19"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p19)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p19)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p19::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p19::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p19"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p19 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p19*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p19::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p19::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p19::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p19::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p2.h old mode 100644 new mode 100755 index 3342be1..d583104 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p2.h @@ -1,430 +1,430 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p2_h -#define HEADER_DestructibleActorParam_0p2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p2NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool ASSET_DEFINED_SUPPORT; - bool WORLD_SUPPORT; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t formExtendedStructures; - uint32_t supportDepth; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - float massScaleExponent; - DestructibleParametersFlag_Type flags; - float grbVolumeLimit; - float grbParticleSpacing; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0x6c437fe3, 0x3032d3f2, 0xf24de685, 0x6c9d9517, }; - -} // namespace DestructibleActorParam_0p2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p2 : public NvParameterized::NvParameters, public DestructibleActorParam_0p2NS::ParametersStruct -{ -public: - DestructibleActorParam_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p2NS::checksum); - return DestructibleActorParam_0p2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p2NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p2), DestructibleActorParam_0p2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p2*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p2_h +#define HEADER_DestructibleActorParam_0p2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p2NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool ASSET_DEFINED_SUPPORT; + bool WORLD_SUPPORT; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t formExtendedStructures; + uint32_t supportDepth; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + float massScaleExponent; + DestructibleParametersFlag_Type flags; + float grbVolumeLimit; + float grbParticleSpacing; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0x6c437fe3, 0x3032d3f2, 0xf24de685, 0x6c9d9517, }; + +} // namespace DestructibleActorParam_0p2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p2 : public NvParameterized::NvParameters, public DestructibleActorParam_0p2NS::ParametersStruct +{ +public: + DestructibleActorParam_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p2NS::checksum); + return DestructibleActorParam_0p2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p2NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p2), DestructibleActorParam_0p2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p2*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p20.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p20.h old mode 100644 new mode 100755 index 99c55f5..0887f8e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p20.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p20.h @@ -1,563 +1,563 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p20_h -#define HEADER_DestructibleActorParam_0p20_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p20NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x4228a956, 0x3268533a, 0x5de01909, 0x8c2fbe43, }; - -} // namespace DestructibleActorParam_0p20NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p20 : public NvParameterized::NvParameters, public DestructibleActorParam_0p20NS::ParametersStruct -{ -public: - DestructibleActorParam_0p20(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p20(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)20; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p20NS::checksum); - return DestructibleActorParam_0p20NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p20NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p20* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p20NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p20Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p20::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p20), DestructibleActorParam_0p20::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p20::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p20"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p20)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p20)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p20::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p20::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p20"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p20 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p20*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p20::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p20::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p20::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p20::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p20_h +#define HEADER_DestructibleActorParam_0p20_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p20NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x4228a956, 0x3268533a, 0x5de01909, 0x8c2fbe43, }; + +} // namespace DestructibleActorParam_0p20NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p20 : public NvParameterized::NvParameters, public DestructibleActorParam_0p20NS::ParametersStruct +{ +public: + DestructibleActorParam_0p20(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p20(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)20; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p20NS::checksum); + return DestructibleActorParam_0p20NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p20NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p20* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p20NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p20Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p20::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p20), DestructibleActorParam_0p20::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p20::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p20"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p20)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p20)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p20::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p20::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p20"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p20 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p20*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p20::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p20::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p20::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p20::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p21.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p21.h old mode 100644 new mode 100755 index 2712ad8..e29b6dd --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p21.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p21.h @@ -1,594 +1,594 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p21_h -#define HEADER_DestructibleActorParam_0p21_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p21NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0xb123fb7a, 0xec9ad0ae, 0x50f992cf, 0xb7c21c7e, }; - -} // namespace DestructibleActorParam_0p21NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p21 : public NvParameterized::NvParameters, public DestructibleActorParam_0p21NS::ParametersStruct -{ -public: - DestructibleActorParam_0p21(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p21(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)21; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p21NS::checksum); - return DestructibleActorParam_0p21NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p21NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p21* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p21NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p21Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p21::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p21), DestructibleActorParam_0p21::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p21::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p21"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p21)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p21)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p21::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p21::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p21"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p21 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p21*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p21::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p21::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p21::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p21::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p21_h +#define HEADER_DestructibleActorParam_0p21_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p21NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0xb123fb7a, 0xec9ad0ae, 0x50f992cf, 0xb7c21c7e, }; + +} // namespace DestructibleActorParam_0p21NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p21 : public NvParameterized::NvParameters, public DestructibleActorParam_0p21NS::ParametersStruct +{ +public: + DestructibleActorParam_0p21(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p21(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)21; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p21NS::checksum); + return DestructibleActorParam_0p21NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p21NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p21* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p21NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p21Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p21::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p21), DestructibleActorParam_0p21::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p21::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p21"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p21)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p21)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p21::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p21::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p21"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p21 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p21*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p21::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p21::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p21::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p21::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p22.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p22.h old mode 100644 new mode 100755 index ade50d3..d8a6842 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p22.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p22.h @@ -1,595 +1,595 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p22_h -#define HEADER_DestructibleActorParam_0p22_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p22NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x5d2a8218, 0x162303c2, 0x230965d3, 0x8f4a9ad3, }; - -} // namespace DestructibleActorParam_0p22NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p22 : public NvParameterized::NvParameters, public DestructibleActorParam_0p22NS::ParametersStruct -{ -public: - DestructibleActorParam_0p22(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p22(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)22; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p22NS::checksum); - return DestructibleActorParam_0p22NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p22NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p22* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p22NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p22Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p22::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p22), DestructibleActorParam_0p22::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p22::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p22"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p22)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p22)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p22::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p22::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p22"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p22 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p22*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p22::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p22::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p22::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p22::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p22_h +#define HEADER_DestructibleActorParam_0p22_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p22NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x5d2a8218, 0x162303c2, 0x230965d3, 0x8f4a9ad3, }; + +} // namespace DestructibleActorParam_0p22NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p22 : public NvParameterized::NvParameters, public DestructibleActorParam_0p22NS::ParametersStruct +{ +public: + DestructibleActorParam_0p22(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p22(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)22; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p22NS::checksum); + return DestructibleActorParam_0p22NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p22NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p22* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p22NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p22Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p22::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p22), DestructibleActorParam_0p22::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p22::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p22"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p22)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p22)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p22::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p22::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p22"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p22 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p22*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p22::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p22::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p22::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p22::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p23.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p23.h old mode 100644 new mode 100755 index 28b9437..d46676c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p23.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p23.h @@ -1,596 +1,596 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p23_h -#define HEADER_DestructibleActorParam_0p23_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p23NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x9dac7baf, 0x68d5975c, 0xd197f8d7, 0x1c865fe2, }; - -} // namespace DestructibleActorParam_0p23NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p23 : public NvParameterized::NvParameters, public DestructibleActorParam_0p23NS::ParametersStruct -{ -public: - DestructibleActorParam_0p23(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p23(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)23; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p23NS::checksum); - return DestructibleActorParam_0p23NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p23NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p23* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p23NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p23Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p23::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p23), DestructibleActorParam_0p23::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p23::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p23"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p23)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p23)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p23::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p23::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p23"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p23 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p23*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p23::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p23::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p23::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p23::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p23_h +#define HEADER_DestructibleActorParam_0p23_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p23NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x9dac7baf, 0x68d5975c, 0xd197f8d7, 0x1c865fe2, }; + +} // namespace DestructibleActorParam_0p23NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p23 : public NvParameterized::NvParameters, public DestructibleActorParam_0p23NS::ParametersStruct +{ +public: + DestructibleActorParam_0p23(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p23(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)23; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p23NS::checksum); + return DestructibleActorParam_0p23NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p23NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p23* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p23NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p23Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p23::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p23), DestructibleActorParam_0p23::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p23::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p23"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p23)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p23)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p23::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p23::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p23"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p23 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p23*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p23::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p23::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p23::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p23::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p24.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p24.h old mode 100644 new mode 100755 index 33190d9..5c7bde7 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p24.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p24.h @@ -1,597 +1,597 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p24_h -#define HEADER_DestructibleActorParam_0p24_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p24NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0x12f03764, 0x6a055959, 0xdb7782c7, 0xd6f432b2, }; - -} // namespace DestructibleActorParam_0p24NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p24 : public NvParameterized::NvParameters, public DestructibleActorParam_0p24NS::ParametersStruct -{ -public: - DestructibleActorParam_0p24(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p24(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)24; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p24NS::checksum); - return DestructibleActorParam_0p24NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p24NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p24* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p24NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p24Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p24::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p24), DestructibleActorParam_0p24::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p24::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p24"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p24)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p24)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p24::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p24::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p24"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p24 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p24*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p24::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p24::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p24::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p24::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p24_h +#define HEADER_DestructibleActorParam_0p24_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p24NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0x12f03764, 0x6a055959, 0xdb7782c7, 0xd6f432b2, }; + +} // namespace DestructibleActorParam_0p24NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p24 : public NvParameterized::NvParameters, public DestructibleActorParam_0p24NS::ParametersStruct +{ +public: + DestructibleActorParam_0p24(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p24(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)24; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p24NS::checksum); + return DestructibleActorParam_0p24NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p24NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p24* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p24NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p24Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p24::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p24), DestructibleActorParam_0p24::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p24::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p24"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p24)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p24)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p24::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p24::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p24"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p24 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p24*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p24::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p24::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p24::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p24::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p25.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p25.h old mode 100644 new mode 100755 index a0cd012..49faf7d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p25.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p25.h @@ -1,607 +1,607 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p25_h -#define HEADER_DestructibleActorParam_0p25_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p25NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0xd9bc5e44, 0x46845bcb, 0x9290fe16, 0x5b7dbd03, }; - -} // namespace DestructibleActorParam_0p25NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p25 : public NvParameterized::NvParameters, public DestructibleActorParam_0p25NS::ParametersStruct -{ -public: - DestructibleActorParam_0p25(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p25(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)25; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p25NS::checksum); - return DestructibleActorParam_0p25NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p25NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p25* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p25NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p25Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p25::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p25), DestructibleActorParam_0p25::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p25::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p25"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p25)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p25)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p25::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p25::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p25"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p25 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p25*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p25::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p25::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p25::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p25::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p25_h +#define HEADER_DestructibleActorParam_0p25_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p25NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0xd9bc5e44, 0x46845bcb, 0x9290fe16, 0x5b7dbd03, }; + +} // namespace DestructibleActorParam_0p25NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p25 : public NvParameterized::NvParameters, public DestructibleActorParam_0p25NS::ParametersStruct +{ +public: + DestructibleActorParam_0p25(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p25(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)25; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p25NS::checksum); + return DestructibleActorParam_0p25NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p25NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p25* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p25NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p25Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p25::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p25), DestructibleActorParam_0p25::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p25::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p25"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p25)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p25)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p25::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p25::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p25"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p25 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p25*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p25::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p25::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p25::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p25::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p26.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p26.h old mode 100644 new mode 100755 index 5394c6a..e8a1f25 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p26.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p26.h @@ -1,608 +1,608 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p26_h -#define HEADER_DestructibleActorParam_0p26_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p26NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - -}; - -static const uint32_t checksum[] = { 0xf37099cc, 0xf6c52cc1, 0x25c08d5f, 0x60700856, }; - -} // namespace DestructibleActorParam_0p26NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p26 : public NvParameterized::NvParameters, public DestructibleActorParam_0p26NS::ParametersStruct -{ -public: - DestructibleActorParam_0p26(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p26(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)26; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p26NS::checksum); - return DestructibleActorParam_0p26NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p26NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p26* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p26NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p26Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p26::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p26), DestructibleActorParam_0p26::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p26::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p26"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p26)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p26)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p26::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p26::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p26"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p26 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p26*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p26::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p26::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p26::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p26::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p26_h +#define HEADER_DestructibleActorParam_0p26_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p26NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + +}; + +static const uint32_t checksum[] = { 0xf37099cc, 0xf6c52cc1, 0x25c08d5f, 0x60700856, }; + +} // namespace DestructibleActorParam_0p26NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p26 : public NvParameterized::NvParameters, public DestructibleActorParam_0p26NS::ParametersStruct +{ +public: + DestructibleActorParam_0p26(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p26(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)26; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p26NS::checksum); + return DestructibleActorParam_0p26NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p26NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p26* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p26NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p26Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p26::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p26), DestructibleActorParam_0p26::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p26::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p26"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p26)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p26)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p26::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p26::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p26"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p26 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p26*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p26::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p26::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p26::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p26::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p27.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p27.h old mode 100644 new mode 100755 index daf77d4..b7d6ad1 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p27.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p27.h @@ -1,611 +1,611 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p27_h -#define HEADER_DestructibleActorParam_0p27_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p27NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - uint32_t velocityIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - bool deleteChunksLeavingUserDefinedBB; - bool deleteChunksEnteringUserDefinedBB; - -}; - -static const uint32_t checksum[] = { 0x1401008a, 0x584084b6, 0x4a58beff, 0xbf4018ea, }; - -} // namespace DestructibleActorParam_0p27NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p27 : public NvParameterized::NvParameters, public DestructibleActorParam_0p27NS::ParametersStruct -{ -public: - DestructibleActorParam_0p27(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p27(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)27; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p27NS::checksum); - return DestructibleActorParam_0p27NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p27NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p27* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p27NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p27Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p27::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p27), DestructibleActorParam_0p27::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p27::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p27"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p27)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p27)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p27::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p27::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p27"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p27 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p27*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p27::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p27::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p27::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p27::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p27_h +#define HEADER_DestructibleActorParam_0p27_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p27NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + uint32_t velocityIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + bool deleteChunksLeavingUserDefinedBB; + bool deleteChunksEnteringUserDefinedBB; + +}; + +static const uint32_t checksum[] = { 0x1401008a, 0x584084b6, 0x4a58beff, 0xbf4018ea, }; + +} // namespace DestructibleActorParam_0p27NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p27 : public NvParameterized::NvParameters, public DestructibleActorParam_0p27NS::ParametersStruct +{ +public: + DestructibleActorParam_0p27(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p27(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)27; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p27NS::checksum); + return DestructibleActorParam_0p27NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p27NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p27* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p27NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p27Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p27::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p27), DestructibleActorParam_0p27::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p27::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p27"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p27)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p27)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p27::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p27::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p27"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p27 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p27*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p27::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p27::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p27::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p27::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p28.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p28.h old mode 100644 new mode 100755 index f366779..a9d53dc --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p28.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p28.h @@ -1,613 +1,613 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p28_h -#define HEADER_DestructibleActorParam_0p28_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p28NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - uint32_t velocityIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - bool deleteChunksLeavingUserDefinedBB; - bool deleteChunksEnteringUserDefinedBB; - -}; - -static const uint32_t checksum[] = { 0x05dc3ae5, 0x2af4434c, 0xf48d05ee, 0x0a67215b, }; - -} // namespace DestructibleActorParam_0p28NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p28 : public NvParameterized::NvParameters, public DestructibleActorParam_0p28NS::ParametersStruct -{ -public: - DestructibleActorParam_0p28(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p28(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)28; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p28NS::checksum); - return DestructibleActorParam_0p28NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p28NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p28* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p28NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p28Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p28::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p28), DestructibleActorParam_0p28::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p28::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p28"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p28)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p28)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p28::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p28::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p28"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p28 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p28*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p28::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p28::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p28::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p28::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p28_h +#define HEADER_DestructibleActorParam_0p28_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p28NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + uint32_t velocityIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + bool deleteChunksLeavingUserDefinedBB; + bool deleteChunksEnteringUserDefinedBB; + +}; + +static const uint32_t checksum[] = { 0x05dc3ae5, 0x2af4434c, 0xf48d05ee, 0x0a67215b, }; + +} // namespace DestructibleActorParam_0p28NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p28 : public NvParameterized::NvParameters, public DestructibleActorParam_0p28NS::ParametersStruct +{ +public: + DestructibleActorParam_0p28(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p28(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)28; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p28NS::checksum); + return DestructibleActorParam_0p28NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p28NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p28* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p28NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p28Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p28::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p28), DestructibleActorParam_0p28::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p28::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p28"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p28)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p28)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p28::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p28::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p28"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p28 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p28*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p28::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p28::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p28::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p28::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p29.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p29.h old mode 100644 new mode 100755 index 179b370..5ed1bae --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p29.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p29.h @@ -1,614 +1,614 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p29_h -#define HEADER_DestructibleActorParam_0p29_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p29NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - uint32_t velocityIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eCCD_LINEAR; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool performDetailedOverlapTestForExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - bool deleteChunksLeavingUserDefinedBB; - bool deleteChunksEnteringUserDefinedBB; - -}; - -static const uint32_t checksum[] = { 0xe5587c94, 0x690bed50, 0x7ac92918, 0xa6fd441e, }; - -} // namespace DestructibleActorParam_0p29NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p29 : public NvParameterized::NvParameters, public DestructibleActorParam_0p29NS::ParametersStruct -{ -public: - DestructibleActorParam_0p29(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p29(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)29; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p29NS::checksum); - return DestructibleActorParam_0p29NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p29NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p29* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p29NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p29Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p29::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p29), DestructibleActorParam_0p29::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p29::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p29"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p29)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p29)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p29::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p29::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p29"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p29 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p29*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p29::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p29::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p29::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p29::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p29_h +#define HEADER_DestructibleActorParam_0p29_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p29NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + uint32_t velocityIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eCCD_LINEAR; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool performDetailedOverlapTestForExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + bool deleteChunksLeavingUserDefinedBB; + bool deleteChunksEnteringUserDefinedBB; + +}; + +static const uint32_t checksum[] = { 0xe5587c94, 0x690bed50, 0x7ac92918, 0xa6fd441e, }; + +} // namespace DestructibleActorParam_0p29NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p29 : public NvParameterized::NvParameters, public DestructibleActorParam_0p29NS::ParametersStruct +{ +public: + DestructibleActorParam_0p29(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p29(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)29; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p29NS::checksum); + return DestructibleActorParam_0p29NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p29NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p29* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p29NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p29Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p29::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p29), DestructibleActorParam_0p29::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p29::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p29"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p29)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p29)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p29::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p29::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p29"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p29 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p29*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p29::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p29::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p29::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p29::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p3.h old mode 100644 new mode 100755 index 678cf33..49e1daa --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p3.h @@ -1,428 +1,428 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p3_h -#define HEADER_DestructibleActorParam_0p3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p3NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - float massScaleExponent; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0xf78aa4ca, 0x62e8ff0b, 0x6b3dcc04, 0xe44d2726, }; - -} // namespace DestructibleActorParam_0p3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p3 : public NvParameterized::NvParameters, public DestructibleActorParam_0p3NS::ParametersStruct -{ -public: - DestructibleActorParam_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p3NS::checksum); - return DestructibleActorParam_0p3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p3NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p3), DestructibleActorParam_0p3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p3*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p3_h +#define HEADER_DestructibleActorParam_0p3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p3NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + float massScaleExponent; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0xf78aa4ca, 0x62e8ff0b, 0x6b3dcc04, 0xe44d2726, }; + +} // namespace DestructibleActorParam_0p3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p3 : public NvParameterized::NvParameters, public DestructibleActorParam_0p3NS::ParametersStruct +{ +public: + DestructibleActorParam_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p3NS::checksum); + return DestructibleActorParam_0p3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p3NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p3), DestructibleActorParam_0p3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p3*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p30.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p30.h old mode 100644 new mode 100755 index aa8b734..bb86a74 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p30.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p30.h @@ -1,614 +1,614 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p30_h -#define HEADER_DestructibleActorParam_0p30_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p30NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - uint32_t velocityIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct P3PairFlag_Type -{ - bool eSOLVE_CONTACT; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eDETECT_CCD_CONTACT; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool performDetailedOverlapTestForExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - bool deleteChunksLeavingUserDefinedBB; - bool deleteChunksEnteringUserDefinedBB; - -}; - -static const uint32_t checksum[] = { 0x57ae1ad0, 0xccc3c9a4, 0xa3716200, 0xfd2df802, }; - -} // namespace DestructibleActorParam_0p30NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p30 : public NvParameterized::NvParameters, public DestructibleActorParam_0p30NS::ParametersStruct -{ -public: - DestructibleActorParam_0p30(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p30(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)30; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p30NS::checksum); - return DestructibleActorParam_0p30NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p30NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p30* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p30NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p30Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p30::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p30), DestructibleActorParam_0p30::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p30::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p30"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p30)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p30)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p30::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p30::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p30"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p30 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p30*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p30::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p30::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p30::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p30::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p30_h +#define HEADER_DestructibleActorParam_0p30_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p30NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + uint32_t velocityIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct P3PairFlag_Type +{ + bool eSOLVE_CONTACT; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eDETECT_CCD_CONTACT; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool performDetailedOverlapTestForExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + bool deleteChunksLeavingUserDefinedBB; + bool deleteChunksEnteringUserDefinedBB; + +}; + +static const uint32_t checksum[] = { 0x57ae1ad0, 0xccc3c9a4, 0xa3716200, 0xfd2df802, }; + +} // namespace DestructibleActorParam_0p30NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p30 : public NvParameterized::NvParameters, public DestructibleActorParam_0p30NS::ParametersStruct +{ +public: + DestructibleActorParam_0p30(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p30(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)30; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p30NS::checksum); + return DestructibleActorParam_0p30NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p30NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p30* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p30NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p30Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p30::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p30), DestructibleActorParam_0p30::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p30::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p30"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p30)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p30)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p30::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p30::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p30"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p30 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p30*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p30::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p30::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p30::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p30::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p31.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p31.h old mode 100644 new mode 100755 index c660bea..11281ae --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p31.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p31.h @@ -1,605 +1,605 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p31_h -#define HEADER_DestructibleActorParam_0p31_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p31NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - uint32_t velocityIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct P3PairFlag_Type -{ - bool eSOLVE_CONTACT; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eDETECT_CCD_CONTACT; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - physx::PxTransform globalPose; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool performDetailedOverlapTestForExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - bool deleteChunksLeavingUserDefinedBB; - bool deleteChunksEnteringUserDefinedBB; - -}; - -static const uint32_t checksum[] = { 0x9e384538, 0x727aa67c, 0x615607a8, 0xa85c37fb, }; - -} // namespace DestructibleActorParam_0p31NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p31 : public NvParameterized::NvParameters, public DestructibleActorParam_0p31NS::ParametersStruct -{ -public: - DestructibleActorParam_0p31(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p31(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)31; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p31NS::checksum); - return DestructibleActorParam_0p31NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p31NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p31* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p31NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p31Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p31::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p31), DestructibleActorParam_0p31::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p31::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p31"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p31)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p31)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p31::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p31::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p31"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p31 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p31*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p31::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p31::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p31::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p31::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p31_h +#define HEADER_DestructibleActorParam_0p31_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p31NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + uint32_t velocityIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct P3PairFlag_Type +{ + bool eSOLVE_CONTACT; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eDETECT_CCD_CONTACT; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + physx::PxTransform globalPose; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool performDetailedOverlapTestForExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + bool deleteChunksLeavingUserDefinedBB; + bool deleteChunksEnteringUserDefinedBB; + +}; + +static const uint32_t checksum[] = { 0x9e384538, 0x727aa67c, 0x615607a8, 0xa85c37fb, }; + +} // namespace DestructibleActorParam_0p31NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p31 : public NvParameterized::NvParameters, public DestructibleActorParam_0p31NS::ParametersStruct +{ +public: + DestructibleActorParam_0p31(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p31(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)31; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p31NS::checksum); + return DestructibleActorParam_0p31NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p31NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p31* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p31NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p31Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p31::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p31), DestructibleActorParam_0p31::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p31::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p31"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p31)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p31)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p31::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p31::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p31"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p31 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p31*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p31::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p31::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p31::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p31::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p32.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p32.h old mode 100644 new mode 100755 index d6e93e6..dcc6be7 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p32.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p32.h @@ -1,606 +1,606 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p32_h -#define HEADER_DestructibleActorParam_0p32_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p32NS -{ - -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct StructureSettings_Type; -struct BehaviorGroup_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; - bool eENABLE_CCD; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct StructureSettings_Type -{ - bool useStressSolver; - float stressSolverTimeDelay; - float stressSolverMassThreshold; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - GroupsMask_Type groupsMask; - uint64_t userData; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - uint32_t velocityIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; - bool alwaysDrawScatterMesh; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct P3PairFlag_Type -{ - bool eSOLVE_CONTACT; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eDETECT_CCD_CONTACT; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - physx::PxTransform globalPose; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool performDetailedOverlapTestForExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool doNotCreateRenderable; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool keepVisibleBonesPacked; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - float sleepVelocityFrameDecayConstant; - bool useHardSleeping; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - StructureSettings_Type structureSettings; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - bool deleteChunksLeavingUserDefinedBB; - bool deleteChunksEnteringUserDefinedBB; - -}; - -static const uint32_t checksum[] = { 0x2f148a8b, 0x0ef80948, 0x34293f31, 0x363a5ff0, }; - -} // namespace DestructibleActorParam_0p32NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p32 : public NvParameterized::NvParameters, public DestructibleActorParam_0p32NS::ParametersStruct -{ -public: - DestructibleActorParam_0p32(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p32(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)32; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p32NS::checksum); - return DestructibleActorParam_0p32NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p32NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p32* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p32NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p32Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p32::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p32), DestructibleActorParam_0p32::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p32::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p32"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p32)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p32)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p32::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p32::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p32"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p32 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p32*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p32::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p32::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p32::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p32::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p32_h +#define HEADER_DestructibleActorParam_0p32_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p32NS +{ + +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct StructureSettings_Type; +struct BehaviorGroup_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; + bool eENABLE_CCD; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct StructureSettings_Type +{ + bool useStressSolver; + float stressSolverTimeDelay; + float stressSolverMassThreshold; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + GroupsMask_Type groupsMask; + uint64_t userData; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + uint32_t velocityIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; + bool alwaysDrawScatterMesh; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct P3PairFlag_Type +{ + bool eSOLVE_CONTACT; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eDETECT_CCD_CONTACT; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + physx::PxTransform globalPose; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool performDetailedOverlapTestForExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool doNotCreateRenderable; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool keepVisibleBonesPacked; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + float sleepVelocityFrameDecayConstant; + bool useHardSleeping; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + StructureSettings_Type structureSettings; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + bool deleteChunksLeavingUserDefinedBB; + bool deleteChunksEnteringUserDefinedBB; + +}; + +static const uint32_t checksum[] = { 0x2f148a8b, 0x0ef80948, 0x34293f31, 0x363a5ff0, }; + +} // namespace DestructibleActorParam_0p32NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p32 : public NvParameterized::NvParameters, public DestructibleActorParam_0p32NS::ParametersStruct +{ +public: + DestructibleActorParam_0p32(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p32(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)32; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p32NS::checksum); + return DestructibleActorParam_0p32NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p32NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p32* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p32NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p32Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p32::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p32), DestructibleActorParam_0p32::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p32::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p32"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p32)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p32)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p32::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p32::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p32"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p32 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p32*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p32::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p32::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p32::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p32::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p4.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p4.h old mode 100644 new mode 100755 index 5a34d06..216520a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p4.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p4.h @@ -1,520 +1,520 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p4_h -#define HEADER_DestructibleActorParam_0p4_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p4NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint16_t materialIndex; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - float massScaleExponent; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0x9a70837f, 0xfa71b6aa, 0x939a9985, 0xb53b11ec, }; - -} // namespace DestructibleActorParam_0p4NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p4 : public NvParameterized::NvParameters, public DestructibleActorParam_0p4NS::ParametersStruct -{ -public: - DestructibleActorParam_0p4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p4(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p4NS::checksum); - return DestructibleActorParam_0p4NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p4NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p4* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p4NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p4Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p4::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p4), DestructibleActorParam_0p4::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p4"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p4)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p4)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p4::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p4"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p4 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p4*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p4::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p4::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p4::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p4::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p4_h +#define HEADER_DestructibleActorParam_0p4_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p4NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint16_t materialIndex; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + float massScaleExponent; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0x9a70837f, 0xfa71b6aa, 0x939a9985, 0xb53b11ec, }; + +} // namespace DestructibleActorParam_0p4NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p4 : public NvParameterized::NvParameters, public DestructibleActorParam_0p4NS::ParametersStruct +{ +public: + DestructibleActorParam_0p4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p4(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p4NS::checksum); + return DestructibleActorParam_0p4NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p4NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p4* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p4NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p4Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p4::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p4), DestructibleActorParam_0p4::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p4"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p4)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p4)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p4::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p4"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p4 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p4*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p4::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p4::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p4::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p4::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p5.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p5.h old mode 100644 new mode 100755 index 9542c2a..bacf4d4 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p5.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p5.h @@ -1,519 +1,519 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p5_h -#define HEADER_DestructibleActorParam_0p5_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p5NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint16_t materialIndex; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0xea43d0c2, 0x556da192, 0xc5fcf833, 0x9c928995, }; - -} // namespace DestructibleActorParam_0p5NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p5 : public NvParameterized::NvParameters, public DestructibleActorParam_0p5NS::ParametersStruct -{ -public: - DestructibleActorParam_0p5(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p5(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)5; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p5NS::checksum); - return DestructibleActorParam_0p5NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p5NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p5* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p5NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p5Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p5::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p5), DestructibleActorParam_0p5::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p5::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p5"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p5)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p5)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p5::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p5::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p5"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p5 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p5*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p5::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p5::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p5::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p5::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p5_h +#define HEADER_DestructibleActorParam_0p5_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p5NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint16_t materialIndex; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0xea43d0c2, 0x556da192, 0xc5fcf833, 0x9c928995, }; + +} // namespace DestructibleActorParam_0p5NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p5 : public NvParameterized::NvParameters, public DestructibleActorParam_0p5NS::ParametersStruct +{ +public: + DestructibleActorParam_0p5(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p5(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)5; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p5NS::checksum); + return DestructibleActorParam_0p5NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p5NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p5* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p5NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p5Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p5::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p5), DestructibleActorParam_0p5::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p5::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p5"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p5)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p5)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p5::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p5::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p5"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p5 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p5*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p5::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p5::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p5::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p5::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p6.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p6.h old mode 100644 new mode 100755 index 6919b63..6933203 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p6.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p6.h @@ -1,519 +1,519 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p6_h -#define HEADER_DestructibleActorParam_0p6_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p6NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0x66bd8343, 0xed0adc83, 0x8728cbf8, 0xf6c36870, }; - -} // namespace DestructibleActorParam_0p6NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p6 : public NvParameterized::NvParameters, public DestructibleActorParam_0p6NS::ParametersStruct -{ -public: - DestructibleActorParam_0p6(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p6(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)6; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p6NS::checksum); - return DestructibleActorParam_0p6NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p6NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p6* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p6NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p6Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p6::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p6), DestructibleActorParam_0p6::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p6::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p6"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p6)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p6)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p6::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p6::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p6"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p6 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p6*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p6::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p6::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p6::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p6::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p6_h +#define HEADER_DestructibleActorParam_0p6_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p6NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0x66bd8343, 0xed0adc83, 0x8728cbf8, 0xf6c36870, }; + +} // namespace DestructibleActorParam_0p6NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p6 : public NvParameterized::NvParameters, public DestructibleActorParam_0p6NS::ParametersStruct +{ +public: + DestructibleActorParam_0p6(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p6(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)6; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p6NS::checksum); + return DestructibleActorParam_0p6NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p6NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p6* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p6NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p6Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p6::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p6), DestructibleActorParam_0p6::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p6::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p6"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p6)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p6)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p6::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p6::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p6"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p6 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p6*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p6::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p6::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p6::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p6::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p7.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p7.h old mode 100644 new mode 100755 index c7b6798..c6df2c1 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p7.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p7.h @@ -1,521 +1,521 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p7_h -#define HEADER_DestructibleActorParam_0p7_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p7NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0x2fe5029f, 0x623d909d, 0x15f47121, 0xae5f8420, }; - -} // namespace DestructibleActorParam_0p7NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p7 : public NvParameterized::NvParameters, public DestructibleActorParam_0p7NS::ParametersStruct -{ -public: - DestructibleActorParam_0p7(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p7(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)7; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p7NS::checksum); - return DestructibleActorParam_0p7NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p7NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p7* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p7NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p7Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p7::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p7), DestructibleActorParam_0p7::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p7::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p7"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p7)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p7)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p7::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p7::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p7"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p7 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p7*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p7::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p7::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p7::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p7::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p7_h +#define HEADER_DestructibleActorParam_0p7_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p7NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0x2fe5029f, 0x623d909d, 0x15f47121, 0xae5f8420, }; + +} // namespace DestructibleActorParam_0p7NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p7 : public NvParameterized::NvParameters, public DestructibleActorParam_0p7NS::ParametersStruct +{ +public: + DestructibleActorParam_0p7(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p7(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)7; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p7NS::checksum); + return DestructibleActorParam_0p7NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p7NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p7* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p7NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p7Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p7::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p7), DestructibleActorParam_0p7::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p7::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p7"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p7)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p7)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p7::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p7::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p7"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p7 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p7*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p7::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p7::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p7::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p7::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p8.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p8.h old mode 100644 new mode 100755 index 298be2f..4de04fa --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p8.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p8.h @@ -1,523 +1,523 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p8_h -#define HEADER_DestructibleActorParam_0p8_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p8NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0xd51fd85d, 0x75255e3b, 0x5caf5452, 0x7cc72a14, }; - -} // namespace DestructibleActorParam_0p8NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p8 : public NvParameterized::NvParameters, public DestructibleActorParam_0p8NS::ParametersStruct -{ -public: - DestructibleActorParam_0p8(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p8(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)8; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p8NS::checksum); - return DestructibleActorParam_0p8NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p8NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p8* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p8NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p8Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p8::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p8), DestructibleActorParam_0p8::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p8::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p8"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p8)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p8)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p8::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p8::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p8"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p8 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p8*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p8::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p8::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p8::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p8::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p8_h +#define HEADER_DestructibleActorParam_0p8_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p8NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0xd51fd85d, 0x75255e3b, 0x5caf5452, 0x7cc72a14, }; + +} // namespace DestructibleActorParam_0p8NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p8 : public NvParameterized::NvParameters, public DestructibleActorParam_0p8NS::ParametersStruct +{ +public: + DestructibleActorParam_0p8(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p8(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)8; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p8NS::checksum); + return DestructibleActorParam_0p8NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p8NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p8* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p8NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p8Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p8::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p8), DestructibleActorParam_0p8::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p8::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p8"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p8)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p8)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p8::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p8::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p8"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p8 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p8*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p8::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p8::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p8::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p8::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p9.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p9.h old mode 100644 new mode 100755 index c80bc16..9eb1f1f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p9.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorParam_0p9.h @@ -1,523 +1,523 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorParam_0p9_h -#define HEADER_DestructibleActorParam_0p9_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorParam_0p9NS -{ - -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint64_t material; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct crumbleEmitterName; - float crumbleParticleSpacing; - NvParameterized::DummyStringStruct dustEmitterName; - float dustParticleSpacing; - float globalPose[12]; - physx::PxVec3 scale; - bool dynamic; - uint32_t supportDepth; - bool formExtendedStructures; - bool keepPreviousFrameBoneBuffer; - bool useAssetDefinedSupport; - bool useWorldSupport; - bool renderStaticChunksSeparately; - bool createChunkEvents; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - ShapeDescTemplate_Type shapeDescTemplate; - ActorDescTemplate_Type actorDescTemplate; - BodyDescTemplate_Type bodyDescTemplate; - P3ShapeDescTemplate_Type p3ShapeDescTemplate; - P3ActorDescTemplate_Type p3ActorDescTemplate; - P3BodyDescTemplate_Type p3BodyDescTemplate; - -}; - -static const uint32_t checksum[] = { 0xa5173bb5, 0xce9e156c, 0x762125a2, 0x20d5f8a4, }; - -} // namespace DestructibleActorParam_0p9NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorParam_0p9 : public NvParameterized::NvParameters, public DestructibleActorParam_0p9NS::ParametersStruct -{ -public: - DestructibleActorParam_0p9(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorParam_0p9(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)9; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorParam_0p9NS::checksum); - return DestructibleActorParam_0p9NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorParam_0p9NS::ParametersStruct& parameters(void) const - { - DestructibleActorParam_0p9* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorParam_0p9NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorParam_0p9Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorParam_0p9::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p9), DestructibleActorParam_0p9::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p9::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p9"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorParam_0p9)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p9)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p9::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p9::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p9"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorParam_0p9 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorParam_0p9*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorParam_0p9::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorParam_0p9::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorParam_0p9::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorParam_0p9::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorParam_0p9_h +#define HEADER_DestructibleActorParam_0p9_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorParam_0p9NS +{ + +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint64_t material; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct crumbleEmitterName; + float crumbleParticleSpacing; + NvParameterized::DummyStringStruct dustEmitterName; + float dustParticleSpacing; + float globalPose[12]; + physx::PxVec3 scale; + bool dynamic; + uint32_t supportDepth; + bool formExtendedStructures; + bool keepPreviousFrameBoneBuffer; + bool useAssetDefinedSupport; + bool useWorldSupport; + bool renderStaticChunksSeparately; + bool createChunkEvents; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + ShapeDescTemplate_Type shapeDescTemplate; + ActorDescTemplate_Type actorDescTemplate; + BodyDescTemplate_Type bodyDescTemplate; + P3ShapeDescTemplate_Type p3ShapeDescTemplate; + P3ActorDescTemplate_Type p3ActorDescTemplate; + P3BodyDescTemplate_Type p3BodyDescTemplate; + +}; + +static const uint32_t checksum[] = { 0xa5173bb5, 0xce9e156c, 0x762125a2, 0x20d5f8a4, }; + +} // namespace DestructibleActorParam_0p9NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorParam_0p9 : public NvParameterized::NvParameters, public DestructibleActorParam_0p9NS::ParametersStruct +{ +public: + DestructibleActorParam_0p9(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorParam_0p9(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)9; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorParam_0p9NS::checksum); + return DestructibleActorParam_0p9NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorParam_0p9NS::ParametersStruct& parameters(void) const + { + DestructibleActorParam_0p9* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorParam_0p9NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorParam_0p9Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorParam_0p9::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorParam_0p9), DestructibleActorParam_0p9::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorParam_0p9::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p9"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorParam_0p9)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorParam_0p9)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorParam_0p9::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorParam_0p9::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorParam_0p9"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorParam_0p9 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorParam_0p9*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorParam_0p9::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorParam_0p9::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorParam_0p9::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorParam_0p9::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p0.h old mode 100644 new mode 100755 index be59ebf..fe2fa6a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p0.h @@ -1,404 +1,404 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorState_0p0_h -#define HEADER_DestructibleActorState_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorState_0p0NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - bool enableCrumbleEmitter; - bool enableDustEmitter; - LODWeights_Type internalLODWeights; - uint32_t lod; - bool forceLod; - DestructibleParameters_Type destructibleParameters; - uint64_t userData; - NvParameterized::Interface* actorParameters; - NvParameterized::Interface* actorChunks; - -}; - -static const uint32_t checksum[] = { 0x531aca30, 0xee1057d7, 0x30a2ad2f, 0xae006f8e, }; - -} // namespace DestructibleActorState_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorState_0p0 : public NvParameterized::NvParameters, public DestructibleActorState_0p0NS::ParametersStruct -{ -public: - DestructibleActorState_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorState_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorState"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorState_0p0NS::checksum); - return DestructibleActorState_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorState_0p0NS::ParametersStruct& parameters(void) const - { - DestructibleActorState_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorState_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorState_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorState_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p0), DestructibleActorState_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorState_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorState_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorState_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorState_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorState_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorState_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorState_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorState_0p0_h +#define HEADER_DestructibleActorState_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorState_0p0NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + bool enableCrumbleEmitter; + bool enableDustEmitter; + LODWeights_Type internalLODWeights; + uint32_t lod; + bool forceLod; + DestructibleParameters_Type destructibleParameters; + uint64_t userData; + NvParameterized::Interface* actorParameters; + NvParameterized::Interface* actorChunks; + +}; + +static const uint32_t checksum[] = { 0x531aca30, 0xee1057d7, 0x30a2ad2f, 0xae006f8e, }; + +} // namespace DestructibleActorState_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorState_0p0 : public NvParameterized::NvParameters, public DestructibleActorState_0p0NS::ParametersStruct +{ +public: + DestructibleActorState_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorState_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorState"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorState_0p0NS::checksum); + return DestructibleActorState_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorState_0p0NS::ParametersStruct& parameters(void) const + { + DestructibleActorState_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorState_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorState_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorState_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p0), DestructibleActorState_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorState_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorState_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorState_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorState_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorState_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorState_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorState_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p1.h old mode 100644 new mode 100755 index 7369b92..950788a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p1.h @@ -1,405 +1,405 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorState_0p1_h -#define HEADER_DestructibleActorState_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorState_0p1NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - bool enableCrumbleEmitter; - bool enableDustEmitter; - LODWeights_Type internalLODWeights; - uint32_t lod; - bool forceLod; - DestructibleParameters_Type destructibleParameters; - uint64_t userData; - NvParameterized::Interface* actorParameters; - NvParameterized::Interface* actorChunks; - -}; - -static const uint32_t checksum[] = { 0x64de21dd, 0xb73211a9, 0xdd3d2115, 0x95b40a2f, }; - -} // namespace DestructibleActorState_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorState_0p1 : public NvParameterized::NvParameters, public DestructibleActorState_0p1NS::ParametersStruct -{ -public: - DestructibleActorState_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorState_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorState"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorState_0p1NS::checksum); - return DestructibleActorState_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorState_0p1NS::ParametersStruct& parameters(void) const - { - DestructibleActorState_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorState_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorState_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorState_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p1), DestructibleActorState_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorState_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorState_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorState_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorState_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorState_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorState_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorState_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorState_0p1_h +#define HEADER_DestructibleActorState_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorState_0p1NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + bool enableCrumbleEmitter; + bool enableDustEmitter; + LODWeights_Type internalLODWeights; + uint32_t lod; + bool forceLod; + DestructibleParameters_Type destructibleParameters; + uint64_t userData; + NvParameterized::Interface* actorParameters; + NvParameterized::Interface* actorChunks; + +}; + +static const uint32_t checksum[] = { 0x64de21dd, 0xb73211a9, 0xdd3d2115, 0x95b40a2f, }; + +} // namespace DestructibleActorState_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorState_0p1 : public NvParameterized::NvParameters, public DestructibleActorState_0p1NS::ParametersStruct +{ +public: + DestructibleActorState_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorState_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorState"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorState_0p1NS::checksum); + return DestructibleActorState_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorState_0p1NS::ParametersStruct& parameters(void) const + { + DestructibleActorState_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorState_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorState_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorState_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p1), DestructibleActorState_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorState_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorState_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorState_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorState_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorState_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorState_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorState_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p2.h old mode 100644 new mode 100755 index 7f989e2..3810afe --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p2.h @@ -1,454 +1,454 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorState_0p2_h -#define HEADER_DestructibleActorState_0p2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorState_0p2NS -{ - -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - bool enableCrumbleEmitter; - bool enableDustEmitter; - LODWeights_Type internalLODWeights; - uint32_t lod; - bool forceLod; - DestructibleParameters_Type destructibleParameters; - uint64_t userData; - NvParameterized::Interface* actorParameters; - NvParameterized::Interface* actorChunks; - -}; - -static const uint32_t checksum[] = { 0x6e71d0c6, 0x94af2f1d, 0x37ac87d3, 0xc9970214, }; - -} // namespace DestructibleActorState_0p2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorState_0p2 : public NvParameterized::NvParameters, public DestructibleActorState_0p2NS::ParametersStruct -{ -public: - DestructibleActorState_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorState_0p2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorState"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorState_0p2NS::checksum); - return DestructibleActorState_0p2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorState_0p2NS::ParametersStruct& parameters(void) const - { - DestructibleActorState_0p2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorState_0p2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorState_0p2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorState_0p2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p2), DestructibleActorState_0p2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorState_0p2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorState_0p2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorState_0p2*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorState_0p2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorState_0p2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorState_0p2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorState_0p2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorState_0p2_h +#define HEADER_DestructibleActorState_0p2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorState_0p2NS +{ + +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + bool enableCrumbleEmitter; + bool enableDustEmitter; + LODWeights_Type internalLODWeights; + uint32_t lod; + bool forceLod; + DestructibleParameters_Type destructibleParameters; + uint64_t userData; + NvParameterized::Interface* actorParameters; + NvParameterized::Interface* actorChunks; + +}; + +static const uint32_t checksum[] = { 0x6e71d0c6, 0x94af2f1d, 0x37ac87d3, 0xc9970214, }; + +} // namespace DestructibleActorState_0p2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorState_0p2 : public NvParameterized::NvParameters, public DestructibleActorState_0p2NS::ParametersStruct +{ +public: + DestructibleActorState_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorState_0p2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorState"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorState_0p2NS::checksum); + return DestructibleActorState_0p2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorState_0p2NS::ParametersStruct& parameters(void) const + { + DestructibleActorState_0p2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorState_0p2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorState_0p2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorState_0p2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p2), DestructibleActorState_0p2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorState_0p2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorState_0p2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorState_0p2*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorState_0p2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorState_0p2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorState_0p2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorState_0p2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p3.h old mode 100644 new mode 100755 index ffbfe69..f4bfb38 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p3.h @@ -1,444 +1,444 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorState_0p3_h -#define HEADER_DestructibleActorState_0p3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorState_0p3NS -{ - -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - bool enableCrumbleEmitter; - bool enableDustEmitter; - uint32_t lod; - bool forceLod; - DestructibleParameters_Type destructibleParameters; - uint64_t userData; - NvParameterized::Interface* actorParameters; - NvParameterized::Interface* actorChunks; - -}; - -static const uint32_t checksum[] = { 0xfe120409, 0x2396ff11, 0xe58c3cca, 0x0568c142, }; - -} // namespace DestructibleActorState_0p3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorState_0p3 : public NvParameterized::NvParameters, public DestructibleActorState_0p3NS::ParametersStruct -{ -public: - DestructibleActorState_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorState_0p3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorState"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorState_0p3NS::checksum); - return DestructibleActorState_0p3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorState_0p3NS::ParametersStruct& parameters(void) const - { - DestructibleActorState_0p3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorState_0p3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorState_0p3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorState_0p3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p3), DestructibleActorState_0p3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorState_0p3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorState_0p3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorState_0p3*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorState_0p3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorState_0p3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorState_0p3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorState_0p3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorState_0p3_h +#define HEADER_DestructibleActorState_0p3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorState_0p3NS +{ + +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + bool enableCrumbleEmitter; + bool enableDustEmitter; + uint32_t lod; + bool forceLod; + DestructibleParameters_Type destructibleParameters; + uint64_t userData; + NvParameterized::Interface* actorParameters; + NvParameterized::Interface* actorChunks; + +}; + +static const uint32_t checksum[] = { 0xfe120409, 0x2396ff11, 0xe58c3cca, 0x0568c142, }; + +} // namespace DestructibleActorState_0p3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorState_0p3 : public NvParameterized::NvParameters, public DestructibleActorState_0p3NS::ParametersStruct +{ +public: + DestructibleActorState_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorState_0p3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorState"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorState_0p3NS::checksum); + return DestructibleActorState_0p3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorState_0p3NS::ParametersStruct& parameters(void) const + { + DestructibleActorState_0p3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorState_0p3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorState_0p3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorState_0p3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p3), DestructibleActorState_0p3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorState_0p3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorState_0p3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorState_0p3*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorState_0p3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorState_0p3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorState_0p3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorState_0p3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p4.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p4.h old mode 100644 new mode 100755 index 4831292..4552337 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p4.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleActorState_0p4.h @@ -1,445 +1,445 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleActorState_0p4_h -#define HEADER_DestructibleActorState_0p4_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleActorState_0p4NS -{ - -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; - bool alwaysDrawScatterMesh; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - bool enableCrumbleEmitter; - bool enableDustEmitter; - uint32_t lod; - bool forceLod; - DestructibleParameters_Type destructibleParameters; - uint64_t userData; - NvParameterized::Interface* actorParameters; - NvParameterized::Interface* actorChunks; - -}; - -static const uint32_t checksum[] = { 0xc6984ee8, 0x0dae2202, 0x4f638ad1, 0x24536329, }; - -} // namespace DestructibleActorState_0p4NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleActorState_0p4 : public NvParameterized::NvParameters, public DestructibleActorState_0p4NS::ParametersStruct -{ -public: - DestructibleActorState_0p4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleActorState_0p4(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleActorState"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleActorState_0p4NS::checksum); - return DestructibleActorState_0p4NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleActorState_0p4NS::ParametersStruct& parameters(void) const - { - DestructibleActorState_0p4* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleActorState_0p4NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleActorState_0p4Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleActorState_0p4::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p4), DestructibleActorState_0p4::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p4"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleActorState_0p4)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p4)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p4::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p4"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleActorState_0p4 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleActorState_0p4*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleActorState_0p4::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleActorState_0p4::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleActorState_0p4::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleActorState_0p4::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleActorState_0p4_h +#define HEADER_DestructibleActorState_0p4_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleActorState_0p4NS +{ + +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; + bool alwaysDrawScatterMesh; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + bool enableCrumbleEmitter; + bool enableDustEmitter; + uint32_t lod; + bool forceLod; + DestructibleParameters_Type destructibleParameters; + uint64_t userData; + NvParameterized::Interface* actorParameters; + NvParameterized::Interface* actorChunks; + +}; + +static const uint32_t checksum[] = { 0xc6984ee8, 0x0dae2202, 0x4f638ad1, 0x24536329, }; + +} // namespace DestructibleActorState_0p4NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleActorState_0p4 : public NvParameterized::NvParameters, public DestructibleActorState_0p4NS::ParametersStruct +{ +public: + DestructibleActorState_0p4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleActorState_0p4(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleActorState"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleActorState_0p4NS::checksum); + return DestructibleActorState_0p4NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleActorState_0p4NS::ParametersStruct& parameters(void) const + { + DestructibleActorState_0p4* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleActorState_0p4NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleActorState_0p4Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleActorState_0p4::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleActorState_0p4), DestructibleActorState_0p4::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleActorState_0p4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p4"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleActorState_0p4)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleActorState_0p4)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleActorState_0p4::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleActorState_0p4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleActorState_0p4"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleActorState_0p4 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleActorState_0p4*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleActorState_0p4::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleActorState_0p4::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleActorState_0p4::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleActorState_0p4::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetCollisionDataSet_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetCollisionDataSet_0p0.h old mode 100644 new mode 100755 index 483e10e..e254300 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetCollisionDataSet_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetCollisionDataSet_0p0.h @@ -1,250 +1,250 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetCollisionDataSet_0p0_h -#define HEADER_DestructibleAssetCollisionDataSet_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetCollisionDataSet_0p0NS -{ - - -struct VEC3_DynamicArray1D_Type -{ - physx::PxVec3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct assetName; - uint32_t cookingPlatform; - uint32_t cookingVersionNum; - VEC3_DynamicArray1D_Type scales; - REF_DynamicArray1D_Type meshCookedCollisionStreamsAtScale; - -}; - -static const uint32_t checksum[] = { 0x716db49d, 0xccc81ef4, 0x85f3752e, 0x9cf18dc6, }; - -} // namespace DestructibleAssetCollisionDataSet_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetCollisionDataSet_0p0 : public NvParameterized::NvParameters, public DestructibleAssetCollisionDataSet_0p0NS::ParametersStruct -{ -public: - DestructibleAssetCollisionDataSet_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetCollisionDataSet_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetCollisionDataSet"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetCollisionDataSet_0p0NS::checksum); - return DestructibleAssetCollisionDataSet_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetCollisionDataSet_0p0NS::ParametersStruct& parameters(void) const - { - DestructibleAssetCollisionDataSet_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetCollisionDataSet_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetCollisionDataSet_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetCollisionDataSet_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetCollisionDataSet_0p0), DestructibleAssetCollisionDataSet_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetCollisionDataSet_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetCollisionDataSet_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetCollisionDataSet_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetCollisionDataSet_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetCollisionDataSet_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetCollisionDataSet_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetCollisionDataSet_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetCollisionDataSet_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetCollisionDataSet_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetCollisionDataSet_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetCollisionDataSet_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetCollisionDataSet_0p0_h +#define HEADER_DestructibleAssetCollisionDataSet_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetCollisionDataSet_0p0NS +{ + + +struct VEC3_DynamicArray1D_Type +{ + physx::PxVec3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct assetName; + uint32_t cookingPlatform; + uint32_t cookingVersionNum; + VEC3_DynamicArray1D_Type scales; + REF_DynamicArray1D_Type meshCookedCollisionStreamsAtScale; + +}; + +static const uint32_t checksum[] = { 0x716db49d, 0xccc81ef4, 0x85f3752e, 0x9cf18dc6, }; + +} // namespace DestructibleAssetCollisionDataSet_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetCollisionDataSet_0p0 : public NvParameterized::NvParameters, public DestructibleAssetCollisionDataSet_0p0NS::ParametersStruct +{ +public: + DestructibleAssetCollisionDataSet_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetCollisionDataSet_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetCollisionDataSet"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetCollisionDataSet_0p0NS::checksum); + return DestructibleAssetCollisionDataSet_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetCollisionDataSet_0p0NS::ParametersStruct& parameters(void) const + { + DestructibleAssetCollisionDataSet_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetCollisionDataSet_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetCollisionDataSet_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetCollisionDataSet_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetCollisionDataSet_0p0), DestructibleAssetCollisionDataSet_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetCollisionDataSet_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetCollisionDataSet_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetCollisionDataSet_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetCollisionDataSet_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetCollisionDataSet_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetCollisionDataSet_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetCollisionDataSet_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetCollisionDataSet_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetCollisionDataSet_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetCollisionDataSet_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetCollisionDataSet_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetCollisionDataSet_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p0.h old mode 100644 new mode 100755 index f8999ad..3958225 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p0.h @@ -1,465 +1,465 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p0_h -#define HEADER_DestructibleAssetParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p0NS -{ - -struct Chunk_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool ASSET_DEFINED_SUPPORT; - bool WORLD_SUPPORT; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t formExtendedStructures; - uint32_t supportDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - float massScaleExponent; - DestructibleParametersFlag_Type flags; - float grbVolumeLimit; - float grbParticleSpacing; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float bias; - float benefitsBias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxBounds3 bounds; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - int32_t interiorSubmeshIndex; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - -}; - -static const uint32_t checksum[] = { 0x8dd3639d, 0xa4f1cfe4, 0xbbf71ce0, 0x6876fafb, }; - -} // namespace DestructibleAssetParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p0 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p0NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p0NS::checksum); - return DestructibleAssetParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p0NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p0), DestructibleAssetParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p0_h +#define HEADER_DestructibleAssetParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p0NS +{ + +struct Chunk_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool ASSET_DEFINED_SUPPORT; + bool WORLD_SUPPORT; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t formExtendedStructures; + uint32_t supportDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + float massScaleExponent; + DestructibleParametersFlag_Type flags; + float grbVolumeLimit; + float grbParticleSpacing; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float bias; + float benefitsBias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxBounds3 bounds; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + int32_t interiorSubmeshIndex; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + +}; + +static const uint32_t checksum[] = { 0x8dd3639d, 0xa4f1cfe4, 0xbbf71ce0, 0x6876fafb, }; + +} // namespace DestructibleAssetParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p0 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p0NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p0NS::checksum); + return DestructibleAssetParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p0NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p0), DestructibleAssetParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p1.h old mode 100644 new mode 100755 index 36a7f66..5c8ddb6 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p1.h @@ -1,474 +1,474 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p1_h -#define HEADER_DestructibleAssetParameters_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p1NS -{ - -struct Chunk_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool ASSET_DEFINED_SUPPORT; - bool WORLD_SUPPORT; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t formExtendedStructures; - uint32_t supportDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - float massScaleExponent; - DestructibleParametersFlag_Type flags; - float grbVolumeLimit; - float grbParticleSpacing; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float bias; - float benefitsBias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxBounds3 bounds; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - -}; - -static const uint32_t checksum[] = { 0x2486dde1, 0x2298a3d7, 0x0ce27ce1, 0x2c97bc7d, }; - -} // namespace DestructibleAssetParameters_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p1 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p1NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p1NS::checksum); - return DestructibleAssetParameters_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p1NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p1), DestructibleAssetParameters_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p1_h +#define HEADER_DestructibleAssetParameters_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p1NS +{ + +struct Chunk_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool ASSET_DEFINED_SUPPORT; + bool WORLD_SUPPORT; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t formExtendedStructures; + uint32_t supportDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + float massScaleExponent; + DestructibleParametersFlag_Type flags; + float grbVolumeLimit; + float grbParticleSpacing; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float bias; + float benefitsBias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxBounds3 bounds; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + +}; + +static const uint32_t checksum[] = { 0x2486dde1, 0x2298a3d7, 0x0ce27ce1, 0x2c97bc7d, }; + +} // namespace DestructibleAssetParameters_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p1 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p1NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p1NS::checksum); + return DestructibleAssetParameters_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p1NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p1), DestructibleAssetParameters_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p10.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p10.h old mode 100644 new mode 100755 index 7316a26..62c5244 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p10.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p10.h @@ -1,500 +1,500 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p10_h -#define HEADER_DestructibleAssetParameters_0p10_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p10NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0xed9b0702, 0x552412c3, 0x3dffc236, 0xde7cd7c8, }; - -} // namespace DestructibleAssetParameters_0p10NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p10 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p10NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p10(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p10(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)10; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p10NS::checksum); - return DestructibleAssetParameters_0p10NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p10NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p10* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p10NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p10Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p10::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p10), DestructibleAssetParameters_0p10::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p10::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p10"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p10)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p10)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p10::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p10::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p10"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p10 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p10*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p10::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p10::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p10::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p10::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p10_h +#define HEADER_DestructibleAssetParameters_0p10_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p10NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0xed9b0702, 0x552412c3, 0x3dffc236, 0xde7cd7c8, }; + +} // namespace DestructibleAssetParameters_0p10NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p10 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p10NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p10(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p10(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)10; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p10NS::checksum); + return DestructibleAssetParameters_0p10NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p10NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p10* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p10NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p10Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p10::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p10), DestructibleAssetParameters_0p10::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p10::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p10"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p10)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p10)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p10::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p10::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p10"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p10 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p10*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p10::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p10::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p10::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p10::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p11.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p11.h old mode 100644 new mode 100755 index 95434c5..3cf1df7 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p11.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p11.h @@ -1,501 +1,501 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p11_h -#define HEADER_DestructibleAssetParameters_0p11_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p11NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0x71b03c11, 0x44ff53cb, 0xe355f2f6, 0xbba1e381, }; - -} // namespace DestructibleAssetParameters_0p11NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p11 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p11NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p11(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p11(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)11; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p11NS::checksum); - return DestructibleAssetParameters_0p11NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p11NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p11* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p11NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p11Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p11::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p11), DestructibleAssetParameters_0p11::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p11::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p11"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p11)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p11)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p11::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p11::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p11"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p11 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p11*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p11::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p11::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p11::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p11::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p11_h +#define HEADER_DestructibleAssetParameters_0p11_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p11NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0x71b03c11, 0x44ff53cb, 0xe355f2f6, 0xbba1e381, }; + +} // namespace DestructibleAssetParameters_0p11NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p11 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p11NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p11(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p11(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)11; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p11NS::checksum); + return DestructibleAssetParameters_0p11NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p11NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p11* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p11NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p11Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p11::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p11), DestructibleAssetParameters_0p11::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p11::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p11"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p11)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p11)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p11::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p11::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p11"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p11 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p11*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p11::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p11::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p11::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p11::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p12.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p12.h old mode 100644 new mode 100755 index eb34fb1..9d47f2c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p12.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p12.h @@ -1,499 +1,499 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p12_h -#define HEADER_DestructibleAssetParameters_0p12_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p12NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0x36c5ea74, 0xcb9978af, 0x9d359418, 0x408ce916, }; - -} // namespace DestructibleAssetParameters_0p12NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p12 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p12NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p12(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p12(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)12; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p12NS::checksum); - return DestructibleAssetParameters_0p12NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p12NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p12* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p12NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p12Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p12::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p12), DestructibleAssetParameters_0p12::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p12::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p12"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p12)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p12)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p12::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p12::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p12"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p12 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p12*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p12::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p12::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p12::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p12::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p12_h +#define HEADER_DestructibleAssetParameters_0p12_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p12NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0x36c5ea74, 0xcb9978af, 0x9d359418, 0x408ce916, }; + +} // namespace DestructibleAssetParameters_0p12NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p12 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p12NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p12(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p12(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)12; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p12NS::checksum); + return DestructibleAssetParameters_0p12NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p12NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p12* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p12NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p12Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p12::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p12), DestructibleAssetParameters_0p12::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p12::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p12"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p12)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p12)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p12::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p12::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p12"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p12 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p12*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p12::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p12::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p12::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p12::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p13.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p13.h old mode 100644 new mode 100755 index 8a944e8..7bf4be9 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p13.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p13.h @@ -1,500 +1,500 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p13_h -#define HEADER_DestructibleAssetParameters_0p13_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p13NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0xf6cfcb55, 0x7ca1003a, 0x9133ce4f, 0x3268033e, }; - -} // namespace DestructibleAssetParameters_0p13NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p13 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p13NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p13(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p13(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)13; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p13NS::checksum); - return DestructibleAssetParameters_0p13NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p13NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p13* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p13NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p13Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p13::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p13), DestructibleAssetParameters_0p13::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p13::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p13"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p13)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p13)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p13::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p13::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p13"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p13 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p13*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p13::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p13::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p13::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p13::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p13_h +#define HEADER_DestructibleAssetParameters_0p13_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p13NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0xf6cfcb55, 0x7ca1003a, 0x9133ce4f, 0x3268033e, }; + +} // namespace DestructibleAssetParameters_0p13NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p13 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p13NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p13(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p13(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)13; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p13NS::checksum); + return DestructibleAssetParameters_0p13NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p13NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p13* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p13NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p13Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p13::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p13), DestructibleAssetParameters_0p13::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p13::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p13"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p13)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p13)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p13::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p13::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p13"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p13 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p13*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p13::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p13::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p13::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p13::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p14.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p14.h old mode 100644 new mode 100755 index 943a9c9..f12b71b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p14.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p14.h @@ -1,519 +1,519 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p14_h -#define HEADER_DestructibleAssetParameters_0p14_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p14NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - float materialStrength; - float density; - float fadeOut; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0x0b98015c, 0x926d82d2, 0x34a14a73, 0x19363b21, }; - -} // namespace DestructibleAssetParameters_0p14NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p14 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p14NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p14(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p14(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)14; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p14NS::checksum); - return DestructibleAssetParameters_0p14NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p14NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p14* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p14NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p14Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p14::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p14), DestructibleAssetParameters_0p14::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p14::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p14"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p14)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p14)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p14::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p14::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p14"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p14 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p14*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p14::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p14::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p14::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p14::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p14_h +#define HEADER_DestructibleAssetParameters_0p14_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p14NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + float materialStrength; + float density; + float fadeOut; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0x0b98015c, 0x926d82d2, 0x34a14a73, 0x19363b21, }; + +} // namespace DestructibleAssetParameters_0p14NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p14 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p14NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p14(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p14(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)14; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p14NS::checksum); + return DestructibleAssetParameters_0p14NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p14NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p14* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p14NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p14Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p14::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p14), DestructibleAssetParameters_0p14::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p14::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p14"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p14)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p14)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p14::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p14::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p14"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p14 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p14*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p14::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p14::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p14::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p14::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p15.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p15.h old mode 100644 new mode 100755 index df57ff9..fa6ff15 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p15.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p15.h @@ -1,522 +1,522 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p15_h -#define HEADER_DestructibleAssetParameters_0p15_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p15NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - float minimumDamageRadius; - float damageRadiusMultiplier; - float damageFalloffExponent; - float materialStrength; - float density; - float fadeOut; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0x6ed3c943, 0x51e5ef25, 0xb38b4cf4, 0x4f8e506e, }; - -} // namespace DestructibleAssetParameters_0p15NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p15 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p15NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p15(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p15(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)15; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p15NS::checksum); - return DestructibleAssetParameters_0p15NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p15NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p15* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p15NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p15Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p15::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p15), DestructibleAssetParameters_0p15::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p15::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p15"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p15)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p15)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p15::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p15::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p15"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p15 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p15*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p15::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p15::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p15::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p15::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p15_h +#define HEADER_DestructibleAssetParameters_0p15_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p15NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + float minimumDamageRadius; + float damageRadiusMultiplier; + float damageFalloffExponent; + float materialStrength; + float density; + float fadeOut; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0x6ed3c943, 0x51e5ef25, 0xb38b4cf4, 0x4f8e506e, }; + +} // namespace DestructibleAssetParameters_0p15NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p15 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p15NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p15(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p15(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)15; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p15NS::checksum); + return DestructibleAssetParameters_0p15NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p15NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p15* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p15NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p15Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p15::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p15), DestructibleAssetParameters_0p15::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p15::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p15"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p15)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p15)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p15::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p15::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p15"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p15 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p15*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p15::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p15::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p15::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p15::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p16.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p16.h old mode 100644 new mode 100755 index 810ea8f..af1ca63 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p16.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p16.h @@ -1,529 +1,529 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p16_h -#define HEADER_DestructibleAssetParameters_0p16_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p16NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0x7d2f4aa0, 0x7e3defee, 0x73740a94, 0xe00adcb3, }; - -} // namespace DestructibleAssetParameters_0p16NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p16 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p16NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p16(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p16(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)16; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p16NS::checksum); - return DestructibleAssetParameters_0p16NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p16NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p16* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p16NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p16Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p16::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p16), DestructibleAssetParameters_0p16::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p16::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p16"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p16)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p16)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p16::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p16::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p16"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p16 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p16*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p16::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p16::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p16::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p16::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p16_h +#define HEADER_DestructibleAssetParameters_0p16_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p16NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0x7d2f4aa0, 0x7e3defee, 0x73740a94, 0xe00adcb3, }; + +} // namespace DestructibleAssetParameters_0p16NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p16 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p16NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p16(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p16(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)16; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p16NS::checksum); + return DestructibleAssetParameters_0p16NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p16NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p16* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p16NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p16Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p16::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p16), DestructibleAssetParameters_0p16::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p16::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p16"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p16)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p16)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p16::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p16::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p16"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p16 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p16*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p16::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p16::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p16::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p16::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p17.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p17.h old mode 100644 new mode 100755 index 1cb578c..68b5856 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p17.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p17.h @@ -1,530 +1,530 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p17_h -#define HEADER_DestructibleAssetParameters_0p17_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p17NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0xba335223, 0x3f1fce17, 0x52b089db, 0x03236282, }; - -} // namespace DestructibleAssetParameters_0p17NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p17 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p17NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p17(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p17(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)17; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p17NS::checksum); - return DestructibleAssetParameters_0p17NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p17NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p17* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p17NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p17Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p17::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p17), DestructibleAssetParameters_0p17::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p17::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p17"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p17)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p17)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p17::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p17::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p17"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p17 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p17*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p17::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p17::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p17::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p17::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p17_h +#define HEADER_DestructibleAssetParameters_0p17_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p17NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0xba335223, 0x3f1fce17, 0x52b089db, 0x03236282, }; + +} // namespace DestructibleAssetParameters_0p17NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p17 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p17NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p17(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p17(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)17; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p17NS::checksum); + return DestructibleAssetParameters_0p17NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p17NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p17* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p17NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p17Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p17::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p17), DestructibleAssetParameters_0p17::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p17::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p17"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p17)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p17)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p17::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p17::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p17"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p17 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p17*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p17::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p17::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p17::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p17::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p18.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p18.h old mode 100644 new mode 100755 index 338d99e..2ff8a7c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p18.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p18.h @@ -1,531 +1,531 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p18_h -#define HEADER_DestructibleAssetParameters_0p18_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p18NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - uint64_t userData; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0x2c057ffa, 0x3ba1f5e5, 0x69c3502a, 0xbf5a75db, }; - -} // namespace DestructibleAssetParameters_0p18NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p18 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p18NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p18(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p18(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)18; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p18NS::checksum); - return DestructibleAssetParameters_0p18NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p18NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p18* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p18NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p18Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p18::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p18), DestructibleAssetParameters_0p18::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p18::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p18"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p18)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p18)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p18::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p18::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p18"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p18 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p18*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p18::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p18::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p18::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p18::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p18_h +#define HEADER_DestructibleAssetParameters_0p18_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p18NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + uint64_t userData; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0x2c057ffa, 0x3ba1f5e5, 0x69c3502a, 0xbf5a75db, }; + +} // namespace DestructibleAssetParameters_0p18NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p18 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p18NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p18(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p18(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)18; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p18NS::checksum); + return DestructibleAssetParameters_0p18NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p18NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p18* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p18NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p18Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p18::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p18), DestructibleAssetParameters_0p18::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p18::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p18"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p18)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p18)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p18::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p18::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p18"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p18 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p18*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p18::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p18::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p18::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p18::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p19.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p19.h old mode 100644 new mode 100755 index 8c1f6a1..372b03f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p19.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p19.h @@ -1,558 +1,558 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p19_h -#define HEADER_DestructibleAssetParameters_0p19_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p19NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct M34_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct M34_DynamicArray1D_Type -{ - M34_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct M34_Type -{ - physx::PxMat33 matrix; - physx::PxVec3 vector; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - uint64_t userData; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - M34_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0xc348dadf, 0xef1f6246, 0x97e01551, 0x7f23a68a, }; - -} // namespace DestructibleAssetParameters_0p19NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p19 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p19NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p19(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p19(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)19; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p19NS::checksum); - return DestructibleAssetParameters_0p19NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p19NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p19* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p19NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p19Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p19::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p19), DestructibleAssetParameters_0p19::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p19::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p19"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p19)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p19)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p19::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p19::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p19"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p19 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p19*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p19::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p19::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p19::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p19::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p19_h +#define HEADER_DestructibleAssetParameters_0p19_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p19NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct M34_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct M34_DynamicArray1D_Type +{ + M34_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct M34_Type +{ + physx::PxMat33 matrix; + physx::PxVec3 vector; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + uint64_t userData; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + M34_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0xc348dadf, 0xef1f6246, 0x97e01551, 0x7f23a68a, }; + +} // namespace DestructibleAssetParameters_0p19NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p19 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p19NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p19(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p19(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)19; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p19NS::checksum); + return DestructibleAssetParameters_0p19NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p19NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p19* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p19NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p19Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p19::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p19), DestructibleAssetParameters_0p19::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p19::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p19"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p19)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p19)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p19::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p19::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p19"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p19 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p19*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p19::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p19::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p19::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p19::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p2.h old mode 100644 new mode 100755 index 2289961..95ec3a8 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p2.h @@ -1,476 +1,476 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p2_h -#define HEADER_DestructibleAssetParameters_0p2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p2NS -{ - -struct Chunk_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool ASSET_DEFINED_SUPPORT; - bool WORLD_SUPPORT; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t formExtendedStructures; - uint32_t supportDepth; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - float massScaleExponent; - DestructibleParametersFlag_Type flags; - float grbVolumeLimit; - float grbParticleSpacing; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxBounds3 bounds; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - -}; - -static const uint32_t checksum[] = { 0x82d197c5, 0x1d6d15b6, 0x620e886e, 0x3682b492, }; - -} // namespace DestructibleAssetParameters_0p2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p2 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p2NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p2NS::checksum); - return DestructibleAssetParameters_0p2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p2NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p2), DestructibleAssetParameters_0p2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p2*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p2_h +#define HEADER_DestructibleAssetParameters_0p2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p2NS +{ + +struct Chunk_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool ASSET_DEFINED_SUPPORT; + bool WORLD_SUPPORT; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t formExtendedStructures; + uint32_t supportDepth; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + float massScaleExponent; + DestructibleParametersFlag_Type flags; + float grbVolumeLimit; + float grbParticleSpacing; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxBounds3 bounds; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + +}; + +static const uint32_t checksum[] = { 0x82d197c5, 0x1d6d15b6, 0x620e886e, 0x3682b492, }; + +} // namespace DestructibleAssetParameters_0p2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p2 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p2NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p2NS::checksum); + return DestructibleAssetParameters_0p2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p2NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p2), DestructibleAssetParameters_0p2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p2*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p20.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p20.h old mode 100644 new mode 100755 index d65de96..c08f1f9 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p20.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p20.h @@ -1,589 +1,589 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p20_h -#define HEADER_DestructibleAssetParameters_0p20_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p20NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct M34_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct M34_DynamicArray1D_Type -{ - M34_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct M34_Type -{ - physx::PxMat33 matrix; - physx::PxVec3 vector; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - uint64_t userData; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - M34_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0x5b26de1a, 0x32420a3c, 0x92dc08b2, 0x4f9aac6c, }; - -} // namespace DestructibleAssetParameters_0p20NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p20 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p20NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p20(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p20(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)20; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p20NS::checksum); - return DestructibleAssetParameters_0p20NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p20NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p20* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p20NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p20Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p20::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p20), DestructibleAssetParameters_0p20::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p20::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p20"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p20)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p20)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p20::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p20::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p20"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p20 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p20*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p20::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p20::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p20::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p20::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p20_h +#define HEADER_DestructibleAssetParameters_0p20_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p20NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct M34_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct M34_DynamicArray1D_Type +{ + M34_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct M34_Type +{ + physx::PxMat33 matrix; + physx::PxVec3 vector; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + uint64_t userData; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + M34_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0x5b26de1a, 0x32420a3c, 0x92dc08b2, 0x4f9aac6c, }; + +} // namespace DestructibleAssetParameters_0p20NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p20 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p20NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p20(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p20(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)20; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p20NS::checksum); + return DestructibleAssetParameters_0p20NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p20NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p20* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p20NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p20Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p20::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p20), DestructibleAssetParameters_0p20::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p20::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p20"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p20)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p20)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p20::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p20::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p20"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p20 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p20*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p20::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p20::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p20::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p20::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p21.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p21.h old mode 100644 new mode 100755 index b8c2ce0..4e47225 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p21.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p21.h @@ -1,590 +1,590 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p21_h -#define HEADER_DestructibleAssetParameters_0p21_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p21NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct M34_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct M34_DynamicArray1D_Type -{ - M34_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct M34_Type -{ - physx::PxMat33 matrix; - physx::PxVec3 vector; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - uint64_t userData; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - M34_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0x77041176, 0x2d446a05, 0xc794c6d6, 0x41b8ccbd, }; - -} // namespace DestructibleAssetParameters_0p21NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p21 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p21NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p21(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p21(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)21; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p21NS::checksum); - return DestructibleAssetParameters_0p21NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p21NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p21* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p21NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p21Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p21::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p21), DestructibleAssetParameters_0p21::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p21::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p21"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p21)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p21)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p21::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p21::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p21"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p21 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p21*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p21::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p21::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p21::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p21::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p21_h +#define HEADER_DestructibleAssetParameters_0p21_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p21NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct M34_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct M34_DynamicArray1D_Type +{ + M34_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct M34_Type +{ + physx::PxMat33 matrix; + physx::PxVec3 vector; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + uint64_t userData; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + M34_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0x77041176, 0x2d446a05, 0xc794c6d6, 0x41b8ccbd, }; + +} // namespace DestructibleAssetParameters_0p21NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p21 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p21NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p21(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p21(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)21; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p21NS::checksum); + return DestructibleAssetParameters_0p21NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p21NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p21* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p21NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p21Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p21::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p21), DestructibleAssetParameters_0p21::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p21::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p21"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p21)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p21)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p21::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p21::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p21"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p21 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p21*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p21::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p21::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p21::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p21::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p22.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p22.h old mode 100644 new mode 100755 index 2df97db..7369364 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p22.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p22.h @@ -1,600 +1,600 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p22_h -#define HEADER_DestructibleAssetParameters_0p22_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p22NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct M34_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct M34_DynamicArray1D_Type -{ - M34_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct M34_Type -{ - physx::PxMat33 matrix; - physx::PxVec3 vector; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - M34_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0x5514344d, 0x31d8840d, 0xd91edd48, 0xaf3cc2c5, }; - -} // namespace DestructibleAssetParameters_0p22NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p22 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p22NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p22(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p22(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)22; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p22NS::checksum); - return DestructibleAssetParameters_0p22NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p22NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p22* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p22NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p22Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p22::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p22), DestructibleAssetParameters_0p22::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p22::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p22"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p22)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p22)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p22::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p22::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p22"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p22 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p22*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p22::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p22::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p22::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p22::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p22_h +#define HEADER_DestructibleAssetParameters_0p22_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p22NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct M34_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct M34_DynamicArray1D_Type +{ + M34_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct M34_Type +{ + physx::PxMat33 matrix; + physx::PxVec3 vector; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + M34_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0x5514344d, 0x31d8840d, 0xd91edd48, 0xaf3cc2c5, }; + +} // namespace DestructibleAssetParameters_0p22NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p22 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p22NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p22(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p22(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)22; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p22NS::checksum); + return DestructibleAssetParameters_0p22NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p22NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p22* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p22NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p22Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p22::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p22), DestructibleAssetParameters_0p22::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p22::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p22"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p22)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p22)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p22::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p22::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p22"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p22 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p22*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p22::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p22::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p22::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p22::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p23.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p23.h old mode 100644 new mode 100755 index 1b39c98..fea9f14 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p23.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p23.h @@ -1,601 +1,601 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p23_h -#define HEADER_DestructibleAssetParameters_0p23_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p23NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct M34_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct M34_DynamicArray1D_Type -{ - M34_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct M34_Type -{ - physx::PxMat33 matrix; - physx::PxVec3 vector; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - M34_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0x23366b01, 0x536b5be2, 0x10f1c105, 0x9aefafa9, }; - -} // namespace DestructibleAssetParameters_0p23NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p23 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p23NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p23(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p23(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)23; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p23NS::checksum); - return DestructibleAssetParameters_0p23NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p23NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p23* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p23NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p23Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p23::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p23), DestructibleAssetParameters_0p23::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p23::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p23"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p23)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p23)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p23::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p23::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p23"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p23 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p23*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p23::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p23::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p23::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p23::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p23_h +#define HEADER_DestructibleAssetParameters_0p23_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p23NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct M34_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct M34_DynamicArray1D_Type +{ + M34_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct M34_Type +{ + physx::PxMat33 matrix; + physx::PxVec3 vector; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + M34_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0x23366b01, 0x536b5be2, 0x10f1c105, 0x9aefafa9, }; + +} // namespace DestructibleAssetParameters_0p23NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p23 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p23NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p23(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p23(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)23; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p23NS::checksum); + return DestructibleAssetParameters_0p23NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p23NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p23* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p23NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p23Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p23::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p23), DestructibleAssetParameters_0p23::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p23::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p23"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p23)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p23)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p23::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p23::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p23"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p23 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p23*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p23::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p23::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p23::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p23::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p24.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p24.h old mode 100644 new mode 100755 index 2b5e832..80b2af5 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p24.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p24.h @@ -1,603 +1,603 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p24_h -#define HEADER_DestructibleAssetParameters_0p24_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p24NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct M34_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct M34_DynamicArray1D_Type -{ - M34_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct M34_Type -{ - physx::PxMat33 matrix; - physx::PxVec3 vector; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - M34_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0x1850e66c, 0xb88dc447, 0x01dfd5c9, 0x4fccef9c, }; - -} // namespace DestructibleAssetParameters_0p24NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p24 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p24NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p24(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p24(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)24; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p24NS::checksum); - return DestructibleAssetParameters_0p24NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p24NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p24* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p24NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p24Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p24::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p24), DestructibleAssetParameters_0p24::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p24::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p24"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p24)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p24)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p24::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p24::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p24"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p24 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p24*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p24::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p24::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p24::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p24::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p24_h +#define HEADER_DestructibleAssetParameters_0p24_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p24NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct M34_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct M34_DynamicArray1D_Type +{ + M34_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct M34_Type +{ + physx::PxMat33 matrix; + physx::PxVec3 vector; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + M34_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0x1850e66c, 0xb88dc447, 0x01dfd5c9, 0x4fccef9c, }; + +} // namespace DestructibleAssetParameters_0p24NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p24 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p24NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p24(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p24(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)24; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p24NS::checksum); + return DestructibleAssetParameters_0p24NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p24NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p24* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p24NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p24Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p24::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p24), DestructibleAssetParameters_0p24::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p24::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p24"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p24)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p24)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p24::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p24::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p24"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p24 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p24*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p24::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p24::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p24::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p24::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p25.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p25.h old mode 100644 new mode 100755 index fa2b398..bfb3c3a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p25.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p25.h @@ -1,580 +1,580 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p25_h -#define HEADER_DestructibleAssetParameters_0p25_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p25NS -{ - -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct Plane_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - uint64_t userData; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - MAT44_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0x11268689, 0x39ecdbd7, 0xecef1fff, 0x7fbbb26e, }; - -} // namespace DestructibleAssetParameters_0p25NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p25 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p25NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p25(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p25(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)25; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p25NS::checksum); - return DestructibleAssetParameters_0p25NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p25NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p25* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p25NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p25Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p25::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p25), DestructibleAssetParameters_0p25::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p25::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p25"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p25)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p25)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p25::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p25::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p25"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p25 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p25*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p25::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p25::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p25::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p25::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p25_h +#define HEADER_DestructibleAssetParameters_0p25_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p25NS +{ + +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct Plane_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + uint64_t userData; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + MAT44_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0x11268689, 0x39ecdbd7, 0xecef1fff, 0x7fbbb26e, }; + +} // namespace DestructibleAssetParameters_0p25NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p25 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p25NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p25(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p25(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)25; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p25NS::checksum); + return DestructibleAssetParameters_0p25NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p25NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p25* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p25NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p25Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p25::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p25), DestructibleAssetParameters_0p25::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p25::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p25"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p25)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p25)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p25::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p25::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p25"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p25 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p25*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p25::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p25::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p25::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p25::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p26.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p26.h old mode 100644 new mode 100755 index cb78243..290275d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p26.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p26.h @@ -1,675 +1,675 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p26_h -#define HEADER_DestructibleAssetParameters_0p26_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p26NS -{ - -struct GroupsMask_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct FractureGlass_Type; -struct FractureVoronoi_Type; -struct FractureAttachment_Type; -struct RuntimeFracture_Type; -struct DestructibleParameters_Type; -struct DamageSpreadFunction_Type; -struct BufferFormat_Type; -struct U8x2_Type; -struct U8x3_Type; -struct U8x4_Type; -struct U16x2_Type; -struct U16x3_Type; -struct U16x4_Type; -struct U32x2_Type; -struct U32x3_Type; -struct U32x4_Type; -struct F32x2_Type; -struct F32x3_Type; -struct F32x4_Type; -struct Plane_Type; -struct BehaviorGroup_Type; -struct Chunk_Type; -struct InstanceInfo_Type; - -struct BehaviorGroup_DynamicArray1D_Type -{ - BehaviorGroup_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x3_Type -{ - float x; - float y; - float z; -}; -struct U32x2_Type -{ - uint32_t x; - uint32_t y; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; - bool CRUMBLE_VIA_RUNTIME_FRACTURE; -}; -struct U32x4_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; - uint32_t w; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct F32x2_Type -{ - float x; - float y; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct U16x2_Type -{ - uint16_t x; - uint16_t y; -}; -struct U8x2_Type -{ - uint8_t x; - uint8_t y; -}; -struct DamageSpreadFunction_Type -{ - float minimumRadius; - float radiusMultiplier; - float falloffExponent; -}; -struct FractureVoronoi_Type -{ - physx::PxVec3 dimensions; - uint32_t numCells; - float biasExp; - float maxDist; -}; -struct U8x3_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BufferFormat_Type -{ - NvParameterized::DummyStringStruct name; - int32_t semantic; - uint32_t id; - uint32_t format; - uint32_t access; - bool serialize; -}; -struct FractureAttachment_Type -{ - bool posX; - bool negX; - bool posY; - bool negY; - bool posZ; - bool negZ; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; - int8_t behaviorGroupIndex; - uint16_t firstScatterMesh; - uint16_t scatterMeshCount; -}; -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct U16x4_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; - uint16_t w; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct U32x3_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; -}; -struct U16x3_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; -}; -struct F32x4_Type -{ - PX_ALIGN(16, float x); - float y; - float z; - float w; -}; -struct FractureGlass_Type -{ - uint32_t numSectors; - float sectorRand; - float firstSegmentSize; - float segmentScale; - float segmentRand; -}; -struct RuntimeFracture_Type -{ - const char* RuntimeFractureType; - bool sheetFracture; - uint32_t depthLimit; - bool destroyIfAtDepthLimit; - float minConvexSize; - float impulseScale; - FractureGlass_Type glass; - FractureVoronoi_Type voronoi; - FractureAttachment_Type attachment; -}; -struct DestructibleParameters_Type -{ - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - float debrisDestructionProbability; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t damageDepthLimit; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; - RuntimeFracture_Type runtimeFracture; - float supportStrength; - int8_t legacyChunkBoundsTestSetting; - int8_t legacyDamageRadiusSpreadSetting; - bool alwaysDrawScatterMesh; -}; -struct BehaviorGroup_Type -{ - NvParameterized::DummyStringStruct name; - float damageThreshold; - float damageToRadius; - DamageSpreadFunction_Type damageSpread; - DamageSpreadFunction_Type damageColorSpread; - physx::PxVec4 damageColorChange; - float materialStrength; - float density; - float fadeOut; - float maxDepenetrationVelocity; - uint64_t userData; -}; -struct U8x4_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; - uint8_t w; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - NvParameterized::DummyStringStruct comments; - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - BehaviorGroup_Type defaultBehaviorGroup; - BehaviorGroup_DynamicArray1D_Type behaviorGroups; - int8_t RTFractureBehaviorGroup; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - REF_DynamicArray1D_Type scatterMeshAssets; - U8_DynamicArray1D_Type scatterMeshIndices; - MAT44_DynamicArray1D_Type scatterMeshTransforms; - -}; - -static const uint32_t checksum[] = { 0xb0082230, 0x839469d7, 0xd24a9c81, 0xc8df3469, }; - -} // namespace DestructibleAssetParameters_0p26NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p26 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p26NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p26(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p26(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)26; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p26NS::checksum); - return DestructibleAssetParameters_0p26NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p26NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p26* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p26NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p26Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p26::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p26), DestructibleAssetParameters_0p26::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p26::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p26"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p26)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p26)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p26::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p26::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p26"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p26 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p26*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p26::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p26::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p26::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p26::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p26_h +#define HEADER_DestructibleAssetParameters_0p26_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p26NS +{ + +struct GroupsMask_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct FractureGlass_Type; +struct FractureVoronoi_Type; +struct FractureAttachment_Type; +struct RuntimeFracture_Type; +struct DestructibleParameters_Type; +struct DamageSpreadFunction_Type; +struct BufferFormat_Type; +struct U8x2_Type; +struct U8x3_Type; +struct U8x4_Type; +struct U16x2_Type; +struct U16x3_Type; +struct U16x4_Type; +struct U32x2_Type; +struct U32x3_Type; +struct U32x4_Type; +struct F32x2_Type; +struct F32x3_Type; +struct F32x4_Type; +struct Plane_Type; +struct BehaviorGroup_Type; +struct Chunk_Type; +struct InstanceInfo_Type; + +struct BehaviorGroup_DynamicArray1D_Type +{ + BehaviorGroup_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x3_Type +{ + float x; + float y; + float z; +}; +struct U32x2_Type +{ + uint32_t x; + uint32_t y; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; + bool CRUMBLE_VIA_RUNTIME_FRACTURE; +}; +struct U32x4_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; + uint32_t w; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct F32x2_Type +{ + float x; + float y; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct U16x2_Type +{ + uint16_t x; + uint16_t y; +}; +struct U8x2_Type +{ + uint8_t x; + uint8_t y; +}; +struct DamageSpreadFunction_Type +{ + float minimumRadius; + float radiusMultiplier; + float falloffExponent; +}; +struct FractureVoronoi_Type +{ + physx::PxVec3 dimensions; + uint32_t numCells; + float biasExp; + float maxDist; +}; +struct U8x3_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BufferFormat_Type +{ + NvParameterized::DummyStringStruct name; + int32_t semantic; + uint32_t id; + uint32_t format; + uint32_t access; + bool serialize; +}; +struct FractureAttachment_Type +{ + bool posX; + bool negX; + bool posY; + bool negY; + bool posZ; + bool negZ; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; + int8_t behaviorGroupIndex; + uint16_t firstScatterMesh; + uint16_t scatterMeshCount; +}; +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct U16x4_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; + uint16_t w; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct U32x3_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; +}; +struct U16x3_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; +}; +struct F32x4_Type +{ + PX_ALIGN(16, float x); + float y; + float z; + float w; +}; +struct FractureGlass_Type +{ + uint32_t numSectors; + float sectorRand; + float firstSegmentSize; + float segmentScale; + float segmentRand; +}; +struct RuntimeFracture_Type +{ + const char* RuntimeFractureType; + bool sheetFracture; + uint32_t depthLimit; + bool destroyIfAtDepthLimit; + float minConvexSize; + float impulseScale; + FractureGlass_Type glass; + FractureVoronoi_Type voronoi; + FractureAttachment_Type attachment; +}; +struct DestructibleParameters_Type +{ + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + float debrisDestructionProbability; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t damageDepthLimit; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; + RuntimeFracture_Type runtimeFracture; + float supportStrength; + int8_t legacyChunkBoundsTestSetting; + int8_t legacyDamageRadiusSpreadSetting; + bool alwaysDrawScatterMesh; +}; +struct BehaviorGroup_Type +{ + NvParameterized::DummyStringStruct name; + float damageThreshold; + float damageToRadius; + DamageSpreadFunction_Type damageSpread; + DamageSpreadFunction_Type damageColorSpread; + physx::PxVec4 damageColorChange; + float materialStrength; + float density; + float fadeOut; + float maxDepenetrationVelocity; + uint64_t userData; +}; +struct U8x4_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; + uint8_t w; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + NvParameterized::DummyStringStruct comments; + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + BehaviorGroup_Type defaultBehaviorGroup; + BehaviorGroup_DynamicArray1D_Type behaviorGroups; + int8_t RTFractureBehaviorGroup; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + REF_DynamicArray1D_Type scatterMeshAssets; + U8_DynamicArray1D_Type scatterMeshIndices; + MAT44_DynamicArray1D_Type scatterMeshTransforms; + +}; + +static const uint32_t checksum[] = { 0xb0082230, 0x839469d7, 0xd24a9c81, 0xc8df3469, }; + +} // namespace DestructibleAssetParameters_0p26NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p26 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p26NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p26(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p26(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)26; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p26NS::checksum); + return DestructibleAssetParameters_0p26NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p26NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p26* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p26NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p26Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p26::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p26), DestructibleAssetParameters_0p26::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p26::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p26"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p26)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p26)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p26::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p26::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p26"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p26 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p26*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p26::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p26::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p26::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p26::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p3.h old mode 100644 new mode 100755 index 6bec570..92643b3 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p3.h @@ -1,474 +1,474 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p3_h -#define HEADER_DestructibleAssetParameters_0p3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p3NS -{ - -struct Chunk_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxBounds3 bounds; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - float massScaleExponent; - -}; - -static const uint32_t checksum[] = { 0xa0659145, 0x7c7853ec, 0x5925b84a, 0xe016e03b, }; - -} // namespace DestructibleAssetParameters_0p3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p3 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p3NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p3NS::checksum); - return DestructibleAssetParameters_0p3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p3NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p3), DestructibleAssetParameters_0p3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p3*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p3_h +#define HEADER_DestructibleAssetParameters_0p3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p3NS +{ + +struct Chunk_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxBounds3 bounds; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + float massScaleExponent; + +}; + +static const uint32_t checksum[] = { 0xa0659145, 0x7c7853ec, 0x5925b84a, 0xe016e03b, }; + +} // namespace DestructibleAssetParameters_0p3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p3 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p3NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p3NS::checksum); + return DestructibleAssetParameters_0p3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p3NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p3), DestructibleAssetParameters_0p3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p3*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p4.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p4.h old mode 100644 new mode 100755 index 509413a..c9c7c04 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p4.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p4.h @@ -1,475 +1,475 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p4_h -#define HEADER_DestructibleAssetParameters_0p4_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p4NS -{ - -struct Chunk_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxBounds3 bounds; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - float massScaleExponent; - -}; - -static const uint32_t checksum[] = { 0xdbc7d73d, 0x74b66caa, 0x71f94316, 0xf7f9a2be, }; - -} // namespace DestructibleAssetParameters_0p4NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p4 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p4NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p4(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p4NS::checksum); - return DestructibleAssetParameters_0p4NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p4NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p4* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p4NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p4Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p4::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p4), DestructibleAssetParameters_0p4::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p4"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p4)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p4)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p4::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p4"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p4 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p4*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p4::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p4::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p4::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p4::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p4_h +#define HEADER_DestructibleAssetParameters_0p4_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p4NS +{ + +struct Chunk_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxBounds3 bounds; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + float massScaleExponent; + +}; + +static const uint32_t checksum[] = { 0xdbc7d73d, 0x74b66caa, 0x71f94316, 0xf7f9a2be, }; + +} // namespace DestructibleAssetParameters_0p4NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p4 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p4NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p4(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)4; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p4NS::checksum); + return DestructibleAssetParameters_0p4NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p4NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p4* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p4NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p4Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p4::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p4), DestructibleAssetParameters_0p4::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p4"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p4)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p4)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p4::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p4"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p4 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p4*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p4::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p4::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p4::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p4::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p5.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p5.h old mode 100644 new mode 100755 index c66c139..8ca15bb --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p5.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p5.h @@ -1,474 +1,474 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p5_h -#define HEADER_DestructibleAssetParameters_0p5_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p5NS -{ - -struct Chunk_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxBounds3 bounds; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - -}; - -static const uint32_t checksum[] = { 0x0d9c4f37, 0xeb0119b0, 0x12937873, 0x8fffbdc3, }; - -} // namespace DestructibleAssetParameters_0p5NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p5 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p5NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p5(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p5(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)5; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p5NS::checksum); - return DestructibleAssetParameters_0p5NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p5NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p5* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p5NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p5Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p5::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p5), DestructibleAssetParameters_0p5::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p5::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p5"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p5)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p5)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p5::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p5::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p5"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p5 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p5*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p5::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p5::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p5::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p5::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p5_h +#define HEADER_DestructibleAssetParameters_0p5_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p5NS +{ + +struct Chunk_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxBounds3 bounds; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + +}; + +static const uint32_t checksum[] = { 0x0d9c4f37, 0xeb0119b0, 0x12937873, 0x8fffbdc3, }; + +} // namespace DestructibleAssetParameters_0p5NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p5 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p5NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p5(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p5(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)5; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p5NS::checksum); + return DestructibleAssetParameters_0p5NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p5NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p5* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p5NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p5Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p5::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p5), DestructibleAssetParameters_0p5::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p5::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p5"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p5)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p5)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p5::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p5::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p5"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p5 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p5*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p5::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p5::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p5::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p5::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p6.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p6.h old mode 100644 new mode 100755 index 403e97d..775e62c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p6.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p6.h @@ -1,581 +1,581 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p6_h -#define HEADER_DestructibleAssetParameters_0p6_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p6NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint16_t materialIndex; - float contactOffset; - float restOffset ; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxBounds3 bounds; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - REF_DynamicArray1D_Type instancedRenderMeshAssets; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - -}; - -static const uint32_t checksum[] = { 0x7ff83c4f, 0x927140bd, 0x8bcff4d5, 0x7436bee3, }; - -} // namespace DestructibleAssetParameters_0p6NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p6 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p6NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p6(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p6(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)6; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p6NS::checksum); - return DestructibleAssetParameters_0p6NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p6NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p6* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p6NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p6Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p6::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p6), DestructibleAssetParameters_0p6::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p6::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p6"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p6)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p6)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p6::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p6::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p6"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p6 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p6*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p6::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p6::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p6::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p6::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p6_h +#define HEADER_DestructibleAssetParameters_0p6_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p6NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint16_t materialIndex; + float contactOffset; + float restOffset ; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxBounds3 bounds; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + REF_DynamicArray1D_Type instancedRenderMeshAssets; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + +}; + +static const uint32_t checksum[] = { 0x7ff83c4f, 0x927140bd, 0x8bcff4d5, 0x7436bee3, }; + +} // namespace DestructibleAssetParameters_0p6NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p6 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p6NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p6(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p6(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)6; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p6NS::checksum); + return DestructibleAssetParameters_0p6NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p6NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p6* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p6NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p6Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p6::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p6), DestructibleAssetParameters_0p6::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p6::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p6"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p6)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p6)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p6::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p6::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p6"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p6 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p6*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p6::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p6::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p6::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p6::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p7.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p7.h old mode 100644 new mode 100755 index c883ec8..823a23b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p7.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p7.h @@ -1,579 +1,579 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p7_h -#define HEADER_DestructibleAssetParameters_0p7_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p7NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool TAKE_IMPACT_DAMAGE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - float damageToPercentDeformation; - float deformationPercentLimit; - uint32_t minimumFractureDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint16_t materialIndex; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - -}; - -static const uint32_t checksum[] = { 0x413f957f, 0x3e6c42e8, 0xa52b14f8, 0xb0466d5c, }; - -} // namespace DestructibleAssetParameters_0p7NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p7 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p7NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p7(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p7(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)7; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p7NS::checksum); - return DestructibleAssetParameters_0p7NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p7NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p7* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p7NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p7Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p7::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p7), DestructibleAssetParameters_0p7::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p7::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p7"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p7)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p7)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p7::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p7::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p7"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p7 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p7*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p7::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p7::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p7::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p7::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p7_h +#define HEADER_DestructibleAssetParameters_0p7_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p7NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool TAKE_IMPACT_DAMAGE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + float damageToPercentDeformation; + float deformationPercentLimit; + uint32_t minimumFractureDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint16_t materialIndex; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + +}; + +static const uint32_t checksum[] = { 0x413f957f, 0x3e6c42e8, 0xa52b14f8, 0xb0466d5c, }; + +} // namespace DestructibleAssetParameters_0p7NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p7 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p7NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p7(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p7(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)7; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p7NS::checksum); + return DestructibleAssetParameters_0p7NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p7NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p7* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p7NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p7Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p7::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p7), DestructibleAssetParameters_0p7::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p7::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p7"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p7)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p7)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p7::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p7::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p7"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p7 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p7*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p7::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p7::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p7::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p7::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p8.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p8.h old mode 100644 new mode 100755 index bb7d43b..44fe90e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p8.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p8.h @@ -1,579 +1,579 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p8_h -#define HEADER_DestructibleAssetParameters_0p8_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p8NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct P3FilterData_Type; -struct P3ShapeFlags_Type; -struct P3PairFlag_Type; -struct P3ShapeDescTemplate_Type; -struct P3ActorFlags_Type; -struct P3ActorDescTemplate_Type; -struct P3BodyDescFlags_Type; -struct P3BodyDescTemplate_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct P3BodyDescFlags_Type -{ - bool eKINEMATIC; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct P3FilterData_Type -{ - uint32_t word0; - uint32_t word1; - uint32_t word2; - uint32_t word3; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct P3ShapeFlags_Type -{ - bool eSIMULATION_SHAPE; - bool eSCENE_QUERY_SHAPE; - bool eTRIGGER_SHAPE; - bool eVISUALIZATION; - bool ePARTICLE_DRAIN; - bool eDEFORMABLE_DRAIN; - bool eUSE_SWEPT_BOUNDS; -}; -struct P3ShapeDescTemplate_Type -{ - P3ShapeFlags_Type flags; - P3FilterData_Type simulationFilterData; - P3FilterData_Type queryFilterData; - uint16_t materialIndex; - float contactOffset; - float restOffset; - uint64_t userData; - uint64_t name; -}; -struct P3ActorFlags_Type -{ - bool eVISUALIZATION; - bool eDISABLE_GRAVITY; - bool eSEND_SLEEP_NOTIFIES; -}; -struct P3BodyDescTemplate_Type -{ - float density; - P3BodyDescFlags_Type flags; - float sleepThreshold; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - uint32_t solverIterationCount; - float contactReportThreshold; - float sleepLinearVelocity; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; -struct P3PairFlag_Type -{ - bool eRESOLVE_CONTACTS; - bool eMODIFY_CONTACTS; - bool eNOTIFY_TOUCH_FOUND; - bool eNOTIFY_TOUCH_PERSISTS; - bool eNOTIFY_TOUCH_LOST; - bool eNOTIFY_THRESHOLD_FORCE_FOUND; - bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; - bool eNOTIFY_THRESHOLD_FORCE_LOST; - bool eNOTIFY_CONTACT_POINTS; - bool eNOTIFY_CONTACT_FORCES; - bool eNOTIFY_CONTACT_FORCE_PER_POINT; - bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; - bool eSWEPT_CONTACT_GENERATION; - bool eSWEPT_INTEGRATION_LINEAR; - bool eSWEPT_INTEGRATION_FULL; - bool eCONTACT_DEFAULT; - bool eTRIGGER_DEFAULT; -}; -struct P3ActorDescTemplate_Type -{ - P3ActorFlags_Type flags; - uint8_t dominanceGroup; - uint8_t ownerClient; - uint32_t clientBehaviorBits; - P3PairFlag_Type contactReportFlags; - uint64_t userData; - uint64_t name; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - -}; - -static const uint32_t checksum[] = { 0xe8a2332d, 0xf757b2db, 0x07eb1ca5, 0x80693529, }; - -} // namespace DestructibleAssetParameters_0p8NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p8 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p8NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p8(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p8(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)8; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p8NS::checksum); - return DestructibleAssetParameters_0p8NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p8NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p8* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p8NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p8Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p8::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p8), DestructibleAssetParameters_0p8::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p8::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p8"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p8)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p8)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p8::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p8::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p8"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p8 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p8*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p8::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p8::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p8::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p8::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p8_h +#define HEADER_DestructibleAssetParameters_0p8_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p8NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct P3FilterData_Type; +struct P3ShapeFlags_Type; +struct P3PairFlag_Type; +struct P3ShapeDescTemplate_Type; +struct P3ActorFlags_Type; +struct P3ActorDescTemplate_Type; +struct P3BodyDescFlags_Type; +struct P3BodyDescTemplate_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct P3BodyDescFlags_Type +{ + bool eKINEMATIC; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct P3FilterData_Type +{ + uint32_t word0; + uint32_t word1; + uint32_t word2; + uint32_t word3; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct P3ShapeFlags_Type +{ + bool eSIMULATION_SHAPE; + bool eSCENE_QUERY_SHAPE; + bool eTRIGGER_SHAPE; + bool eVISUALIZATION; + bool ePARTICLE_DRAIN; + bool eDEFORMABLE_DRAIN; + bool eUSE_SWEPT_BOUNDS; +}; +struct P3ShapeDescTemplate_Type +{ + P3ShapeFlags_Type flags; + P3FilterData_Type simulationFilterData; + P3FilterData_Type queryFilterData; + uint16_t materialIndex; + float contactOffset; + float restOffset; + uint64_t userData; + uint64_t name; +}; +struct P3ActorFlags_Type +{ + bool eVISUALIZATION; + bool eDISABLE_GRAVITY; + bool eSEND_SLEEP_NOTIFIES; +}; +struct P3BodyDescTemplate_Type +{ + float density; + P3BodyDescFlags_Type flags; + float sleepThreshold; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + uint32_t solverIterationCount; + float contactReportThreshold; + float sleepLinearVelocity; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; +struct P3PairFlag_Type +{ + bool eRESOLVE_CONTACTS; + bool eMODIFY_CONTACTS; + bool eNOTIFY_TOUCH_FOUND; + bool eNOTIFY_TOUCH_PERSISTS; + bool eNOTIFY_TOUCH_LOST; + bool eNOTIFY_THRESHOLD_FORCE_FOUND; + bool eNOTIFY_THRESHOLD_FORCE_PERSISTS; + bool eNOTIFY_THRESHOLD_FORCE_LOST; + bool eNOTIFY_CONTACT_POINTS; + bool eNOTIFY_CONTACT_FORCES; + bool eNOTIFY_CONTACT_FORCE_PER_POINT; + bool eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT; + bool eSWEPT_CONTACT_GENERATION; + bool eSWEPT_INTEGRATION_LINEAR; + bool eSWEPT_INTEGRATION_FULL; + bool eCONTACT_DEFAULT; + bool eTRIGGER_DEFAULT; +}; +struct P3ActorDescTemplate_Type +{ + P3ActorFlags_Type flags; + uint8_t dominanceGroup; + uint8_t ownerClient; + uint32_t clientBehaviorBits; + P3PairFlag_Type contactReportFlags; + uint64_t userData; + uint64_t name; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + +}; + +static const uint32_t checksum[] = { 0xe8a2332d, 0xf757b2db, 0x07eb1ca5, 0x80693529, }; + +} // namespace DestructibleAssetParameters_0p8NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p8 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p8NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p8(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p8(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)8; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p8NS::checksum); + return DestructibleAssetParameters_0p8NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p8NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p8* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p8NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p8Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p8::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p8), DestructibleAssetParameters_0p8::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p8::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p8"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p8)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p8)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p8::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p8::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p8"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p8 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p8*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p8::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p8::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p8::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p8::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p9.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p9.h old mode 100644 new mode 100755 index 3a2aeae..49b5094 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p9.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleAssetParameters_0p9.h @@ -1,499 +1,499 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleAssetParameters_0p9_h -#define HEADER_DestructibleAssetParameters_0p9_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleAssetParameters_0p9NS -{ - -struct Chunk_Type; -struct InstanceInfo_Type; -struct GroupsMask_Type; -struct LODWeights_Type; -struct ShapeDescFlags_Type; -struct ShapeDescTemplate_Type; -struct ContactPairFlag_Type; -struct ActorDescFlags_Type; -struct ActorDescTemplate_Type; -struct BodyDescFlags_Type; -struct BodyDescTemplate_Type; -struct DestructibleDepthParameters_Type; -struct DestructibleParametersFlag_Type; -struct DestructibleParameters_Type; -struct Plane_Type; - -struct Chunk_DynamicArray1D_Type -{ - Chunk_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_DynamicArray1D_Type -{ - DestructibleDepthParameters_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct InstanceInfo_DynamicArray1D_Type -{ - InstanceInfo_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct MAT44_DynamicArray1D_Type -{ - physx::PxMat44* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct DestructibleDepthParameters_Type -{ - bool OVERRIDE_IMPACT_DAMAGE; - bool OVERRIDE_IMPACT_DAMAGE_VALUE; - bool IGNORE_POSE_UPDATES; - bool IGNORE_RAYCAST_CALLBACKS; - bool IGNORE_CONTACT_CALLBACKS; - bool USER_FLAG_0; - bool USER_FLAG_1; - bool USER_FLAG_2; - bool USER_FLAG_3; -}; -struct GroupsMask_Type -{ - bool useGroupsMask; - uint32_t bits0; - uint32_t bits1; - uint32_t bits2; - uint32_t bits3; -}; -struct DestructibleParametersFlag_Type -{ - bool ACCUMULATE_DAMAGE; - bool DEBRIS_TIMEOUT; - bool DEBRIS_MAX_SEPARATION; - bool CRUMBLE_SMALLEST_CHUNKS; - bool ACCURATE_RAYCASTS; - bool USE_VALID_BOUNDS; -}; -struct ShapeDescFlags_Type -{ - bool NX_TRIGGER_ON_ENTER; - bool NX_TRIGGER_ON_LEAVE; - bool NX_TRIGGER_ON_STAY; - bool NX_SF_VISUALIZATION; - bool NX_SF_DISABLE_COLLISION; - bool NX_SF_FEATURE_INDICES; - bool NX_SF_DISABLE_RAYCASTING; - bool NX_SF_POINT_CONTACT_FORCE; - bool NX_SF_FLUID_DRAIN; - bool NX_SF_FLUID_DISABLE_COLLISION; - bool NX_SF_FLUID_TWOWAY; - bool NX_SF_DISABLE_RESPONSE; - bool NX_SF_DYNAMIC_DYNAMIC_CCD; - bool NX_SF_DISABLE_SCENE_QUERIES; - bool NX_SF_CLOTH_DRAIN; - bool NX_SF_CLOTH_DISABLE_COLLISION; - bool NX_SF_CLOTH_TWOWAY; - bool NX_SF_SOFTBODY_DRAIN; - bool NX_SF_SOFTBODY_DISABLE_COLLISION; - bool NX_SF_SOFTBODY_TWOWAY; -}; -struct ShapeDescTemplate_Type -{ - ShapeDescFlags_Type flags; - uint16_t collisionGroup; - GroupsMask_Type groupsMask; - uint16_t materialIndex; - float density; - float skinWidth; - uint64_t userData; - uint64_t name; -}; -struct InstanceInfo_Type -{ - uint16_t partIndex; - physx::PxVec3 chunkPositionOffset; - physx::PxVec2 chunkUVOffset; -}; -struct Plane_Type -{ - physx::PxVec3 normal; - float d; -}; -struct DestructibleParameters_Type -{ - float damageThreshold; - float damageToRadius; - float damageCap; - float forceToDamage; - float impactVelocityThreshold; - float materialStrength; - uint32_t minimumFractureDepth; - int32_t impactDamageDefaultDepth; - int32_t debrisDepth; - uint32_t essentialDepth; - float debrisLifetimeMin; - float debrisLifetimeMax; - float debrisMaxSeparationMin; - float debrisMaxSeparationMax; - physx::PxBounds3 validBounds; - float maxChunkSpeed; - DestructibleParametersFlag_Type flags; - float fractureImpulseScale; - uint16_t dynamicChunkDominanceGroup; - GroupsMask_Type dynamicChunksGroupsMask; -}; -struct ContactPairFlag_Type -{ - bool NX_IGNORE_PAIR; - bool NX_NOTIFY_ON_START_TOUCH; - bool NX_NOTIFY_ON_END_TOUCH; - bool NX_NOTIFY_ON_TOUCH; - bool NX_NOTIFY_ON_IMPACT; - bool NX_NOTIFY_ON_ROLL; - bool NX_NOTIFY_ON_SLIDE; - bool NX_NOTIFY_FORCES; - bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; - bool NX_NOTIFY_CONTACT_MODIFICATION; -}; -struct LODWeights_Type -{ - float maxDistance; - float distanceWeight; - float maxAge; - float ageWeight; - float bias; -}; -struct BodyDescFlags_Type -{ - bool NX_BF_DISABLE_GRAVITY; - bool NX_BF_FILTER_SLEEP_VEL; - bool NX_BF_ENERGY_SLEEP_TEST; - bool NX_BF_VISUALIZATION; -}; -struct BodyDescTemplate_Type -{ - BodyDescFlags_Type flags; - float wakeUpCounter; - float linearDamping; - float angularDamping; - float maxAngularVelocity; - float CCDMotionThreshold; - float sleepLinearVelocity; - float sleepAngularVelocity; - uint32_t solverIterationCount; - float sleepEnergyThreshold; - float sleepDamping; - float contactReportThreshold; -}; -struct Chunk_Type -{ - uint16_t depth; - uint16_t parentIndex; - uint16_t firstChildIndex; - uint16_t numChildren; - uint16_t meshPartIndex; - uint16_t flags; - physx::PxVec3 surfaceNormal; -}; -struct ActorDescFlags_Type -{ - bool NX_AF_DISABLE_COLLISION; - bool NX_AF_DISABLE_RESPONSE; - bool NX_AF_LOCK_COM; - bool NX_AF_FLUID_DISABLE_COLLISION; - bool NX_AF_CONTACT_MODIFICATION; - bool NX_AF_FORCE_CONE_FRICTION; - bool NX_AF_USER_ACTOR_PAIR_FILTERING; -}; -struct ActorDescTemplate_Type -{ - ActorDescFlags_Type flags; - float density; - uint16_t actorCollisionGroup; - uint16_t dominanceGroup; - ContactPairFlag_Type contactReportFlags; - uint16_t forceFieldMaterial; - uint64_t userData; - uint64_t name; - uint64_t compartment; -}; - -struct ParametersStruct -{ - - uint32_t depthCount; - uint32_t originalDepthCount; - physx::PxBounds3 bounds; - Chunk_DynamicArray1D_Type chunks; - REF_DynamicArray1D_Type chunkConvexHulls; - U32_DynamicArray1D_Type chunkConvexHullStartIndices; - DestructibleParameters_Type destructibleParameters; - DestructibleDepthParameters_DynamicArray1D_Type depthParameters; - NvParameterized::DummyStringStruct crumbleEmitterName; - NvParameterized::DummyStringStruct dustEmitterName; - NvParameterized::Interface* collisionData; - REF_DynamicArray1D_Type surfaceTraceSets; - NvParameterized::Interface* renderMeshAsset; - uint32_t initialDestructibleActorAllowanceForInstancing; - InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; - int32_t interiorSubmeshIndex; - STRING_DynamicArray1D_Type staticMaterialNames; - float neighborPadding; - REF_DynamicArray1D_Type overlapsAtDepth; - U32_DynamicArray1D_Type firstChunkAtDepth; - uint32_t supportDepth; - bool formExtendedStructures; - bool useAssetDefinedSupport; - bool useWorldSupport; - MAT44_DynamicArray1D_Type actorTransforms; - -}; - -static const uint32_t checksum[] = { 0x761730fb, 0xa9400e4a, 0x6e20d755, 0x6bd19c0a, }; - -} // namespace DestructibleAssetParameters_0p9NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleAssetParameters_0p9 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p9NS::ParametersStruct -{ -public: - DestructibleAssetParameters_0p9(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleAssetParameters_0p9(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)9; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleAssetParameters_0p9NS::checksum); - return DestructibleAssetParameters_0p9NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleAssetParameters_0p9NS::ParametersStruct& parameters(void) const - { - DestructibleAssetParameters_0p9* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleAssetParameters_0p9NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleAssetParameters_0p9Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleAssetParameters_0p9::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p9), DestructibleAssetParameters_0p9::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p9::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p9"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p9)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p9)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p9::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p9::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p9"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleAssetParameters_0p9 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleAssetParameters_0p9*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleAssetParameters_0p9::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleAssetParameters_0p9::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleAssetParameters_0p9::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleAssetParameters_0p9::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleAssetParameters_0p9_h +#define HEADER_DestructibleAssetParameters_0p9_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleAssetParameters_0p9NS +{ + +struct Chunk_Type; +struct InstanceInfo_Type; +struct GroupsMask_Type; +struct LODWeights_Type; +struct ShapeDescFlags_Type; +struct ShapeDescTemplate_Type; +struct ContactPairFlag_Type; +struct ActorDescFlags_Type; +struct ActorDescTemplate_Type; +struct BodyDescFlags_Type; +struct BodyDescTemplate_Type; +struct DestructibleDepthParameters_Type; +struct DestructibleParametersFlag_Type; +struct DestructibleParameters_Type; +struct Plane_Type; + +struct Chunk_DynamicArray1D_Type +{ + Chunk_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_DynamicArray1D_Type +{ + DestructibleDepthParameters_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct InstanceInfo_DynamicArray1D_Type +{ + InstanceInfo_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct MAT44_DynamicArray1D_Type +{ + physx::PxMat44* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct DestructibleDepthParameters_Type +{ + bool OVERRIDE_IMPACT_DAMAGE; + bool OVERRIDE_IMPACT_DAMAGE_VALUE; + bool IGNORE_POSE_UPDATES; + bool IGNORE_RAYCAST_CALLBACKS; + bool IGNORE_CONTACT_CALLBACKS; + bool USER_FLAG_0; + bool USER_FLAG_1; + bool USER_FLAG_2; + bool USER_FLAG_3; +}; +struct GroupsMask_Type +{ + bool useGroupsMask; + uint32_t bits0; + uint32_t bits1; + uint32_t bits2; + uint32_t bits3; +}; +struct DestructibleParametersFlag_Type +{ + bool ACCUMULATE_DAMAGE; + bool DEBRIS_TIMEOUT; + bool DEBRIS_MAX_SEPARATION; + bool CRUMBLE_SMALLEST_CHUNKS; + bool ACCURATE_RAYCASTS; + bool USE_VALID_BOUNDS; +}; +struct ShapeDescFlags_Type +{ + bool NX_TRIGGER_ON_ENTER; + bool NX_TRIGGER_ON_LEAVE; + bool NX_TRIGGER_ON_STAY; + bool NX_SF_VISUALIZATION; + bool NX_SF_DISABLE_COLLISION; + bool NX_SF_FEATURE_INDICES; + bool NX_SF_DISABLE_RAYCASTING; + bool NX_SF_POINT_CONTACT_FORCE; + bool NX_SF_FLUID_DRAIN; + bool NX_SF_FLUID_DISABLE_COLLISION; + bool NX_SF_FLUID_TWOWAY; + bool NX_SF_DISABLE_RESPONSE; + bool NX_SF_DYNAMIC_DYNAMIC_CCD; + bool NX_SF_DISABLE_SCENE_QUERIES; + bool NX_SF_CLOTH_DRAIN; + bool NX_SF_CLOTH_DISABLE_COLLISION; + bool NX_SF_CLOTH_TWOWAY; + bool NX_SF_SOFTBODY_DRAIN; + bool NX_SF_SOFTBODY_DISABLE_COLLISION; + bool NX_SF_SOFTBODY_TWOWAY; +}; +struct ShapeDescTemplate_Type +{ + ShapeDescFlags_Type flags; + uint16_t collisionGroup; + GroupsMask_Type groupsMask; + uint16_t materialIndex; + float density; + float skinWidth; + uint64_t userData; + uint64_t name; +}; +struct InstanceInfo_Type +{ + uint16_t partIndex; + physx::PxVec3 chunkPositionOffset; + physx::PxVec2 chunkUVOffset; +}; +struct Plane_Type +{ + physx::PxVec3 normal; + float d; +}; +struct DestructibleParameters_Type +{ + float damageThreshold; + float damageToRadius; + float damageCap; + float forceToDamage; + float impactVelocityThreshold; + float materialStrength; + uint32_t minimumFractureDepth; + int32_t impactDamageDefaultDepth; + int32_t debrisDepth; + uint32_t essentialDepth; + float debrisLifetimeMin; + float debrisLifetimeMax; + float debrisMaxSeparationMin; + float debrisMaxSeparationMax; + physx::PxBounds3 validBounds; + float maxChunkSpeed; + DestructibleParametersFlag_Type flags; + float fractureImpulseScale; + uint16_t dynamicChunkDominanceGroup; + GroupsMask_Type dynamicChunksGroupsMask; +}; +struct ContactPairFlag_Type +{ + bool NX_IGNORE_PAIR; + bool NX_NOTIFY_ON_START_TOUCH; + bool NX_NOTIFY_ON_END_TOUCH; + bool NX_NOTIFY_ON_TOUCH; + bool NX_NOTIFY_ON_IMPACT; + bool NX_NOTIFY_ON_ROLL; + bool NX_NOTIFY_ON_SLIDE; + bool NX_NOTIFY_FORCES; + bool NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD; + bool NX_NOTIFY_CONTACT_MODIFICATION; +}; +struct LODWeights_Type +{ + float maxDistance; + float distanceWeight; + float maxAge; + float ageWeight; + float bias; +}; +struct BodyDescFlags_Type +{ + bool NX_BF_DISABLE_GRAVITY; + bool NX_BF_FILTER_SLEEP_VEL; + bool NX_BF_ENERGY_SLEEP_TEST; + bool NX_BF_VISUALIZATION; +}; +struct BodyDescTemplate_Type +{ + BodyDescFlags_Type flags; + float wakeUpCounter; + float linearDamping; + float angularDamping; + float maxAngularVelocity; + float CCDMotionThreshold; + float sleepLinearVelocity; + float sleepAngularVelocity; + uint32_t solverIterationCount; + float sleepEnergyThreshold; + float sleepDamping; + float contactReportThreshold; +}; +struct Chunk_Type +{ + uint16_t depth; + uint16_t parentIndex; + uint16_t firstChildIndex; + uint16_t numChildren; + uint16_t meshPartIndex; + uint16_t flags; + physx::PxVec3 surfaceNormal; +}; +struct ActorDescFlags_Type +{ + bool NX_AF_DISABLE_COLLISION; + bool NX_AF_DISABLE_RESPONSE; + bool NX_AF_LOCK_COM; + bool NX_AF_FLUID_DISABLE_COLLISION; + bool NX_AF_CONTACT_MODIFICATION; + bool NX_AF_FORCE_CONE_FRICTION; + bool NX_AF_USER_ACTOR_PAIR_FILTERING; +}; +struct ActorDescTemplate_Type +{ + ActorDescFlags_Type flags; + float density; + uint16_t actorCollisionGroup; + uint16_t dominanceGroup; + ContactPairFlag_Type contactReportFlags; + uint16_t forceFieldMaterial; + uint64_t userData; + uint64_t name; + uint64_t compartment; +}; + +struct ParametersStruct +{ + + uint32_t depthCount; + uint32_t originalDepthCount; + physx::PxBounds3 bounds; + Chunk_DynamicArray1D_Type chunks; + REF_DynamicArray1D_Type chunkConvexHulls; + U32_DynamicArray1D_Type chunkConvexHullStartIndices; + DestructibleParameters_Type destructibleParameters; + DestructibleDepthParameters_DynamicArray1D_Type depthParameters; + NvParameterized::DummyStringStruct crumbleEmitterName; + NvParameterized::DummyStringStruct dustEmitterName; + NvParameterized::Interface* collisionData; + REF_DynamicArray1D_Type surfaceTraceSets; + NvParameterized::Interface* renderMeshAsset; + uint32_t initialDestructibleActorAllowanceForInstancing; + InstanceInfo_DynamicArray1D_Type chunkInstanceInfo; + int32_t interiorSubmeshIndex; + STRING_DynamicArray1D_Type staticMaterialNames; + float neighborPadding; + REF_DynamicArray1D_Type overlapsAtDepth; + U32_DynamicArray1D_Type firstChunkAtDepth; + uint32_t supportDepth; + bool formExtendedStructures; + bool useAssetDefinedSupport; + bool useWorldSupport; + MAT44_DynamicArray1D_Type actorTransforms; + +}; + +static const uint32_t checksum[] = { 0x761730fb, 0xa9400e4a, 0x6e20d755, 0x6bd19c0a, }; + +} // namespace DestructibleAssetParameters_0p9NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleAssetParameters_0p9 : public NvParameterized::NvParameters, public DestructibleAssetParameters_0p9NS::ParametersStruct +{ +public: + DestructibleAssetParameters_0p9(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleAssetParameters_0p9(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)9; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleAssetParameters_0p9NS::checksum); + return DestructibleAssetParameters_0p9NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleAssetParameters_0p9NS::ParametersStruct& parameters(void) const + { + DestructibleAssetParameters_0p9* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleAssetParameters_0p9NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleAssetParameters_0p9Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleAssetParameters_0p9::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleAssetParameters_0p9), DestructibleAssetParameters_0p9::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleAssetParameters_0p9::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p9"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleAssetParameters_0p9)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleAssetParameters_0p9)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleAssetParameters_0p9::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleAssetParameters_0p9::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleAssetParameters_0p9"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleAssetParameters_0p9 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleAssetParameters_0p9*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleAssetParameters_0p9::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleAssetParameters_0p9::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleAssetParameters_0p9::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleAssetParameters_0p9::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleDebugRenderParams_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleDebugRenderParams_0p0.h old mode 100644 new mode 100755 index 8e08c05..0fd847c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleDebugRenderParams_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleDebugRenderParams_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleDebugRenderParams_0p0_h -#define HEADER_DestructibleDebugRenderParams_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleDebugRenderParams_0p0NS -{ - - - -struct ParametersStruct -{ - - bool VISUALIZE_DESTRUCTIBLE_ACTOR; - float VISUALIZE_DESTRUCTIBLE_BOUNDS; - float VISUALIZE_DESTRUCTIBLE_SUPPORT; - bool VISUALIZE_DESTRUCTIBLE_ACTOR_POSE; - float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE; - bool VISUALIZE_DESTRUCTIBLE_ACTOR_NAME; - float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME; - bool VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE; - float THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE; - -}; - -static const uint32_t checksum[] = { 0xf9b70cc9, 0xc8a5ed52, 0x51f40e6a, 0x14b18d85, }; - -} // namespace DestructibleDebugRenderParams_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleDebugRenderParams_0p0 : public NvParameterized::NvParameters, public DestructibleDebugRenderParams_0p0NS::ParametersStruct -{ -public: - DestructibleDebugRenderParams_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleDebugRenderParams_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleDebugRenderParams"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleDebugRenderParams_0p0NS::checksum); - return DestructibleDebugRenderParams_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleDebugRenderParams_0p0NS::ParametersStruct& parameters(void) const - { - DestructibleDebugRenderParams_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleDebugRenderParams_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleDebugRenderParams_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleDebugRenderParams_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleDebugRenderParams_0p0), DestructibleDebugRenderParams_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleDebugRenderParams_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleDebugRenderParams_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleDebugRenderParams_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleDebugRenderParams_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleDebugRenderParams_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleDebugRenderParams_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleDebugRenderParams_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleDebugRenderParams_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleDebugRenderParams_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleDebugRenderParams_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleDebugRenderParams_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleDebugRenderParams_0p0_h +#define HEADER_DestructibleDebugRenderParams_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleDebugRenderParams_0p0NS +{ + + + +struct ParametersStruct +{ + + bool VISUALIZE_DESTRUCTIBLE_ACTOR; + float VISUALIZE_DESTRUCTIBLE_BOUNDS; + float VISUALIZE_DESTRUCTIBLE_SUPPORT; + bool VISUALIZE_DESTRUCTIBLE_ACTOR_POSE; + float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE; + bool VISUALIZE_DESTRUCTIBLE_ACTOR_NAME; + float THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME; + bool VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE; + float THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE; + +}; + +static const uint32_t checksum[] = { 0xf9b70cc9, 0xc8a5ed52, 0x51f40e6a, 0x14b18d85, }; + +} // namespace DestructibleDebugRenderParams_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleDebugRenderParams_0p0 : public NvParameterized::NvParameters, public DestructibleDebugRenderParams_0p0NS::ParametersStruct +{ +public: + DestructibleDebugRenderParams_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleDebugRenderParams_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleDebugRenderParams"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleDebugRenderParams_0p0NS::checksum); + return DestructibleDebugRenderParams_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleDebugRenderParams_0p0NS::ParametersStruct& parameters(void) const + { + DestructibleDebugRenderParams_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleDebugRenderParams_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleDebugRenderParams_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleDebugRenderParams_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleDebugRenderParams_0p0), DestructibleDebugRenderParams_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleDebugRenderParams_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleDebugRenderParams_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleDebugRenderParams_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleDebugRenderParams_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleDebugRenderParams_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleDebugRenderParams_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleDebugRenderParams_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleDebugRenderParams_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleDebugRenderParams_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleDebugRenderParams_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleDebugRenderParams_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleDebugRenderParams_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p0.h old mode 100644 new mode 100755 index 3487aaf..2ef30e5 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p0.h @@ -1,249 +1,249 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleModuleParameters_0p0_h -#define HEADER_DestructibleModuleParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleModuleParameters_0p0NS -{ - -struct GRBSettings_Type; - -struct GRBSettings_Type -{ - int32_t gpuDeviceOrdinal; - float meshCellSize; - float skinWidth; - uint32_t nonPenSolverPosIterCount; - uint32_t frictionSolverPosIterCount; - uint32_t frictionSolverVelIterCount; - float maxLinAcceleration; - uint32_t gpuMemSceneSize; - uint32_t gpuMemTempDataSize; -}; - -struct ParametersStruct -{ - - GRBSettings_Type gpuRigidBodySettings; - uint32_t maxDynamicChunkIslandCount; - bool sortFIFOByBenefit; - float validBoundsPadding; - float maxChunkSeparationLOD; - uint32_t maxActorCreatesPerFrame; - uint32_t maxChunkDepthOffset; - -}; - -static const uint32_t checksum[] = { 0x8231bc89, 0x51f7449f, 0xc0e375f2, 0x4eeb99f7, }; - -} // namespace DestructibleModuleParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleModuleParameters_0p0 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p0NS::ParametersStruct -{ -public: - DestructibleModuleParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleModuleParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleModuleParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleModuleParameters_0p0NS::checksum); - return DestructibleModuleParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleModuleParameters_0p0NS::ParametersStruct& parameters(void) const - { - DestructibleModuleParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleModuleParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleModuleParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleModuleParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p0), DestructibleModuleParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleModuleParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleModuleParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleModuleParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleModuleParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleModuleParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleModuleParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleModuleParameters_0p0_h +#define HEADER_DestructibleModuleParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleModuleParameters_0p0NS +{ + +struct GRBSettings_Type; + +struct GRBSettings_Type +{ + int32_t gpuDeviceOrdinal; + float meshCellSize; + float skinWidth; + uint32_t nonPenSolverPosIterCount; + uint32_t frictionSolverPosIterCount; + uint32_t frictionSolverVelIterCount; + float maxLinAcceleration; + uint32_t gpuMemSceneSize; + uint32_t gpuMemTempDataSize; +}; + +struct ParametersStruct +{ + + GRBSettings_Type gpuRigidBodySettings; + uint32_t maxDynamicChunkIslandCount; + bool sortFIFOByBenefit; + float validBoundsPadding; + float maxChunkSeparationLOD; + uint32_t maxActorCreatesPerFrame; + uint32_t maxChunkDepthOffset; + +}; + +static const uint32_t checksum[] = { 0x8231bc89, 0x51f7449f, 0xc0e375f2, 0x4eeb99f7, }; + +} // namespace DestructibleModuleParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleModuleParameters_0p0 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p0NS::ParametersStruct +{ +public: + DestructibleModuleParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleModuleParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleModuleParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleModuleParameters_0p0NS::checksum); + return DestructibleModuleParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleModuleParameters_0p0NS::ParametersStruct& parameters(void) const + { + DestructibleModuleParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleModuleParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleModuleParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleModuleParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p0), DestructibleModuleParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleModuleParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleModuleParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleModuleParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleModuleParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleModuleParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleModuleParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p1.h old mode 100644 new mode 100755 index 7a24221..bec5d2a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p1.h @@ -1,251 +1,251 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleModuleParameters_0p1_h -#define HEADER_DestructibleModuleParameters_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleModuleParameters_0p1NS -{ - -struct GRBSettings_Type; - -struct GRBSettings_Type -{ - int32_t gpuDeviceOrdinal; - float meshCellSize; - float skinWidth; - uint32_t nonPenSolverPosIterCount; - uint32_t frictionSolverPosIterCount; - uint32_t frictionSolverVelIterCount; - float maxLinAcceleration; - uint32_t gpuMemSceneSize; - uint32_t gpuMemTempDataSize; -}; - -struct ParametersStruct -{ - - GRBSettings_Type gpuRigidBodySettings; - uint32_t maxDynamicChunkIslandCount; - bool sortFIFOByBenefit; - float validBoundsPadding; - float maxChunkSeparationLOD; - uint32_t maxActorCreatesPerFrame; - uint32_t maxChunkDepthOffset; - float massScale; - float scaledMassExponent; - -}; - -static const uint32_t checksum[] = { 0xf639b6be, 0x82c664d9, 0x01d230ac, 0xb680b438, }; - -} // namespace DestructibleModuleParameters_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleModuleParameters_0p1 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p1NS::ParametersStruct -{ -public: - DestructibleModuleParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleModuleParameters_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleModuleParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleModuleParameters_0p1NS::checksum); - return DestructibleModuleParameters_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleModuleParameters_0p1NS::ParametersStruct& parameters(void) const - { - DestructibleModuleParameters_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleModuleParameters_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleModuleParameters_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleModuleParameters_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p1), DestructibleModuleParameters_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleModuleParameters_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleModuleParameters_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleModuleParameters_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleModuleParameters_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleModuleParameters_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleModuleParameters_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleModuleParameters_0p1_h +#define HEADER_DestructibleModuleParameters_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleModuleParameters_0p1NS +{ + +struct GRBSettings_Type; + +struct GRBSettings_Type +{ + int32_t gpuDeviceOrdinal; + float meshCellSize; + float skinWidth; + uint32_t nonPenSolverPosIterCount; + uint32_t frictionSolverPosIterCount; + uint32_t frictionSolverVelIterCount; + float maxLinAcceleration; + uint32_t gpuMemSceneSize; + uint32_t gpuMemTempDataSize; +}; + +struct ParametersStruct +{ + + GRBSettings_Type gpuRigidBodySettings; + uint32_t maxDynamicChunkIslandCount; + bool sortFIFOByBenefit; + float validBoundsPadding; + float maxChunkSeparationLOD; + uint32_t maxActorCreatesPerFrame; + uint32_t maxChunkDepthOffset; + float massScale; + float scaledMassExponent; + +}; + +static const uint32_t checksum[] = { 0xf639b6be, 0x82c664d9, 0x01d230ac, 0xb680b438, }; + +} // namespace DestructibleModuleParameters_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleModuleParameters_0p1 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p1NS::ParametersStruct +{ +public: + DestructibleModuleParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleModuleParameters_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleModuleParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleModuleParameters_0p1NS::checksum); + return DestructibleModuleParameters_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleModuleParameters_0p1NS::ParametersStruct& parameters(void) const + { + DestructibleModuleParameters_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleModuleParameters_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleModuleParameters_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleModuleParameters_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p1), DestructibleModuleParameters_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleModuleParameters_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleModuleParameters_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleModuleParameters_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleModuleParameters_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleModuleParameters_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleModuleParameters_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p2.h old mode 100644 new mode 100755 index 966a8c2..059d1ca --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p2.h @@ -1,255 +1,255 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleModuleParameters_0p2_h -#define HEADER_DestructibleModuleParameters_0p2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleModuleParameters_0p2NS -{ - -struct GRBSettings_Type; - -struct GRBSettings_Type -{ - int32_t gpuDeviceOrdinal; - float meshCellSize; - float skinWidth; - uint32_t nonPenSolverPosIterCount; - uint32_t frictionSolverPosIterCount; - uint32_t frictionSolverVelIterCount; - float maxLinAcceleration; - uint32_t gpuMemSceneSize; - uint32_t gpuMemTempDataSize; - uint32_t sphereSlices; - uint32_t sphereStacks; - uint32_t capsuleSlices; - uint32_t capsuleStacks; -}; - -struct ParametersStruct -{ - - GRBSettings_Type gpuRigidBodySettings; - uint32_t maxDynamicChunkIslandCount; - bool sortFIFOByBenefit; - float validBoundsPadding; - float maxChunkSeparationLOD; - uint32_t maxActorCreatesPerFrame; - uint32_t maxChunkDepthOffset; - float massScale; - float scaledMassExponent; - -}; - -static const uint32_t checksum[] = { 0xe408d154, 0xd6bb44b6, 0x55e5c6ca, 0x3d5d3020, }; - -} // namespace DestructibleModuleParameters_0p2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleModuleParameters_0p2 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p2NS::ParametersStruct -{ -public: - DestructibleModuleParameters_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleModuleParameters_0p2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleModuleParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleModuleParameters_0p2NS::checksum); - return DestructibleModuleParameters_0p2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleModuleParameters_0p2NS::ParametersStruct& parameters(void) const - { - DestructibleModuleParameters_0p2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleModuleParameters_0p2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleModuleParameters_0p2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleModuleParameters_0p2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p2), DestructibleModuleParameters_0p2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleModuleParameters_0p2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleModuleParameters_0p2*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleModuleParameters_0p2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleModuleParameters_0p2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleModuleParameters_0p2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleModuleParameters_0p2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleModuleParameters_0p2_h +#define HEADER_DestructibleModuleParameters_0p2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleModuleParameters_0p2NS +{ + +struct GRBSettings_Type; + +struct GRBSettings_Type +{ + int32_t gpuDeviceOrdinal; + float meshCellSize; + float skinWidth; + uint32_t nonPenSolverPosIterCount; + uint32_t frictionSolverPosIterCount; + uint32_t frictionSolverVelIterCount; + float maxLinAcceleration; + uint32_t gpuMemSceneSize; + uint32_t gpuMemTempDataSize; + uint32_t sphereSlices; + uint32_t sphereStacks; + uint32_t capsuleSlices; + uint32_t capsuleStacks; +}; + +struct ParametersStruct +{ + + GRBSettings_Type gpuRigidBodySettings; + uint32_t maxDynamicChunkIslandCount; + bool sortFIFOByBenefit; + float validBoundsPadding; + float maxChunkSeparationLOD; + uint32_t maxActorCreatesPerFrame; + uint32_t maxChunkDepthOffset; + float massScale; + float scaledMassExponent; + +}; + +static const uint32_t checksum[] = { 0xe408d154, 0xd6bb44b6, 0x55e5c6ca, 0x3d5d3020, }; + +} // namespace DestructibleModuleParameters_0p2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleModuleParameters_0p2 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p2NS::ParametersStruct +{ +public: + DestructibleModuleParameters_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleModuleParameters_0p2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleModuleParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleModuleParameters_0p2NS::checksum); + return DestructibleModuleParameters_0p2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleModuleParameters_0p2NS::ParametersStruct& parameters(void) const + { + DestructibleModuleParameters_0p2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleModuleParameters_0p2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleModuleParameters_0p2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleModuleParameters_0p2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p2), DestructibleModuleParameters_0p2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleModuleParameters_0p2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleModuleParameters_0p2*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleModuleParameters_0p2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleModuleParameters_0p2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleModuleParameters_0p2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleModuleParameters_0p2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p3.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p3.h old mode 100644 new mode 100755 index 64d371d..21c5a4f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p3.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructibleModuleParameters_0p3.h @@ -1,237 +1,237 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructibleModuleParameters_0p3_h -#define HEADER_DestructibleModuleParameters_0p3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructibleModuleParameters_0p3NS -{ - - - -struct ParametersStruct -{ - - uint32_t maxDynamicChunkIslandCount; - bool sortFIFOByBenefit; - float validBoundsPadding; - float maxChunkSeparationLOD; - uint32_t maxActorCreatesPerFrame; - uint32_t maxChunkDepthOffset; - float massScale; - float scaledMassExponent; - -}; - -static const uint32_t checksum[] = { 0xea4f5a53, 0x75a1901c, 0xd7138e07, 0xef8c1364, }; - -} // namespace DestructibleModuleParameters_0p3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructibleModuleParameters_0p3 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p3NS::ParametersStruct -{ -public: - DestructibleModuleParameters_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructibleModuleParameters_0p3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructibleModuleParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructibleModuleParameters_0p3NS::checksum); - return DestructibleModuleParameters_0p3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructibleModuleParameters_0p3NS::ParametersStruct& parameters(void) const - { - DestructibleModuleParameters_0p3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructibleModuleParameters_0p3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructibleModuleParameters_0p3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructibleModuleParameters_0p3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p3), DestructibleModuleParameters_0p3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructibleModuleParameters_0p3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructibleModuleParameters_0p3*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructibleModuleParameters_0p3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructibleModuleParameters_0p3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructibleModuleParameters_0p3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructibleModuleParameters_0p3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructibleModuleParameters_0p3_h +#define HEADER_DestructibleModuleParameters_0p3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructibleModuleParameters_0p3NS +{ + + + +struct ParametersStruct +{ + + uint32_t maxDynamicChunkIslandCount; + bool sortFIFOByBenefit; + float validBoundsPadding; + float maxChunkSeparationLOD; + uint32_t maxActorCreatesPerFrame; + uint32_t maxChunkDepthOffset; + float massScale; + float scaledMassExponent; + +}; + +static const uint32_t checksum[] = { 0xea4f5a53, 0x75a1901c, 0xd7138e07, 0xef8c1364, }; + +} // namespace DestructibleModuleParameters_0p3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructibleModuleParameters_0p3 : public NvParameterized::NvParameters, public DestructibleModuleParameters_0p3NS::ParametersStruct +{ +public: + DestructibleModuleParameters_0p3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructibleModuleParameters_0p3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructibleModuleParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)3; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructibleModuleParameters_0p3NS::checksum); + return DestructibleModuleParameters_0p3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructibleModuleParameters_0p3NS::ParametersStruct& parameters(void) const + { + DestructibleModuleParameters_0p3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructibleModuleParameters_0p3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructibleModuleParameters_0p3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructibleModuleParameters_0p3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructibleModuleParameters_0p3), DestructibleModuleParameters_0p3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructibleModuleParameters_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructibleModuleParameters_0p3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructibleModuleParameters_0p3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructibleModuleParameters_0p3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructibleModuleParameters_0p3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructibleModuleParameters_0p3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructibleModuleParameters_0p3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructibleModuleParameters_0p3*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructibleModuleParameters_0p3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructibleModuleParameters_0p3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructibleModuleParameters_0p3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructibleModuleParameters_0p3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructiblePreviewParam_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructiblePreviewParam_0p0.h old mode 100644 new mode 100755 index 484c607..9d3303d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructiblePreviewParam_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/DestructiblePreviewParam_0p0.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_DestructiblePreviewParam_0p0_h -#define HEADER_DestructiblePreviewParam_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace DestructiblePreviewParam_0p0NS -{ - - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - physx::PxMat44 globalPose; - uint32_t chunkDepth; - float explodeAmount; - bool renderUnexplodedChunksStatically; - STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; - STRING_DynamicArray1D_Type overrideStaticMaterialNames; - uint64_t userData; - -}; - -static const uint32_t checksum[] = { 0x3637da2c, 0x7fa3add1, 0xf223f0ff, 0x3a06c4b3, }; - -} // namespace DestructiblePreviewParam_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class DestructiblePreviewParam_0p0 : public NvParameterized::NvParameters, public DestructiblePreviewParam_0p0NS::ParametersStruct -{ -public: - DestructiblePreviewParam_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~DestructiblePreviewParam_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("DestructiblePreviewParam"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(DestructiblePreviewParam_0p0NS::checksum); - return DestructiblePreviewParam_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const DestructiblePreviewParam_0p0NS::ParametersStruct& parameters(void) const - { - DestructiblePreviewParam_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - DestructiblePreviewParam_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class DestructiblePreviewParam_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - DestructiblePreviewParam_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(DestructiblePreviewParam_0p0), DestructiblePreviewParam_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, DestructiblePreviewParam_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(DestructiblePreviewParam_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, DestructiblePreviewParam_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, DestructiblePreviewParam_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, DestructiblePreviewParam_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of DestructiblePreviewParam_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (DestructiblePreviewParam_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (DestructiblePreviewParam_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (DestructiblePreviewParam_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (DestructiblePreviewParam_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (DestructiblePreviewParam_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_DestructiblePreviewParam_0p0_h +#define HEADER_DestructiblePreviewParam_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace DestructiblePreviewParam_0p0NS +{ + + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + physx::PxMat44 globalPose; + uint32_t chunkDepth; + float explodeAmount; + bool renderUnexplodedChunksStatically; + STRING_DynamicArray1D_Type overrideSkinnedMaterialNames; + STRING_DynamicArray1D_Type overrideStaticMaterialNames; + uint64_t userData; + +}; + +static const uint32_t checksum[] = { 0x3637da2c, 0x7fa3add1, 0xf223f0ff, 0x3a06c4b3, }; + +} // namespace DestructiblePreviewParam_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class DestructiblePreviewParam_0p0 : public NvParameterized::NvParameters, public DestructiblePreviewParam_0p0NS::ParametersStruct +{ +public: + DestructiblePreviewParam_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~DestructiblePreviewParam_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("DestructiblePreviewParam"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(DestructiblePreviewParam_0p0NS::checksum); + return DestructiblePreviewParam_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const DestructiblePreviewParam_0p0NS::ParametersStruct& parameters(void) const + { + DestructiblePreviewParam_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + DestructiblePreviewParam_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class DestructiblePreviewParam_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + DestructiblePreviewParam_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(DestructiblePreviewParam_0p0), DestructiblePreviewParam_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, DestructiblePreviewParam_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(DestructiblePreviewParam_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, DestructiblePreviewParam_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, DestructiblePreviewParam_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, DestructiblePreviewParam_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class DestructiblePreviewParam_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of DestructiblePreviewParam_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (DestructiblePreviewParam_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (DestructiblePreviewParam_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (DestructiblePreviewParam_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (DestructiblePreviewParam_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (DestructiblePreviewParam_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStream_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStream_0p0.h old mode 100644 new mode 100755 index b6808c0..bff8e2d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStream_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStream_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_MeshCookedCollisionStream_0p0_h -#define HEADER_MeshCookedCollisionStream_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace MeshCookedCollisionStream_0p0NS -{ - - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U8_DynamicArray1D_Type bytes; - -}; - -static const uint32_t checksum[] = { 0x10ac85d4, 0x690961af, 0x1dfeb2cb, 0x4494e6fa, }; - -} // namespace MeshCookedCollisionStream_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class MeshCookedCollisionStream_0p0 : public NvParameterized::NvParameters, public MeshCookedCollisionStream_0p0NS::ParametersStruct -{ -public: - MeshCookedCollisionStream_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~MeshCookedCollisionStream_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("MeshCookedCollisionStream"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(MeshCookedCollisionStream_0p0NS::checksum); - return MeshCookedCollisionStream_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const MeshCookedCollisionStream_0p0NS::ParametersStruct& parameters(void) const - { - MeshCookedCollisionStream_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - MeshCookedCollisionStream_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class MeshCookedCollisionStream_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - MeshCookedCollisionStream_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStream_0p0), MeshCookedCollisionStream_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStream_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(MeshCookedCollisionStream_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStream_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStream_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStream_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of MeshCookedCollisionStream_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (MeshCookedCollisionStream_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (MeshCookedCollisionStream_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (MeshCookedCollisionStream_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (MeshCookedCollisionStream_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (MeshCookedCollisionStream_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_MeshCookedCollisionStream_0p0_h +#define HEADER_MeshCookedCollisionStream_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace MeshCookedCollisionStream_0p0NS +{ + + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U8_DynamicArray1D_Type bytes; + +}; + +static const uint32_t checksum[] = { 0x10ac85d4, 0x690961af, 0x1dfeb2cb, 0x4494e6fa, }; + +} // namespace MeshCookedCollisionStream_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class MeshCookedCollisionStream_0p0 : public NvParameterized::NvParameters, public MeshCookedCollisionStream_0p0NS::ParametersStruct +{ +public: + MeshCookedCollisionStream_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~MeshCookedCollisionStream_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("MeshCookedCollisionStream"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(MeshCookedCollisionStream_0p0NS::checksum); + return MeshCookedCollisionStream_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const MeshCookedCollisionStream_0p0NS::ParametersStruct& parameters(void) const + { + MeshCookedCollisionStream_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + MeshCookedCollisionStream_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class MeshCookedCollisionStream_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + MeshCookedCollisionStream_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStream_0p0), MeshCookedCollisionStream_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStream_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(MeshCookedCollisionStream_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStream_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStream_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStream_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStream_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of MeshCookedCollisionStream_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (MeshCookedCollisionStream_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (MeshCookedCollisionStream_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (MeshCookedCollisionStream_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (MeshCookedCollisionStream_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (MeshCookedCollisionStream_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStreamsAtScale_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStreamsAtScale_0p0.h old mode 100644 new mode 100755 index e4f04c7..67d2f46 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStreamsAtScale_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/MeshCookedCollisionStreamsAtScale_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_MeshCookedCollisionStreamsAtScale_0p0_h -#define HEADER_MeshCookedCollisionStreamsAtScale_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace MeshCookedCollisionStreamsAtScale_0p0NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type meshCookedCollisionStreams; - -}; - -static const uint32_t checksum[] = { 0xf356e0c1, 0xf4812209, 0x4cf28347, 0xc18b1923, }; - -} // namespace MeshCookedCollisionStreamsAtScale_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class MeshCookedCollisionStreamsAtScale_0p0 : public NvParameterized::NvParameters, public MeshCookedCollisionStreamsAtScale_0p0NS::ParametersStruct -{ -public: - MeshCookedCollisionStreamsAtScale_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~MeshCookedCollisionStreamsAtScale_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("MeshCookedCollisionStreamsAtScale"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(MeshCookedCollisionStreamsAtScale_0p0NS::checksum); - return MeshCookedCollisionStreamsAtScale_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const MeshCookedCollisionStreamsAtScale_0p0NS::ParametersStruct& parameters(void) const - { - MeshCookedCollisionStreamsAtScale_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - MeshCookedCollisionStreamsAtScale_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class MeshCookedCollisionStreamsAtScale_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - MeshCookedCollisionStreamsAtScale_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStreamsAtScale_0p0), MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(MeshCookedCollisionStreamsAtScale_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStreamsAtScale_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of MeshCookedCollisionStreamsAtScale_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (MeshCookedCollisionStreamsAtScale_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (MeshCookedCollisionStreamsAtScale_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (MeshCookedCollisionStreamsAtScale_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (MeshCookedCollisionStreamsAtScale_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_MeshCookedCollisionStreamsAtScale_0p0_h +#define HEADER_MeshCookedCollisionStreamsAtScale_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace MeshCookedCollisionStreamsAtScale_0p0NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type meshCookedCollisionStreams; + +}; + +static const uint32_t checksum[] = { 0xf356e0c1, 0xf4812209, 0x4cf28347, 0xc18b1923, }; + +} // namespace MeshCookedCollisionStreamsAtScale_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class MeshCookedCollisionStreamsAtScale_0p0 : public NvParameterized::NvParameters, public MeshCookedCollisionStreamsAtScale_0p0NS::ParametersStruct +{ +public: + MeshCookedCollisionStreamsAtScale_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~MeshCookedCollisionStreamsAtScale_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("MeshCookedCollisionStreamsAtScale"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(MeshCookedCollisionStreamsAtScale_0p0NS::checksum); + return MeshCookedCollisionStreamsAtScale_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const MeshCookedCollisionStreamsAtScale_0p0NS::ParametersStruct& parameters(void) const + { + MeshCookedCollisionStreamsAtScale_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + MeshCookedCollisionStreamsAtScale_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class MeshCookedCollisionStreamsAtScale_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + MeshCookedCollisionStreamsAtScale_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(MeshCookedCollisionStreamsAtScale_0p0), MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(MeshCookedCollisionStreamsAtScale_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, MeshCookedCollisionStreamsAtScale_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class MeshCookedCollisionStreamsAtScale_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of MeshCookedCollisionStreamsAtScale_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (MeshCookedCollisionStreamsAtScale_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (MeshCookedCollisionStreamsAtScale_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (MeshCookedCollisionStreamsAtScale_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (MeshCookedCollisionStreamsAtScale_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (MeshCookedCollisionStreamsAtScale_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/ModuleDestructibleLegacyRegistration.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/ModuleDestructibleLegacyRegistration.h old mode 100644 new mode 100755 index 092337e..2d0db01 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/ModuleDestructibleLegacyRegistration.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/ModuleDestructibleLegacyRegistration.h @@ -1,1614 +1,1614 @@ -/* - * Copyright (c) 2008-2015, 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. - */ - -#ifndef MODULE_MODULEDESTRUCTIBLELEGACYREGISTRATIONH_H -#define MODULE_MODULEDESTRUCTIBLELEGACYREGISTRATIONH_H - -#include "PsAllocator.h" -#include "NvRegistrationsForTraitsBase.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PxAssert.h" -#include - -// INCLUDE GENERATED FACTORIES -#include "CachedOverlaps_0p0.h" -#include "DestructibleActorParam_0p0.h" -#include "DestructibleActorParam_0p1.h" -#include "DestructibleActorParam_0p10.h" -#include "DestructibleActorParam_0p11.h" -#include "DestructibleActorParam_0p12.h" -#include "DestructibleActorParam_0p13.h" -#include "DestructibleActorParam_0p14.h" -#include "DestructibleActorParam_0p15.h" -#include "DestructibleActorParam_0p16.h" -#include "DestructibleActorParam_0p17.h" -#include "DestructibleActorParam_0p18.h" -#include "DestructibleActorParam_0p19.h" -#include "DestructibleActorParam_0p2.h" -#include "DestructibleActorParam_0p20.h" -#include "DestructibleActorParam_0p21.h" -#include "DestructibleActorParam_0p22.h" -#include "DestructibleActorParam_0p23.h" -#include "DestructibleActorParam_0p24.h" -#include "DestructibleActorParam_0p25.h" -#include "DestructibleActorParam_0p26.h" -#include "DestructibleActorParam_0p27.h" -#include "DestructibleActorParam_0p28.h" -#include "DestructibleActorParam_0p29.h" -#include "DestructibleActorParam_0p3.h" -#include "DestructibleActorParam_0p30.h" -#include "DestructibleActorParam_0p31.h" -#include "DestructibleActorParam_0p4.h" -#include "DestructibleActorParam_0p5.h" -#include "DestructibleActorParam_0p6.h" -#include "DestructibleActorParam_0p7.h" -#include "DestructibleActorParam_0p8.h" -#include "DestructibleActorParam_0p9.h" -#include "DestructibleActorState_0p0.h" -#include "DestructibleActorState_0p1.h" -#include "DestructibleActorState_0p2.h" -#include "DestructibleActorState_0p3.h" -#include "DestructibleAssetParameters_0p0.h" -#include "DestructibleAssetParameters_0p1.h" -#include "DestructibleAssetParameters_0p10.h" -#include "DestructibleAssetParameters_0p11.h" -#include "DestructibleAssetParameters_0p12.h" -#include "DestructibleAssetParameters_0p13.h" -#include "DestructibleAssetParameters_0p14.h" -#include "DestructibleAssetParameters_0p15.h" -#include "DestructibleAssetParameters_0p16.h" -#include "DestructibleAssetParameters_0p17.h" -#include "DestructibleAssetParameters_0p18.h" -#include "DestructibleAssetParameters_0p19.h" -#include "DestructibleAssetParameters_0p2.h" -#include "DestructibleAssetParameters_0p20.h" -#include "DestructibleAssetParameters_0p21.h" -#include "DestructibleAssetParameters_0p22.h" -#include "DestructibleAssetParameters_0p23.h" -#include "DestructibleAssetParameters_0p24.h" -#include "DestructibleAssetParameters_0p25.h" -#include "DestructibleAssetParameters_0p3.h" -#include "DestructibleAssetParameters_0p4.h" -#include "DestructibleAssetParameters_0p5.h" -#include "DestructibleAssetParameters_0p6.h" -#include "DestructibleAssetParameters_0p7.h" -#include "DestructibleAssetParameters_0p8.h" -#include "DestructibleAssetParameters_0p9.h" -#include "DestructibleModuleParameters_0p0.h" -#include "DestructibleModuleParameters_0p1.h" -#include "DestructibleModuleParameters_0p2.h" -#include "SurfaceTraceSetParameters_0p0.h" -#include "SurfaceTraceSetParameters_0p1.h" -#include "DestructibleActorParam_0p32.h" -#include "DestructibleActorChunks_0p0.h" -#include "DestructibleActorState_0p4.h" -#include "SurfaceTraceParameters_0p0.h" -#include "SurfaceTraceSetParameters_0p2.h" -#include "CachedOverlaps_0p1.h" -#include "MeshCookedCollisionStream_0p0.h" -#include "MeshCookedCollisionStreamsAtScale_0p0.h" -#include "DestructibleAssetCollisionDataSet_0p0.h" -#include "DestructibleAssetParameters_0p26.h" -#include "DestructiblePreviewParam_0p0.h" -#include "DestructibleDebugRenderParams_0p0.h" -#include "DestructibleModuleParameters_0p3.h" - - -// INCLUDE GENERATED CONVERSION -#include "ConversionCachedOverlaps_0p0_0p1.h" -#include "ConversionDestructibleActorParam_0p0_0p1.h" -#include "ConversionDestructibleActorParam_0p10_0p11.h" -#include "ConversionDestructibleActorParam_0p11_0p12.h" -#include "ConversionDestructibleActorParam_0p12_0p13.h" -#include "ConversionDestructibleActorParam_0p13_0p14.h" -#include "ConversionDestructibleActorParam_0p14_0p15.h" -#include "ConversionDestructibleActorParam_0p15_0p16.h" -#include "ConversionDestructibleActorParam_0p16_0p17.h" -#include "ConversionDestructibleActorParam_0p17_0p18.h" -#include "ConversionDestructibleActorParam_0p18_0p19.h" -#include "ConversionDestructibleActorParam_0p19_0p20.h" -#include "ConversionDestructibleActorParam_0p1_0p2.h" -#include "ConversionDestructibleActorParam_0p20_0p21.h" -#include "ConversionDestructibleActorParam_0p21_0p22.h" -#include "ConversionDestructibleActorParam_0p22_0p23.h" -#include "ConversionDestructibleActorParam_0p23_0p24.h" -#include "ConversionDestructibleActorParam_0p24_0p25.h" -#include "ConversionDestructibleActorParam_0p25_0p26.h" -#include "ConversionDestructibleActorParam_0p26_0p27.h" -#include "ConversionDestructibleActorParam_0p27_0p28.h" -#include "ConversionDestructibleActorParam_0p28_0p29.h" -#include "ConversionDestructibleActorParam_0p29_0p30.h" -#include "ConversionDestructibleActorParam_0p2_0p3.h" -#include "ConversionDestructibleActorParam_0p30_0p31.h" -#include "ConversionDestructibleActorParam_0p31_0p32.h" -#include "ConversionDestructibleActorParam_0p3_0p4.h" -#include "ConversionDestructibleActorParam_0p4_0p5.h" -#include "ConversionDestructibleActorParam_0p5_0p6.h" -#include "ConversionDestructibleActorParam_0p6_0p7.h" -#include "ConversionDestructibleActorParam_0p7_0p8.h" -#include "ConversionDestructibleActorParam_0p8_0p9.h" -#include "ConversionDestructibleActorParam_0p9_0p10.h" -#include "ConversionDestructibleActorState_0p0_0p1.h" -#include "ConversionDestructibleActorState_0p1_0p2.h" -#include "ConversionDestructibleActorState_0p2_0p3.h" -#include "ConversionDestructibleActorState_0p3_0p4.h" -#include "ConversionDestructibleAssetParameters_0p0_0p1.h" -#include "ConversionDestructibleAssetParameters_0p10_0p11.h" -#include "ConversionDestructibleAssetParameters_0p11_0p12.h" -#include "ConversionDestructibleAssetParameters_0p12_0p13.h" -#include "ConversionDestructibleAssetParameters_0p13_0p14.h" -#include "ConversionDestructibleAssetParameters_0p14_0p15.h" -#include "ConversionDestructibleAssetParameters_0p15_0p16.h" -#include "ConversionDestructibleAssetParameters_0p16_0p17.h" -#include "ConversionDestructibleAssetParameters_0p17_0p18.h" -#include "ConversionDestructibleAssetParameters_0p18_0p19.h" -#include "ConversionDestructibleAssetParameters_0p19_0p20.h" -#include "ConversionDestructibleAssetParameters_0p1_0p2.h" -#include "ConversionDestructibleAssetParameters_0p20_0p21.h" -#include "ConversionDestructibleAssetParameters_0p21_0p22.h" -#include "ConversionDestructibleAssetParameters_0p22_0p23.h" -#include "ConversionDestructibleAssetParameters_0p23_0p24.h" -#include "ConversionDestructibleAssetParameters_0p24_0p25.h" -#include "ConversionDestructibleAssetParameters_0p25_0p26.h" -#include "ConversionDestructibleAssetParameters_0p2_0p3.h" -#include "ConversionDestructibleAssetParameters_0p3_0p4.h" -#include "ConversionDestructibleAssetParameters_0p4_0p5.h" -#include "ConversionDestructibleAssetParameters_0p5_0p6.h" -#include "ConversionDestructibleAssetParameters_0p6_0p7.h" -#include "ConversionDestructibleAssetParameters_0p7_0p8.h" -#include "ConversionDestructibleAssetParameters_0p8_0p9.h" -#include "ConversionDestructibleAssetParameters_0p9_0p10.h" -#include "ConversionDestructibleModuleParameters_0p0_0p1.h" -#include "ConversionDestructibleModuleParameters_0p1_0p2.h" -#include "ConversionDestructibleModuleParameters_0p2_0p3.h" -#include "ConversionSurfaceTraceSetParameters_0p0_0p1.h" -#include "ConversionSurfaceTraceSetParameters_0p1_0p2.h" - - -// global namespace - -class ModuleDestructibleLegacyRegistration : public NvParameterized::RegistrationsForTraitsBase -{ -public: - static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleDestructibleLegacyRegistration().registerAll(*parameterizedTraits); - } - } - - static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleDestructibleLegacyRegistration().unregisterAll(*parameterizedTraits); - } - } - - void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - ::NvParameterized::Factory* factoriesToRegister[] = { -// REGISTER GENERATED FACTORIES - new nvidia::parameterized::CachedOverlaps_0p0Factory(), - new nvidia::parameterized::DestructibleActorParam_0p0Factory(), - new nvidia::parameterized::DestructibleActorParam_0p1Factory(), - new nvidia::parameterized::DestructibleActorParam_0p10Factory(), - new nvidia::parameterized::DestructibleActorParam_0p11Factory(), - new nvidia::parameterized::DestructibleActorParam_0p12Factory(), - new nvidia::parameterized::DestructibleActorParam_0p13Factory(), - new nvidia::parameterized::DestructibleActorParam_0p14Factory(), - new nvidia::parameterized::DestructibleActorParam_0p15Factory(), - new nvidia::parameterized::DestructibleActorParam_0p16Factory(), - new nvidia::parameterized::DestructibleActorParam_0p17Factory(), - new nvidia::parameterized::DestructibleActorParam_0p18Factory(), - new nvidia::parameterized::DestructibleActorParam_0p19Factory(), - new nvidia::parameterized::DestructibleActorParam_0p2Factory(), - new nvidia::parameterized::DestructibleActorParam_0p20Factory(), - new nvidia::parameterized::DestructibleActorParam_0p21Factory(), - new nvidia::parameterized::DestructibleActorParam_0p22Factory(), - new nvidia::parameterized::DestructibleActorParam_0p23Factory(), - new nvidia::parameterized::DestructibleActorParam_0p24Factory(), - new nvidia::parameterized::DestructibleActorParam_0p25Factory(), - new nvidia::parameterized::DestructibleActorParam_0p26Factory(), - new nvidia::parameterized::DestructibleActorParam_0p27Factory(), - new nvidia::parameterized::DestructibleActorParam_0p28Factory(), - new nvidia::parameterized::DestructibleActorParam_0p29Factory(), - new nvidia::parameterized::DestructibleActorParam_0p3Factory(), - new nvidia::parameterized::DestructibleActorParam_0p30Factory(), - new nvidia::parameterized::DestructibleActorParam_0p31Factory(), - new nvidia::parameterized::DestructibleActorParam_0p4Factory(), - new nvidia::parameterized::DestructibleActorParam_0p5Factory(), - new nvidia::parameterized::DestructibleActorParam_0p6Factory(), - new nvidia::parameterized::DestructibleActorParam_0p7Factory(), - new nvidia::parameterized::DestructibleActorParam_0p8Factory(), - new nvidia::parameterized::DestructibleActorParam_0p9Factory(), - new nvidia::parameterized::DestructibleActorState_0p0Factory(), - new nvidia::parameterized::DestructibleActorState_0p1Factory(), - new nvidia::parameterized::DestructibleActorState_0p2Factory(), - new nvidia::parameterized::DestructibleActorState_0p3Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p0Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p1Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p10Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p11Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p12Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p13Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p14Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p15Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p16Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p17Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p18Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p19Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p2Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p20Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p21Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p22Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p23Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p24Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p25Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p3Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p4Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p5Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p6Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p7Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p8Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p9Factory(), - new nvidia::parameterized::DestructibleModuleParameters_0p0Factory(), - new nvidia::parameterized::DestructibleModuleParameters_0p1Factory(), - new nvidia::parameterized::DestructibleModuleParameters_0p2Factory(), - new nvidia::parameterized::SurfaceTraceSetParameters_0p0Factory(), - new nvidia::parameterized::SurfaceTraceSetParameters_0p1Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) - { - parameterizedTraits.registerFactory(*factoriesToRegister[i]); - } - } - - virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// REGISTER GENERATED CONVERSION - { - typedef nvidia::apex::legacy::ConversionCachedOverlaps_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p10_0p11 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p11_0p12 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p12_0p13 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p13_0p14 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p14_0p15 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p15_0p16 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p16_0p17 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p17_0p18 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p18_0p19 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p19_0p20 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p1_0p2 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p20_0p21 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p21_0p22 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p22_0p23 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p23_0p24 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p24_0p25 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p25_0p26 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p26_0p27 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p27_0p28 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p28_0p29 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p29_0p30 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p2_0p3 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p30_0p31 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p31_0p32 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p3_0p4 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p4_0p5 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p5_0p6 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p6_0p7 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p7_0p8 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p8_0p9 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p9_0p10 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p1_0p2 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p2_0p3 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p3_0p4 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p10_0p11 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p11_0p12 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p12_0p13 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p13_0p14 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p14_0p15 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p15_0p16 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p16_0p17 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p17_0p18 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p18_0p19 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p19_0p20 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p1_0p2 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p20_0p21 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p21_0p22 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p22_0p23 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p23_0p24 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p24_0p25 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p25_0p26 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p2_0p3 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p3_0p4 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p4_0p5 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p5_0p6 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p6_0p7 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p7_0p8 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p8_0p9 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p9_0p10 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p1_0p2 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p2_0p3 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p1_0p2 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - - } - - void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - struct FactoryDesc - { - const char* name; - uint32_t version; - }; - - ::NvParameterized::Factory* factoriesToUnregister[] = { -// UNREGISTER GENERATED FACTORIES - new nvidia::parameterized::CachedOverlaps_0p0Factory(), - new nvidia::parameterized::DestructibleActorParam_0p0Factory(), - new nvidia::parameterized::DestructibleActorParam_0p1Factory(), - new nvidia::parameterized::DestructibleActorParam_0p10Factory(), - new nvidia::parameterized::DestructibleActorParam_0p11Factory(), - new nvidia::parameterized::DestructibleActorParam_0p12Factory(), - new nvidia::parameterized::DestructibleActorParam_0p13Factory(), - new nvidia::parameterized::DestructibleActorParam_0p14Factory(), - new nvidia::parameterized::DestructibleActorParam_0p15Factory(), - new nvidia::parameterized::DestructibleActorParam_0p16Factory(), - new nvidia::parameterized::DestructibleActorParam_0p17Factory(), - new nvidia::parameterized::DestructibleActorParam_0p18Factory(), - new nvidia::parameterized::DestructibleActorParam_0p19Factory(), - new nvidia::parameterized::DestructibleActorParam_0p2Factory(), - new nvidia::parameterized::DestructibleActorParam_0p20Factory(), - new nvidia::parameterized::DestructibleActorParam_0p21Factory(), - new nvidia::parameterized::DestructibleActorParam_0p22Factory(), - new nvidia::parameterized::DestructibleActorParam_0p23Factory(), - new nvidia::parameterized::DestructibleActorParam_0p24Factory(), - new nvidia::parameterized::DestructibleActorParam_0p25Factory(), - new nvidia::parameterized::DestructibleActorParam_0p26Factory(), - new nvidia::parameterized::DestructibleActorParam_0p27Factory(), - new nvidia::parameterized::DestructibleActorParam_0p28Factory(), - new nvidia::parameterized::DestructibleActorParam_0p29Factory(), - new nvidia::parameterized::DestructibleActorParam_0p3Factory(), - new nvidia::parameterized::DestructibleActorParam_0p30Factory(), - new nvidia::parameterized::DestructibleActorParam_0p31Factory(), - new nvidia::parameterized::DestructibleActorParam_0p4Factory(), - new nvidia::parameterized::DestructibleActorParam_0p5Factory(), - new nvidia::parameterized::DestructibleActorParam_0p6Factory(), - new nvidia::parameterized::DestructibleActorParam_0p7Factory(), - new nvidia::parameterized::DestructibleActorParam_0p8Factory(), - new nvidia::parameterized::DestructibleActorParam_0p9Factory(), - new nvidia::parameterized::DestructibleActorState_0p0Factory(), - new nvidia::parameterized::DestructibleActorState_0p1Factory(), - new nvidia::parameterized::DestructibleActorState_0p2Factory(), - new nvidia::parameterized::DestructibleActorState_0p3Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p0Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p1Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p10Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p11Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p12Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p13Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p14Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p15Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p16Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p17Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p18Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p19Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p2Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p20Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p21Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p22Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p23Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p24Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p25Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p3Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p4Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p5Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p6Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p7Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p8Factory(), - new nvidia::parameterized::DestructibleAssetParameters_0p9Factory(), - new nvidia::parameterized::DestructibleModuleParameters_0p0Factory(), - new nvidia::parameterized::DestructibleModuleParameters_0p1Factory(), - new nvidia::parameterized::DestructibleModuleParameters_0p2Factory(), - new nvidia::parameterized::SurfaceTraceSetParameters_0p0Factory(), - new nvidia::parameterized::SurfaceTraceSetParameters_0p1Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) - { - ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); - if (!removedFactory) - { - PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); - } - else - { - removedFactory->freeParameterDefinitionTable(¶meterizedTraits); - delete removedFactory; - delete factoriesToUnregister[i]; - } - } - } - - virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// UNREGISTER GENERATED CONVERSION - { - typedef nvidia::apex::legacy::ConversionCachedOverlaps_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p10_0p11 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p11_0p12 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p12_0p13 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p13_0p14 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p14_0p15 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p15_0p16 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p16_0p17 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p17_0p18 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p18_0p19 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p19_0p20 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p1_0p2 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p20_0p21 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p21_0p22 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p22_0p23 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p23_0p24 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p24_0p25 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p25_0p26 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p26_0p27 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p27_0p28 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p28_0p29 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p29_0p30 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p2_0p3 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p30_0p31 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p31_0p32 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p3_0p4 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p4_0p5 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p5_0p6 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p6_0p7 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p7_0p8 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p8_0p9 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p9_0p10 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p1_0p2 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p2_0p3 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p3_0p4 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p10_0p11 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p11_0p12 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p12_0p13 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p13_0p14 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p14_0p15 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p15_0p16 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p16_0p17 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p17_0p18 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p18_0p19 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p19_0p20 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p1_0p2 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p20_0p21 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p21_0p22 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p22_0p23 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p23_0p24 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p24_0p25 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p25_0p26 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p2_0p3 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p3_0p4 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p4_0p5 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p5_0p6 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p6_0p7 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p7_0p8 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p8_0p9 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p9_0p10 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p1_0p2 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p2_0p3 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p1_0p2 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - - } - -}; - -// global namespace - -#endif +/* + * Copyright (c) 2008-2015, 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. + */ + +#ifndef MODULE_MODULEDESTRUCTIBLELEGACYREGISTRATIONH_H +#define MODULE_MODULEDESTRUCTIBLELEGACYREGISTRATIONH_H + +#include "PsAllocator.h" +#include "NvRegistrationsForTraitsBase.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PxAssert.h" +#include + +// INCLUDE GENERATED FACTORIES +#include "CachedOverlaps_0p0.h" +#include "DestructibleActorParam_0p0.h" +#include "DestructibleActorParam_0p1.h" +#include "DestructibleActorParam_0p10.h" +#include "DestructibleActorParam_0p11.h" +#include "DestructibleActorParam_0p12.h" +#include "DestructibleActorParam_0p13.h" +#include "DestructibleActorParam_0p14.h" +#include "DestructibleActorParam_0p15.h" +#include "DestructibleActorParam_0p16.h" +#include "DestructibleActorParam_0p17.h" +#include "DestructibleActorParam_0p18.h" +#include "DestructibleActorParam_0p19.h" +#include "DestructibleActorParam_0p2.h" +#include "DestructibleActorParam_0p20.h" +#include "DestructibleActorParam_0p21.h" +#include "DestructibleActorParam_0p22.h" +#include "DestructibleActorParam_0p23.h" +#include "DestructibleActorParam_0p24.h" +#include "DestructibleActorParam_0p25.h" +#include "DestructibleActorParam_0p26.h" +#include "DestructibleActorParam_0p27.h" +#include "DestructibleActorParam_0p28.h" +#include "DestructibleActorParam_0p29.h" +#include "DestructibleActorParam_0p3.h" +#include "DestructibleActorParam_0p30.h" +#include "DestructibleActorParam_0p31.h" +#include "DestructibleActorParam_0p4.h" +#include "DestructibleActorParam_0p5.h" +#include "DestructibleActorParam_0p6.h" +#include "DestructibleActorParam_0p7.h" +#include "DestructibleActorParam_0p8.h" +#include "DestructibleActorParam_0p9.h" +#include "DestructibleActorState_0p0.h" +#include "DestructibleActorState_0p1.h" +#include "DestructibleActorState_0p2.h" +#include "DestructibleActorState_0p3.h" +#include "DestructibleAssetParameters_0p0.h" +#include "DestructibleAssetParameters_0p1.h" +#include "DestructibleAssetParameters_0p10.h" +#include "DestructibleAssetParameters_0p11.h" +#include "DestructibleAssetParameters_0p12.h" +#include "DestructibleAssetParameters_0p13.h" +#include "DestructibleAssetParameters_0p14.h" +#include "DestructibleAssetParameters_0p15.h" +#include "DestructibleAssetParameters_0p16.h" +#include "DestructibleAssetParameters_0p17.h" +#include "DestructibleAssetParameters_0p18.h" +#include "DestructibleAssetParameters_0p19.h" +#include "DestructibleAssetParameters_0p2.h" +#include "DestructibleAssetParameters_0p20.h" +#include "DestructibleAssetParameters_0p21.h" +#include "DestructibleAssetParameters_0p22.h" +#include "DestructibleAssetParameters_0p23.h" +#include "DestructibleAssetParameters_0p24.h" +#include "DestructibleAssetParameters_0p25.h" +#include "DestructibleAssetParameters_0p3.h" +#include "DestructibleAssetParameters_0p4.h" +#include "DestructibleAssetParameters_0p5.h" +#include "DestructibleAssetParameters_0p6.h" +#include "DestructibleAssetParameters_0p7.h" +#include "DestructibleAssetParameters_0p8.h" +#include "DestructibleAssetParameters_0p9.h" +#include "DestructibleModuleParameters_0p0.h" +#include "DestructibleModuleParameters_0p1.h" +#include "DestructibleModuleParameters_0p2.h" +#include "SurfaceTraceSetParameters_0p0.h" +#include "SurfaceTraceSetParameters_0p1.h" +#include "DestructibleActorParam_0p32.h" +#include "DestructibleActorChunks_0p0.h" +#include "DestructibleActorState_0p4.h" +#include "SurfaceTraceParameters_0p0.h" +#include "SurfaceTraceSetParameters_0p2.h" +#include "CachedOverlaps_0p1.h" +#include "MeshCookedCollisionStream_0p0.h" +#include "MeshCookedCollisionStreamsAtScale_0p0.h" +#include "DestructibleAssetCollisionDataSet_0p0.h" +#include "DestructibleAssetParameters_0p26.h" +#include "DestructiblePreviewParam_0p0.h" +#include "DestructibleDebugRenderParams_0p0.h" +#include "DestructibleModuleParameters_0p3.h" + + +// INCLUDE GENERATED CONVERSION +#include "ConversionCachedOverlaps_0p0_0p1.h" +#include "ConversionDestructibleActorParam_0p0_0p1.h" +#include "ConversionDestructibleActorParam_0p10_0p11.h" +#include "ConversionDestructibleActorParam_0p11_0p12.h" +#include "ConversionDestructibleActorParam_0p12_0p13.h" +#include "ConversionDestructibleActorParam_0p13_0p14.h" +#include "ConversionDestructibleActorParam_0p14_0p15.h" +#include "ConversionDestructibleActorParam_0p15_0p16.h" +#include "ConversionDestructibleActorParam_0p16_0p17.h" +#include "ConversionDestructibleActorParam_0p17_0p18.h" +#include "ConversionDestructibleActorParam_0p18_0p19.h" +#include "ConversionDestructibleActorParam_0p19_0p20.h" +#include "ConversionDestructibleActorParam_0p1_0p2.h" +#include "ConversionDestructibleActorParam_0p20_0p21.h" +#include "ConversionDestructibleActorParam_0p21_0p22.h" +#include "ConversionDestructibleActorParam_0p22_0p23.h" +#include "ConversionDestructibleActorParam_0p23_0p24.h" +#include "ConversionDestructibleActorParam_0p24_0p25.h" +#include "ConversionDestructibleActorParam_0p25_0p26.h" +#include "ConversionDestructibleActorParam_0p26_0p27.h" +#include "ConversionDestructibleActorParam_0p27_0p28.h" +#include "ConversionDestructibleActorParam_0p28_0p29.h" +#include "ConversionDestructibleActorParam_0p29_0p30.h" +#include "ConversionDestructibleActorParam_0p2_0p3.h" +#include "ConversionDestructibleActorParam_0p30_0p31.h" +#include "ConversionDestructibleActorParam_0p31_0p32.h" +#include "ConversionDestructibleActorParam_0p3_0p4.h" +#include "ConversionDestructibleActorParam_0p4_0p5.h" +#include "ConversionDestructibleActorParam_0p5_0p6.h" +#include "ConversionDestructibleActorParam_0p6_0p7.h" +#include "ConversionDestructibleActorParam_0p7_0p8.h" +#include "ConversionDestructibleActorParam_0p8_0p9.h" +#include "ConversionDestructibleActorParam_0p9_0p10.h" +#include "ConversionDestructibleActorState_0p0_0p1.h" +#include "ConversionDestructibleActorState_0p1_0p2.h" +#include "ConversionDestructibleActorState_0p2_0p3.h" +#include "ConversionDestructibleActorState_0p3_0p4.h" +#include "ConversionDestructibleAssetParameters_0p0_0p1.h" +#include "ConversionDestructibleAssetParameters_0p10_0p11.h" +#include "ConversionDestructibleAssetParameters_0p11_0p12.h" +#include "ConversionDestructibleAssetParameters_0p12_0p13.h" +#include "ConversionDestructibleAssetParameters_0p13_0p14.h" +#include "ConversionDestructibleAssetParameters_0p14_0p15.h" +#include "ConversionDestructibleAssetParameters_0p15_0p16.h" +#include "ConversionDestructibleAssetParameters_0p16_0p17.h" +#include "ConversionDestructibleAssetParameters_0p17_0p18.h" +#include "ConversionDestructibleAssetParameters_0p18_0p19.h" +#include "ConversionDestructibleAssetParameters_0p19_0p20.h" +#include "ConversionDestructibleAssetParameters_0p1_0p2.h" +#include "ConversionDestructibleAssetParameters_0p20_0p21.h" +#include "ConversionDestructibleAssetParameters_0p21_0p22.h" +#include "ConversionDestructibleAssetParameters_0p22_0p23.h" +#include "ConversionDestructibleAssetParameters_0p23_0p24.h" +#include "ConversionDestructibleAssetParameters_0p24_0p25.h" +#include "ConversionDestructibleAssetParameters_0p25_0p26.h" +#include "ConversionDestructibleAssetParameters_0p2_0p3.h" +#include "ConversionDestructibleAssetParameters_0p3_0p4.h" +#include "ConversionDestructibleAssetParameters_0p4_0p5.h" +#include "ConversionDestructibleAssetParameters_0p5_0p6.h" +#include "ConversionDestructibleAssetParameters_0p6_0p7.h" +#include "ConversionDestructibleAssetParameters_0p7_0p8.h" +#include "ConversionDestructibleAssetParameters_0p8_0p9.h" +#include "ConversionDestructibleAssetParameters_0p9_0p10.h" +#include "ConversionDestructibleModuleParameters_0p0_0p1.h" +#include "ConversionDestructibleModuleParameters_0p1_0p2.h" +#include "ConversionDestructibleModuleParameters_0p2_0p3.h" +#include "ConversionSurfaceTraceSetParameters_0p0_0p1.h" +#include "ConversionSurfaceTraceSetParameters_0p1_0p2.h" + + +// global namespace + +class ModuleDestructibleLegacyRegistration : public NvParameterized::RegistrationsForTraitsBase +{ +public: + static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleDestructibleLegacyRegistration().registerAll(*parameterizedTraits); + } + } + + static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleDestructibleLegacyRegistration().unregisterAll(*parameterizedTraits); + } + } + + void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + ::NvParameterized::Factory* factoriesToRegister[] = { +// REGISTER GENERATED FACTORIES + new nvidia::parameterized::CachedOverlaps_0p0Factory(), + new nvidia::parameterized::DestructibleActorParam_0p0Factory(), + new nvidia::parameterized::DestructibleActorParam_0p1Factory(), + new nvidia::parameterized::DestructibleActorParam_0p10Factory(), + new nvidia::parameterized::DestructibleActorParam_0p11Factory(), + new nvidia::parameterized::DestructibleActorParam_0p12Factory(), + new nvidia::parameterized::DestructibleActorParam_0p13Factory(), + new nvidia::parameterized::DestructibleActorParam_0p14Factory(), + new nvidia::parameterized::DestructibleActorParam_0p15Factory(), + new nvidia::parameterized::DestructibleActorParam_0p16Factory(), + new nvidia::parameterized::DestructibleActorParam_0p17Factory(), + new nvidia::parameterized::DestructibleActorParam_0p18Factory(), + new nvidia::parameterized::DestructibleActorParam_0p19Factory(), + new nvidia::parameterized::DestructibleActorParam_0p2Factory(), + new nvidia::parameterized::DestructibleActorParam_0p20Factory(), + new nvidia::parameterized::DestructibleActorParam_0p21Factory(), + new nvidia::parameterized::DestructibleActorParam_0p22Factory(), + new nvidia::parameterized::DestructibleActorParam_0p23Factory(), + new nvidia::parameterized::DestructibleActorParam_0p24Factory(), + new nvidia::parameterized::DestructibleActorParam_0p25Factory(), + new nvidia::parameterized::DestructibleActorParam_0p26Factory(), + new nvidia::parameterized::DestructibleActorParam_0p27Factory(), + new nvidia::parameterized::DestructibleActorParam_0p28Factory(), + new nvidia::parameterized::DestructibleActorParam_0p29Factory(), + new nvidia::parameterized::DestructibleActorParam_0p3Factory(), + new nvidia::parameterized::DestructibleActorParam_0p30Factory(), + new nvidia::parameterized::DestructibleActorParam_0p31Factory(), + new nvidia::parameterized::DestructibleActorParam_0p4Factory(), + new nvidia::parameterized::DestructibleActorParam_0p5Factory(), + new nvidia::parameterized::DestructibleActorParam_0p6Factory(), + new nvidia::parameterized::DestructibleActorParam_0p7Factory(), + new nvidia::parameterized::DestructibleActorParam_0p8Factory(), + new nvidia::parameterized::DestructibleActorParam_0p9Factory(), + new nvidia::parameterized::DestructibleActorState_0p0Factory(), + new nvidia::parameterized::DestructibleActorState_0p1Factory(), + new nvidia::parameterized::DestructibleActorState_0p2Factory(), + new nvidia::parameterized::DestructibleActorState_0p3Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p0Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p1Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p10Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p11Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p12Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p13Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p14Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p15Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p16Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p17Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p18Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p19Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p2Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p20Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p21Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p22Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p23Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p24Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p25Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p3Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p4Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p5Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p6Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p7Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p8Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p9Factory(), + new nvidia::parameterized::DestructibleModuleParameters_0p0Factory(), + new nvidia::parameterized::DestructibleModuleParameters_0p1Factory(), + new nvidia::parameterized::DestructibleModuleParameters_0p2Factory(), + new nvidia::parameterized::SurfaceTraceSetParameters_0p0Factory(), + new nvidia::parameterized::SurfaceTraceSetParameters_0p1Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) + { + parameterizedTraits.registerFactory(*factoriesToRegister[i]); + } + } + + virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// REGISTER GENERATED CONVERSION + { + typedef nvidia::apex::legacy::ConversionCachedOverlaps_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p10_0p11 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p11_0p12 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p12_0p13 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p13_0p14 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p14_0p15 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p15_0p16 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p16_0p17 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p17_0p18 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p18_0p19 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p19_0p20 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p1_0p2 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p20_0p21 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p21_0p22 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p22_0p23 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p23_0p24 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p24_0p25 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p25_0p26 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p26_0p27 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p27_0p28 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p28_0p29 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p29_0p30 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p2_0p3 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p30_0p31 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p31_0p32 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p3_0p4 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p4_0p5 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p5_0p6 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p6_0p7 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p7_0p8 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p8_0p9 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p9_0p10 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p1_0p2 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p2_0p3 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p3_0p4 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p10_0p11 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p11_0p12 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p12_0p13 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p13_0p14 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p14_0p15 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p15_0p16 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p16_0p17 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p17_0p18 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p18_0p19 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p19_0p20 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p1_0p2 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p20_0p21 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p21_0p22 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p22_0p23 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p23_0p24 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p24_0p25 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p25_0p26 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p2_0p3 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p3_0p4 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p4_0p5 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p5_0p6 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p6_0p7 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p7_0p8 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p8_0p9 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p9_0p10 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p1_0p2 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p2_0p3 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p1_0p2 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + + } + + void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + struct FactoryDesc + { + const char* name; + uint32_t version; + }; + + ::NvParameterized::Factory* factoriesToUnregister[] = { +// UNREGISTER GENERATED FACTORIES + new nvidia::parameterized::CachedOverlaps_0p0Factory(), + new nvidia::parameterized::DestructibleActorParam_0p0Factory(), + new nvidia::parameterized::DestructibleActorParam_0p1Factory(), + new nvidia::parameterized::DestructibleActorParam_0p10Factory(), + new nvidia::parameterized::DestructibleActorParam_0p11Factory(), + new nvidia::parameterized::DestructibleActorParam_0p12Factory(), + new nvidia::parameterized::DestructibleActorParam_0p13Factory(), + new nvidia::parameterized::DestructibleActorParam_0p14Factory(), + new nvidia::parameterized::DestructibleActorParam_0p15Factory(), + new nvidia::parameterized::DestructibleActorParam_0p16Factory(), + new nvidia::parameterized::DestructibleActorParam_0p17Factory(), + new nvidia::parameterized::DestructibleActorParam_0p18Factory(), + new nvidia::parameterized::DestructibleActorParam_0p19Factory(), + new nvidia::parameterized::DestructibleActorParam_0p2Factory(), + new nvidia::parameterized::DestructibleActorParam_0p20Factory(), + new nvidia::parameterized::DestructibleActorParam_0p21Factory(), + new nvidia::parameterized::DestructibleActorParam_0p22Factory(), + new nvidia::parameterized::DestructibleActorParam_0p23Factory(), + new nvidia::parameterized::DestructibleActorParam_0p24Factory(), + new nvidia::parameterized::DestructibleActorParam_0p25Factory(), + new nvidia::parameterized::DestructibleActorParam_0p26Factory(), + new nvidia::parameterized::DestructibleActorParam_0p27Factory(), + new nvidia::parameterized::DestructibleActorParam_0p28Factory(), + new nvidia::parameterized::DestructibleActorParam_0p29Factory(), + new nvidia::parameterized::DestructibleActorParam_0p3Factory(), + new nvidia::parameterized::DestructibleActorParam_0p30Factory(), + new nvidia::parameterized::DestructibleActorParam_0p31Factory(), + new nvidia::parameterized::DestructibleActorParam_0p4Factory(), + new nvidia::parameterized::DestructibleActorParam_0p5Factory(), + new nvidia::parameterized::DestructibleActorParam_0p6Factory(), + new nvidia::parameterized::DestructibleActorParam_0p7Factory(), + new nvidia::parameterized::DestructibleActorParam_0p8Factory(), + new nvidia::parameterized::DestructibleActorParam_0p9Factory(), + new nvidia::parameterized::DestructibleActorState_0p0Factory(), + new nvidia::parameterized::DestructibleActorState_0p1Factory(), + new nvidia::parameterized::DestructibleActorState_0p2Factory(), + new nvidia::parameterized::DestructibleActorState_0p3Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p0Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p1Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p10Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p11Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p12Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p13Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p14Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p15Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p16Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p17Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p18Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p19Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p2Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p20Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p21Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p22Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p23Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p24Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p25Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p3Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p4Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p5Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p6Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p7Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p8Factory(), + new nvidia::parameterized::DestructibleAssetParameters_0p9Factory(), + new nvidia::parameterized::DestructibleModuleParameters_0p0Factory(), + new nvidia::parameterized::DestructibleModuleParameters_0p1Factory(), + new nvidia::parameterized::DestructibleModuleParameters_0p2Factory(), + new nvidia::parameterized::SurfaceTraceSetParameters_0p0Factory(), + new nvidia::parameterized::SurfaceTraceSetParameters_0p1Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) + { + ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); + if (!removedFactory) + { + PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); + } + else + { + removedFactory->freeParameterDefinitionTable(¶meterizedTraits); + delete removedFactory; + delete factoriesToUnregister[i]; + } + } + } + + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// UNREGISTER GENERATED CONVERSION + { + typedef nvidia::apex::legacy::ConversionCachedOverlaps_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p10_0p11 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p11_0p12 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p12_0p13 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p13_0p14 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p14_0p15 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p15_0p16 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p16_0p17 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p17_0p18 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p18_0p19 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p19_0p20 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p1_0p2 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p20_0p21 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p21_0p22 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p22_0p23 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p23_0p24 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p24_0p25 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p25_0p26 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p26_0p27 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p27_0p28 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p28_0p29 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p29_0p30 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p2_0p3 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p30_0p31 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p31_0p32 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p3_0p4 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p4_0p5 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p5_0p6 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p6_0p7 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p7_0p8 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p8_0p9 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorParam_0p9_0p10 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p1_0p2 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p2_0p3 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleActorState_0p3_0p4 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p10_0p11 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p11_0p12 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p12_0p13 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p13_0p14 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p14_0p15 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p15_0p16 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p16_0p17 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p17_0p18 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p18_0p19 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p19_0p20 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p1_0p2 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p20_0p21 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p21_0p22 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p22_0p23 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p23_0p24 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p24_0p25 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p25_0p26 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p2_0p3 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p3_0p4 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p4_0p5 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p5_0p6 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p6_0p7 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p7_0p8 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p8_0p9 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleAssetParameters_0p9_0p10 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p1_0p2 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionDestructibleModuleParameters_0p2_0p3 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionSurfaceTraceSetParameters_0p1_0p2 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + + } + +}; + +// global namespace + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceParameters_0p0.h old mode 100644 new mode 100755 index eb65ac9..bd72022 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceParameters_0p0.h @@ -1,248 +1,248 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceTraceParameters_0p0_h -#define HEADER_SurfaceTraceParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceTraceParameters_0p0NS -{ - - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U8_DynamicArray1D_Type submeshIndices; - U32_DynamicArray1D_Type vertexIndices; - physx::PxVec3 defaultNormal; - -}; - -static const uint32_t checksum[] = { 0x97a690a9, 0x7c950c3a, 0x7e771c34, 0x41bed788, }; - -} // namespace SurfaceTraceParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceTraceParameters_0p0 : public NvParameterized::NvParameters, public SurfaceTraceParameters_0p0NS::ParametersStruct -{ -public: - SurfaceTraceParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceTraceParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceTraceParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceTraceParameters_0p0NS::checksum); - return SurfaceTraceParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceTraceParameters_0p0NS::ParametersStruct& parameters(void) const - { - SurfaceTraceParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceTraceParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceTraceParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceTraceParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceParameters_0p0), SurfaceTraceParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceTraceParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceTraceParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceTraceParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceTraceParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceTraceParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceTraceParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceTraceParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceTraceParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceTraceParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceTraceParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceTraceParameters_0p0_h +#define HEADER_SurfaceTraceParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceTraceParameters_0p0NS +{ + + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U8_DynamicArray1D_Type submeshIndices; + U32_DynamicArray1D_Type vertexIndices; + physx::PxVec3 defaultNormal; + +}; + +static const uint32_t checksum[] = { 0x97a690a9, 0x7c950c3a, 0x7e771c34, 0x41bed788, }; + +} // namespace SurfaceTraceParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceTraceParameters_0p0 : public NvParameterized::NvParameters, public SurfaceTraceParameters_0p0NS::ParametersStruct +{ +public: + SurfaceTraceParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceTraceParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceTraceParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceTraceParameters_0p0NS::checksum); + return SurfaceTraceParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceTraceParameters_0p0NS::ParametersStruct& parameters(void) const + { + SurfaceTraceParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceTraceParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceTraceParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceTraceParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceParameters_0p0), SurfaceTraceParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceTraceParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceTraceParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceTraceParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceTraceParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceTraceParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceTraceParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceTraceParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceTraceParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceTraceParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceTraceParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p0.h old mode 100644 new mode 100755 index 6b290d0..ce85b0d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceTraceSetParameters_0p0_h -#define HEADER_SurfaceTraceSetParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceTraceSetParameters_0p0NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type traces; - -}; - -static const uint32_t checksum[] = { 0x670003c1, 0x423421b5, 0x28339fb2, 0x38efed3a, }; - -} // namespace SurfaceTraceSetParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceTraceSetParameters_0p0 : public NvParameterized::NvParameters, public SurfaceTraceSetParameters_0p0NS::ParametersStruct -{ -public: - SurfaceTraceSetParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceTraceSetParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceTraceSetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceTraceSetParameters_0p0NS::checksum); - return SurfaceTraceSetParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceTraceSetParameters_0p0NS::ParametersStruct& parameters(void) const - { - SurfaceTraceSetParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceTraceSetParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceTraceSetParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceTraceSetParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters_0p0), SurfaceTraceSetParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceTraceSetParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceTraceSetParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceTraceSetParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceTraceSetParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceTraceSetParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceTraceSetParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceTraceSetParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceTraceSetParameters_0p0_h +#define HEADER_SurfaceTraceSetParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceTraceSetParameters_0p0NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type traces; + +}; + +static const uint32_t checksum[] = { 0x670003c1, 0x423421b5, 0x28339fb2, 0x38efed3a, }; + +} // namespace SurfaceTraceSetParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceTraceSetParameters_0p0 : public NvParameterized::NvParameters, public SurfaceTraceSetParameters_0p0NS::ParametersStruct +{ +public: + SurfaceTraceSetParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceTraceSetParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceTraceSetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceTraceSetParameters_0p0NS::checksum); + return SurfaceTraceSetParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceTraceSetParameters_0p0NS::ParametersStruct& parameters(void) const + { + SurfaceTraceSetParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceTraceSetParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceTraceSetParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceTraceSetParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters_0p0), SurfaceTraceSetParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceTraceSetParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceTraceSetParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceTraceSetParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceTraceSetParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceTraceSetParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceTraceSetParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceTraceSetParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p1.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p1.h old mode 100644 new mode 100755 index dbf1135..49bd246 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p1.h @@ -1,239 +1,239 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceTraceSetParameters_0p1_h -#define HEADER_SurfaceTraceSetParameters_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceTraceSetParameters_0p1NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type traces; - physx::PxVec3 positionOffset; - -}; - -static const uint32_t checksum[] = { 0x26c923b4, 0x640dec9c, 0x14b6de5c, 0x6ae751c8, }; - -} // namespace SurfaceTraceSetParameters_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceTraceSetParameters_0p1 : public NvParameterized::NvParameters, public SurfaceTraceSetParameters_0p1NS::ParametersStruct -{ -public: - SurfaceTraceSetParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceTraceSetParameters_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceTraceSetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceTraceSetParameters_0p1NS::checksum); - return SurfaceTraceSetParameters_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceTraceSetParameters_0p1NS::ParametersStruct& parameters(void) const - { - SurfaceTraceSetParameters_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceTraceSetParameters_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceTraceSetParameters_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceTraceSetParameters_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters_0p1), SurfaceTraceSetParameters_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceTraceSetParameters_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceTraceSetParameters_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceTraceSetParameters_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceTraceSetParameters_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceTraceSetParameters_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceTraceSetParameters_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceTraceSetParameters_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceTraceSetParameters_0p1_h +#define HEADER_SurfaceTraceSetParameters_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceTraceSetParameters_0p1NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type traces; + physx::PxVec3 positionOffset; + +}; + +static const uint32_t checksum[] = { 0x26c923b4, 0x640dec9c, 0x14b6de5c, 0x6ae751c8, }; + +} // namespace SurfaceTraceSetParameters_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceTraceSetParameters_0p1 : public NvParameterized::NvParameters, public SurfaceTraceSetParameters_0p1NS::ParametersStruct +{ +public: + SurfaceTraceSetParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceTraceSetParameters_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceTraceSetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceTraceSetParameters_0p1NS::checksum); + return SurfaceTraceSetParameters_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceTraceSetParameters_0p1NS::ParametersStruct& parameters(void) const + { + SurfaceTraceSetParameters_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceTraceSetParameters_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceTraceSetParameters_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceTraceSetParameters_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters_0p1), SurfaceTraceSetParameters_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceTraceSetParameters_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceTraceSetParameters_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceTraceSetParameters_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceTraceSetParameters_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceTraceSetParameters_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceTraceSetParameters_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceTraceSetParameters_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p2.h b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p2.h old mode 100644 new mode 100755 index d14f150..efe7fdf --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p2.h +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/include/autogen/SurfaceTraceSetParameters_0p2.h @@ -1,239 +1,239 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceTraceSetParameters_0p2_h -#define HEADER_SurfaceTraceSetParameters_0p2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceTraceSetParameters_0p2NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type traces; - physx::PxVec3 positionOffset; - -}; - -static const uint32_t checksum[] = { 0x7825b62c, 0x9ed33f77, 0x7851a472, 0xb4319f34, }; - -} // namespace SurfaceTraceSetParameters_0p2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceTraceSetParameters_0p2 : public NvParameterized::NvParameters, public SurfaceTraceSetParameters_0p2NS::ParametersStruct -{ -public: - SurfaceTraceSetParameters_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceTraceSetParameters_0p2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceTraceSetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceTraceSetParameters_0p2NS::checksum); - return SurfaceTraceSetParameters_0p2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceTraceSetParameters_0p2NS::ParametersStruct& parameters(void) const - { - SurfaceTraceSetParameters_0p2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceTraceSetParameters_0p2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceTraceSetParameters_0p2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceTraceSetParameters_0p2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters_0p2), SurfaceTraceSetParameters_0p2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceTraceSetParameters_0p2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters_0p2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters_0p2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters_0p2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceTraceSetParameters_0p2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceTraceSetParameters_0p2*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceTraceSetParameters_0p2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceTraceSetParameters_0p2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceTraceSetParameters_0p2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceTraceSetParameters_0p2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceTraceSetParameters_0p2_h +#define HEADER_SurfaceTraceSetParameters_0p2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceTraceSetParameters_0p2NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type traces; + physx::PxVec3 positionOffset; + +}; + +static const uint32_t checksum[] = { 0x7825b62c, 0x9ed33f77, 0x7851a472, 0xb4319f34, }; + +} // namespace SurfaceTraceSetParameters_0p2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceTraceSetParameters_0p2 : public NvParameterized::NvParameters, public SurfaceTraceSetParameters_0p2NS::ParametersStruct +{ +public: + SurfaceTraceSetParameters_0p2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceTraceSetParameters_0p2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceTraceSetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)2; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceTraceSetParameters_0p2NS::checksum); + return SurfaceTraceSetParameters_0p2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceTraceSetParameters_0p2NS::ParametersStruct& parameters(void) const + { + SurfaceTraceSetParameters_0p2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceTraceSetParameters_0p2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceTraceSetParameters_0p2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceTraceSetParameters_0p2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceTraceSetParameters_0p2), SurfaceTraceSetParameters_0p2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceTraceSetParameters_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceTraceSetParameters_0p2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceTraceSetParameters_0p2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceTraceSetParameters_0p2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceTraceSetParameters_0p2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceTraceSetParameters_0p2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceTraceSetParameters_0p2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceTraceSetParameters_0p2*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceTraceSetParameters_0p2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceTraceSetParameters_0p2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceTraceSetParameters_0p2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceTraceSetParameters_0p2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p0.cpp old mode 100644 new mode 100755 index 6c29d1c..d129a9f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p0.cpp @@ -1,429 +1,429 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "CachedOverlaps_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace CachedOverlaps_0p0NS; - -const char* const CachedOverlaps_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isCached), NULL, 0 }, // isCached - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlaps), CHILDREN(2), 1 }, // overlaps - { TYPE_STRUCT, false, 1 * sizeof(IntPair_Type), CHILDREN(3), 2 }, // overlaps[] - { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i0), NULL, 0 }, // overlaps[].i0 - { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i1), NULL, 0 }, // overlaps[].i1 -}; - - -bool CachedOverlaps_0p0::mBuiltFlag = false; -NvParameterized::MutexType CachedOverlaps_0p0::mBuiltFlagMutex; - -CachedOverlaps_0p0::CachedOverlaps_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &CachedOverlaps_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -CachedOverlaps_0p0::~CachedOverlaps_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void CachedOverlaps_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~CachedOverlaps_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* CachedOverlaps_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* CachedOverlaps_0p0::getParameterDefinitionTree(void) const -{ - CachedOverlaps_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType CachedOverlaps_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType CachedOverlaps_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void CachedOverlaps_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void CachedOverlaps_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void CachedOverlaps_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="isCached" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("isCached", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth. In this\n case, overlap really means adjacency.", true); - HintTable[1].init("shortDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="overlaps" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("overlaps", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); - HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="overlaps[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("overlaps", TYPE_STRUCT, "IntPair", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); - HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="overlaps[].i0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("i0", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Helpful documentation goes here", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="overlaps[].i1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("i1", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Helpful documentation goes here", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - - ParamDefTable[0].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=2, longName="overlaps" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(3); - - ParamDefTable[2].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="overlaps[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(4); - Children[1] = PDEF_PTR(5); - - ParamDefTable[3].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void CachedOverlaps_0p0::initStrings(void) -{ -} - -void CachedOverlaps_0p0::initDynamicArrays(void) -{ - overlaps.buf = NULL; - overlaps.isAllocated = true; - overlaps.elementSize = sizeof(IntPair_Type); - overlaps.arraySizes[0] = 0; -} - -void CachedOverlaps_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - isCached = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void CachedOverlaps_0p0::initReferences(void) -{ -} - -void CachedOverlaps_0p0::freeDynamicArrays(void) -{ - if (overlaps.isAllocated && overlaps.buf) - { - mParameterizedTraits->free(overlaps.buf); - } -} - -void CachedOverlaps_0p0::freeStrings(void) -{ -} - -void CachedOverlaps_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "CachedOverlaps_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace CachedOverlaps_0p0NS; + +const char* const CachedOverlaps_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isCached), NULL, 0 }, // isCached + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlaps), CHILDREN(2), 1 }, // overlaps + { TYPE_STRUCT, false, 1 * sizeof(IntPair_Type), CHILDREN(3), 2 }, // overlaps[] + { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i0), NULL, 0 }, // overlaps[].i0 + { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i1), NULL, 0 }, // overlaps[].i1 +}; + + +bool CachedOverlaps_0p0::mBuiltFlag = false; +NvParameterized::MutexType CachedOverlaps_0p0::mBuiltFlagMutex; + +CachedOverlaps_0p0::CachedOverlaps_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &CachedOverlaps_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +CachedOverlaps_0p0::~CachedOverlaps_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void CachedOverlaps_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~CachedOverlaps_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* CachedOverlaps_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* CachedOverlaps_0p0::getParameterDefinitionTree(void) const +{ + CachedOverlaps_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType CachedOverlaps_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType CachedOverlaps_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void CachedOverlaps_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void CachedOverlaps_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void CachedOverlaps_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="isCached" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("isCached", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth. In this\n case, overlap really means adjacency.", true); + HintTable[1].init("shortDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="overlaps" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("overlaps", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); + HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="overlaps[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("overlaps", TYPE_STRUCT, "IntPair", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); + HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="overlaps[].i0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("i0", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Helpful documentation goes here", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="overlaps[].i1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("i1", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Helpful documentation goes here", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + + ParamDefTable[0].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=2, longName="overlaps" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(3); + + ParamDefTable[2].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="overlaps[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(4); + Children[1] = PDEF_PTR(5); + + ParamDefTable[3].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void CachedOverlaps_0p0::initStrings(void) +{ +} + +void CachedOverlaps_0p0::initDynamicArrays(void) +{ + overlaps.buf = NULL; + overlaps.isAllocated = true; + overlaps.elementSize = sizeof(IntPair_Type); + overlaps.arraySizes[0] = 0; +} + +void CachedOverlaps_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + isCached = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void CachedOverlaps_0p0::initReferences(void) +{ +} + +void CachedOverlaps_0p0::freeDynamicArrays(void) +{ + if (overlaps.isAllocated && overlaps.buf) + { + mParameterizedTraits->free(overlaps.buf); + } +} + +void CachedOverlaps_0p0::freeStrings(void) +{ +} + +void CachedOverlaps_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p1.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p1.cpp old mode 100644 new mode 100755 index e64738e..70f6d1e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/CachedOverlaps_0p1.cpp @@ -1,429 +1,429 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "CachedOverlaps_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace CachedOverlaps_0p1NS; - -const char* const CachedOverlaps_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isCached), NULL, 0 }, // isCached - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlaps), CHILDREN(2), 1 }, // overlaps - { TYPE_STRUCT, false, 1 * sizeof(IntPair_Type), CHILDREN(3), 2 }, // overlaps[] - { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i0), NULL, 0 }, // overlaps[].i0 - { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i1), NULL, 0 }, // overlaps[].i1 -}; - - -bool CachedOverlaps_0p1::mBuiltFlag = false; -NvParameterized::MutexType CachedOverlaps_0p1::mBuiltFlagMutex; - -CachedOverlaps_0p1::CachedOverlaps_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &CachedOverlaps_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -CachedOverlaps_0p1::~CachedOverlaps_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void CachedOverlaps_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~CachedOverlaps_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* CachedOverlaps_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* CachedOverlaps_0p1::getParameterDefinitionTree(void) const -{ - CachedOverlaps_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType CachedOverlaps_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType CachedOverlaps_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void CachedOverlaps_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void CachedOverlaps_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void CachedOverlaps_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="isCached" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("isCached", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth. In this\n case, overlap really means adjacency.", true); - HintTable[1].init("shortDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="overlaps" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("overlaps", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); - HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="overlaps[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("overlaps", TYPE_STRUCT, "IntPair", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); - HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="overlaps[].i0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("i0", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "First element", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="overlaps[].i1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("i1", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Second element", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - - ParamDefTable[0].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=2, longName="overlaps" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(3); - - ParamDefTable[2].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="overlaps[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(4); - Children[1] = PDEF_PTR(5); - - ParamDefTable[3].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void CachedOverlaps_0p1::initStrings(void) -{ -} - -void CachedOverlaps_0p1::initDynamicArrays(void) -{ - overlaps.buf = NULL; - overlaps.isAllocated = true; - overlaps.elementSize = sizeof(IntPair_Type); - overlaps.arraySizes[0] = 0; -} - -void CachedOverlaps_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - isCached = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void CachedOverlaps_0p1::initReferences(void) -{ -} - -void CachedOverlaps_0p1::freeDynamicArrays(void) -{ - if (overlaps.isAllocated && overlaps.buf) - { - mParameterizedTraits->free(overlaps.buf); - } -} - -void CachedOverlaps_0p1::freeStrings(void) -{ -} - -void CachedOverlaps_0p1::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "CachedOverlaps_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace CachedOverlaps_0p1NS; + +const char* const CachedOverlaps_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isCached), NULL, 0 }, // isCached + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlaps), CHILDREN(2), 1 }, // overlaps + { TYPE_STRUCT, false, 1 * sizeof(IntPair_Type), CHILDREN(3), 2 }, // overlaps[] + { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i0), NULL, 0 }, // overlaps[].i0 + { TYPE_I32, false, (size_t)(&((IntPair_Type*)0)->i1), NULL, 0 }, // overlaps[].i1 +}; + + +bool CachedOverlaps_0p1::mBuiltFlag = false; +NvParameterized::MutexType CachedOverlaps_0p1::mBuiltFlagMutex; + +CachedOverlaps_0p1::CachedOverlaps_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &CachedOverlaps_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +CachedOverlaps_0p1::~CachedOverlaps_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void CachedOverlaps_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~CachedOverlaps_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* CachedOverlaps_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* CachedOverlaps_0p1::getParameterDefinitionTree(void) const +{ + CachedOverlaps_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType CachedOverlaps_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType CachedOverlaps_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void CachedOverlaps_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void CachedOverlaps_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void CachedOverlaps_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="isCached" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("isCached", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth. In this\n case, overlap really means adjacency.", true); + HintTable[1].init("shortDescription", "Whether or not chunk overlaps are cached at a particular hierarchy depth", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="overlaps" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("overlaps", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); + HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="overlaps[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("overlaps", TYPE_STRUCT, "IntPair", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The overlaps at a particular hierarchy depth. This is the set of adjacencies,\n stored as pairs of chunk indices, for chunks at a the given hierarchy depth.", true); + HintTable[1].init("shortDescription", "The overlaps at a particular hierarchy depth", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="overlaps[].i0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("i0", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "First element", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="overlaps[].i1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("i1", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Second element", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + + ParamDefTable[0].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=2, longName="overlaps" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(3); + + ParamDefTable[2].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="overlaps[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(4); + Children[1] = PDEF_PTR(5); + + ParamDefTable[3].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void CachedOverlaps_0p1::initStrings(void) +{ +} + +void CachedOverlaps_0p1::initDynamicArrays(void) +{ + overlaps.buf = NULL; + overlaps.isAllocated = true; + overlaps.elementSize = sizeof(IntPair_Type); + overlaps.arraySizes[0] = 0; +} + +void CachedOverlaps_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + isCached = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void CachedOverlaps_0p1::initReferences(void) +{ +} + +void CachedOverlaps_0p1::freeDynamicArrays(void) +{ + if (overlaps.isAllocated && overlaps.buf) + { + mParameterizedTraits->free(overlaps.buf); + } +} + +void CachedOverlaps_0p1::freeStrings(void) +{ +} + +void CachedOverlaps_0p1::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorChunks_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorChunks_0p0.cpp old mode 100644 new mode 100755 index e0fa111..a0a73fa --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorChunks_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorChunks_0p0.cpp @@ -1,642 +1,642 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorChunks_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorChunks_0p0NS; - -const char* const DestructibleActorChunks_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 14; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(2), 11 }, // data[] - { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->state), NULL, 0 }, // data[].state - { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // data[].flags - { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->islandID), NULL, 0 }, // data[].islandID - { TYPE_F32, false, (size_t)(&((Chunk_Type*)0)->damage), NULL, 0 }, // data[].damage - { TYPE_VEC4, false, (size_t)(&((Chunk_Type*)0)->localSphere), NULL, 0 }, // data[].localSphere - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->localOffset), NULL, 0 }, // data[].localOffset - { TYPE_I32, false, (size_t)(&((Chunk_Type*)0)->visibleAncestorIndex), NULL, 0 }, // data[].visibleAncestorIndex - { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->shapesCount), NULL, 0 }, // data[].shapesCount - { TYPE_TRANSFORM, false, (size_t)(&((Chunk_Type*)0)->globalPose), NULL, 0 }, // data[].globalPose - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->linearVelocity), NULL, 0 }, // data[].linearVelocity - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->angularVelocity), NULL, 0 }, // data[].angularVelocity -}; - - -bool DestructibleActorChunks_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorChunks_0p0::mBuiltFlagMutex; - -DestructibleActorChunks_0p0::DestructibleActorChunks_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorChunks_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorChunks_0p0::~DestructibleActorChunks_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorChunks_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorChunks_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorChunks_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorChunks_0p0::getParameterDefinitionTree(void) const -{ - DestructibleActorChunks_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorChunks_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorChunks_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorChunks_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorChunks_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorChunks_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].state" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("state", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bit flags indicating the state of the chunk.", true); - HintTable[1].init("shortDescription", "Bit flags indicating the state of the chunk", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("flags", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Overall chunk flags.", true); - HintTable[1].init("shortDescription", "Overall chunk flags", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].islandID" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("islandID", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Island ID (if any) to which the chunk is attached.", true); - HintTable[1].init("shortDescription", "Island ID (if any) to which the chunk is attached", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].damage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("damage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damaged the chunk is.", true); - HintTable[1].init("shortDescription", "How damaged the chunk is", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="data[].localSphere" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("localSphere", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); - HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="data[].localOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("localOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); - HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="data[].visibleAncestorIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("visibleAncestorIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index (in structure) of this chunks' visible ancestor, if any. If none exists, it's InvalidChunkIndex.", true); - HintTable[1].init("shortDescription", "Index (in structure) of this chunks' visible ancestor, if any", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="data[].shapesCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("shapesCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of shapes for this chunk.", true); - HintTable[1].init("shortDescription", "Number of shapes for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="data[].globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk global transform.", true); - HintTable[1].init("shortDescription", "Chunk global transform", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="data[].linearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("linearVelocity", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk linear velocity.", true); - HintTable[1].init("shortDescription", "Chunk linear velocity", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="data[].angularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("angularVelocity", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk angular velocity.", true); - HintTable[1].init("shortDescription", "Chunk angular velocity", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - Children[4] = PDEF_PTR(7); - Children[5] = PDEF_PTR(8); - Children[6] = PDEF_PTR(9); - Children[7] = PDEF_PTR(10); - Children[8] = PDEF_PTR(11); - Children[9] = PDEF_PTR(12); - Children[10] = PDEF_PTR(13); - - ParamDefTable[2].setChildren(Children, 11); - } - - mBuiltFlag = true; - -} -void DestructibleActorChunks_0p0::initStrings(void) -{ -} - -void DestructibleActorChunks_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(Chunk_Type); - data.arraySizes[0] = 0; -} - -void DestructibleActorChunks_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorChunks_0p0::initReferences(void) -{ -} - -void DestructibleActorChunks_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void DestructibleActorChunks_0p0::freeStrings(void) -{ -} - -void DestructibleActorChunks_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorChunks_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorChunks_0p0NS; + +const char* const DestructibleActorChunks_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 14; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(2), 11 }, // data[] + { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->state), NULL, 0 }, // data[].state + { TYPE_U8, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // data[].flags + { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->islandID), NULL, 0 }, // data[].islandID + { TYPE_F32, false, (size_t)(&((Chunk_Type*)0)->damage), NULL, 0 }, // data[].damage + { TYPE_VEC4, false, (size_t)(&((Chunk_Type*)0)->localSphere), NULL, 0 }, // data[].localSphere + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->localOffset), NULL, 0 }, // data[].localOffset + { TYPE_I32, false, (size_t)(&((Chunk_Type*)0)->visibleAncestorIndex), NULL, 0 }, // data[].visibleAncestorIndex + { TYPE_U32, false, (size_t)(&((Chunk_Type*)0)->shapesCount), NULL, 0 }, // data[].shapesCount + { TYPE_TRANSFORM, false, (size_t)(&((Chunk_Type*)0)->globalPose), NULL, 0 }, // data[].globalPose + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->linearVelocity), NULL, 0 }, // data[].linearVelocity + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->angularVelocity), NULL, 0 }, // data[].angularVelocity +}; + + +bool DestructibleActorChunks_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorChunks_0p0::mBuiltFlagMutex; + +DestructibleActorChunks_0p0::DestructibleActorChunks_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorChunks_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorChunks_0p0::~DestructibleActorChunks_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorChunks_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorChunks_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorChunks_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorChunks_0p0::getParameterDefinitionTree(void) const +{ + DestructibleActorChunks_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorChunks_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorChunks_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorChunks_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorChunks_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorChunks_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].state" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("state", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bit flags indicating the state of the chunk.", true); + HintTable[1].init("shortDescription", "Bit flags indicating the state of the chunk", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("flags", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Overall chunk flags.", true); + HintTable[1].init("shortDescription", "Overall chunk flags", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].islandID" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("islandID", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Island ID (if any) to which the chunk is attached.", true); + HintTable[1].init("shortDescription", "Island ID (if any) to which the chunk is attached", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].damage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("damage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damaged the chunk is.", true); + HintTable[1].init("shortDescription", "How damaged the chunk is", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="data[].localSphere" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("localSphere", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); + HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="data[].localOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("localOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A local bounding sphere for the chunk.", true); + HintTable[1].init("shortDescription", "A local bounding sphere for the chunk", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="data[].visibleAncestorIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("visibleAncestorIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index (in structure) of this chunks' visible ancestor, if any. If none exists, it's InvalidChunkIndex.", true); + HintTable[1].init("shortDescription", "Index (in structure) of this chunks' visible ancestor, if any", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="data[].shapesCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("shapesCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of shapes for this chunk.", true); + HintTable[1].init("shortDescription", "Number of shapes for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="data[].globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk global transform.", true); + HintTable[1].init("shortDescription", "Chunk global transform", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="data[].linearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("linearVelocity", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk linear velocity.", true); + HintTable[1].init("shortDescription", "Chunk linear velocity", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="data[].angularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("angularVelocity", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk angular velocity.", true); + HintTable[1].init("shortDescription", "Chunk angular velocity", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + Children[4] = PDEF_PTR(7); + Children[5] = PDEF_PTR(8); + Children[6] = PDEF_PTR(9); + Children[7] = PDEF_PTR(10); + Children[8] = PDEF_PTR(11); + Children[9] = PDEF_PTR(12); + Children[10] = PDEF_PTR(13); + + ParamDefTable[2].setChildren(Children, 11); + } + + mBuiltFlag = true; + +} +void DestructibleActorChunks_0p0::initStrings(void) +{ +} + +void DestructibleActorChunks_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(Chunk_Type); + data.arraySizes[0] = 0; +} + +void DestructibleActorChunks_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorChunks_0p0::initReferences(void) +{ +} + +void DestructibleActorChunks_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void DestructibleActorChunks_0p0::freeStrings(void) +{ +} + +void DestructibleActorChunks_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p0.cpp old mode 100644 new mode 100755 index 7ee9438..96b7154 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p0.cpp @@ -1,4075 +1,4075 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p0NS; - -const char* const DestructibleActorParam_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 140; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 9, 11, 50, 60, 94, 123, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 40, 41, 42, 43, 44, 32, 33, 34, 35, - 36, 37, 38, 39, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 82, 83, - 89, 90, 91, 92, 93, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 84, 85, 86, 87, 88, 95, 103, 104, 105, 106, 119, 120, 121, 122, 96, - 97, 98, 99, 100, 101, 102, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 124, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 125, 126, 127, 128, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 13 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(13), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(14), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(15), 25 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(40), 8 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(48), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(53), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(54), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(62), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(70), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(90), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(95), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(104), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(111), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(123), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(135), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold -}; - - -bool DestructibleActorParam_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p0::mBuiltFlagMutex; - -DestructibleActorParam_0p0::DestructibleActorParam_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p0::~DestructibleActorParam_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p0::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.WORLD_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.grbVolumeLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); - HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.grbParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); - HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[13]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(9); - Children[8] = PDEF_PTR(11); - Children[9] = PDEF_PTR(50); - Children[10] = PDEF_PTR(60); - Children[11] = PDEF_PTR(94); - Children[12] = PDEF_PTR(123); - - ParamDefTable[0].setChildren(Children, 13); - } - - // SetChildren for: nodeIndex=7, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=9, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(10); - - ParamDefTable[9].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=11, longName="destructibleParameters" - { - static Definition* Children[25]; - Children[0] = PDEF_PTR(12); - Children[1] = PDEF_PTR(13); - Children[2] = PDEF_PTR(14); - Children[3] = PDEF_PTR(15); - Children[4] = PDEF_PTR(16); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - Children[11] = PDEF_PTR(23); - Children[12] = PDEF_PTR(24); - Children[13] = PDEF_PTR(25); - Children[14] = PDEF_PTR(26); - Children[15] = PDEF_PTR(27); - Children[16] = PDEF_PTR(28); - Children[17] = PDEF_PTR(29); - Children[18] = PDEF_PTR(30); - Children[19] = PDEF_PTR(31); - Children[20] = PDEF_PTR(40); - Children[21] = PDEF_PTR(41); - Children[22] = PDEF_PTR(42); - Children[23] = PDEF_PTR(43); - Children[24] = PDEF_PTR(44); - - ParamDefTable[11].setChildren(Children, 25); - } - - // SetChildren for: nodeIndex=31, longName="destructibleParameters.flags" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - Children[3] = PDEF_PTR(35); - Children[4] = PDEF_PTR(36); - Children[5] = PDEF_PTR(37); - Children[6] = PDEF_PTR(38); - Children[7] = PDEF_PTR(39); - - ParamDefTable[31].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - - ParamDefTable[44].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(51); - - ParamDefTable[50].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(52); - Children[1] = PDEF_PTR(53); - Children[2] = PDEF_PTR(54); - Children[3] = PDEF_PTR(55); - Children[4] = PDEF_PTR(56); - Children[5] = PDEF_PTR(57); - Children[6] = PDEF_PTR(58); - Children[7] = PDEF_PTR(59); - - ParamDefTable[51].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=60, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(61); - Children[1] = PDEF_PTR(82); - Children[2] = PDEF_PTR(83); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - Children[5] = PDEF_PTR(91); - Children[6] = PDEF_PTR(92); - Children[7] = PDEF_PTR(93); - - ParamDefTable[60].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=61, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(62); - Children[1] = PDEF_PTR(63); - Children[2] = PDEF_PTR(64); - Children[3] = PDEF_PTR(65); - Children[4] = PDEF_PTR(66); - Children[5] = PDEF_PTR(67); - Children[6] = PDEF_PTR(68); - Children[7] = PDEF_PTR(69); - Children[8] = PDEF_PTR(70); - Children[9] = PDEF_PTR(71); - Children[10] = PDEF_PTR(72); - Children[11] = PDEF_PTR(73); - Children[12] = PDEF_PTR(74); - Children[13] = PDEF_PTR(75); - Children[14] = PDEF_PTR(76); - Children[15] = PDEF_PTR(77); - Children[16] = PDEF_PTR(78); - Children[17] = PDEF_PTR(79); - Children[18] = PDEF_PTR(80); - Children[19] = PDEF_PTR(81); - - ParamDefTable[61].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=83, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - - ParamDefTable[83].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=94, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(95); - Children[1] = PDEF_PTR(103); - Children[2] = PDEF_PTR(104); - Children[3] = PDEF_PTR(105); - Children[4] = PDEF_PTR(106); - Children[5] = PDEF_PTR(119); - Children[6] = PDEF_PTR(120); - Children[7] = PDEF_PTR(121); - Children[8] = PDEF_PTR(122); - - ParamDefTable[94].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=95, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(97); - Children[2] = PDEF_PTR(98); - Children[3] = PDEF_PTR(99); - Children[4] = PDEF_PTR(100); - Children[5] = PDEF_PTR(101); - Children[6] = PDEF_PTR(102); - - ParamDefTable[95].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(107); - Children[1] = PDEF_PTR(108); - Children[2] = PDEF_PTR(109); - Children[3] = PDEF_PTR(110); - Children[4] = PDEF_PTR(111); - Children[5] = PDEF_PTR(112); - Children[6] = PDEF_PTR(113); - Children[7] = PDEF_PTR(114); - Children[8] = PDEF_PTR(115); - Children[9] = PDEF_PTR(116); - Children[10] = PDEF_PTR(117); - Children[11] = PDEF_PTR(118); - - ParamDefTable[106].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=123, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(124); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - Children[4] = PDEF_PTR(132); - Children[5] = PDEF_PTR(133); - Children[6] = PDEF_PTR(134); - Children[7] = PDEF_PTR(135); - Children[8] = PDEF_PTR(136); - Children[9] = PDEF_PTR(137); - Children[10] = PDEF_PTR(138); - Children[11] = PDEF_PTR(139); - - ParamDefTable[123].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=124, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(125); - Children[1] = PDEF_PTR(126); - Children[2] = PDEF_PTR(127); - Children[3] = PDEF_PTR(128); - - ParamDefTable[124].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p0::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p0::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.formExtendedStructures = uint32_t(0); - destructibleParameters.supportDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.massScaleExponent = float(0.5); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); - destructibleParameters.flags.WORLD_SUPPORT = bool(false); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.grbVolumeLimit = float(0.2); - destructibleParameters.grbParticleSpacing = float(0.1); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p0::initReferences(void) -{ -} - -void DestructibleActorParam_0p0::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p0::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p0NS; + +const char* const DestructibleActorParam_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 140; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 9, 11, 50, 60, 94, 123, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 40, 41, 42, 43, 44, 32, 33, 34, 35, + 36, 37, 38, 39, 45, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 61, 82, 83, + 89, 90, 91, 92, 93, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 84, 85, 86, 87, 88, 95, 103, 104, 105, 106, 119, 120, 121, 122, 96, + 97, 98, 99, 100, 101, 102, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 124, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 125, 126, 127, 128, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 13 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(13), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(14), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(15), 25 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(40), 8 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(48), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(53), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(54), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(62), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(70), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(90), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(95), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(104), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(111), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(123), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(135), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold +}; + + +bool DestructibleActorParam_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p0::mBuiltFlagMutex; + +DestructibleActorParam_0p0::DestructibleActorParam_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p0::~DestructibleActorParam_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p0::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.WORLD_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.grbVolumeLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); + HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.grbParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); + HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[13]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(9); + Children[8] = PDEF_PTR(11); + Children[9] = PDEF_PTR(50); + Children[10] = PDEF_PTR(60); + Children[11] = PDEF_PTR(94); + Children[12] = PDEF_PTR(123); + + ParamDefTable[0].setChildren(Children, 13); + } + + // SetChildren for: nodeIndex=7, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=9, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(10); + + ParamDefTable[9].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=11, longName="destructibleParameters" + { + static Definition* Children[25]; + Children[0] = PDEF_PTR(12); + Children[1] = PDEF_PTR(13); + Children[2] = PDEF_PTR(14); + Children[3] = PDEF_PTR(15); + Children[4] = PDEF_PTR(16); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + Children[11] = PDEF_PTR(23); + Children[12] = PDEF_PTR(24); + Children[13] = PDEF_PTR(25); + Children[14] = PDEF_PTR(26); + Children[15] = PDEF_PTR(27); + Children[16] = PDEF_PTR(28); + Children[17] = PDEF_PTR(29); + Children[18] = PDEF_PTR(30); + Children[19] = PDEF_PTR(31); + Children[20] = PDEF_PTR(40); + Children[21] = PDEF_PTR(41); + Children[22] = PDEF_PTR(42); + Children[23] = PDEF_PTR(43); + Children[24] = PDEF_PTR(44); + + ParamDefTable[11].setChildren(Children, 25); + } + + // SetChildren for: nodeIndex=31, longName="destructibleParameters.flags" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + Children[3] = PDEF_PTR(35); + Children[4] = PDEF_PTR(36); + Children[5] = PDEF_PTR(37); + Children[6] = PDEF_PTR(38); + Children[7] = PDEF_PTR(39); + + ParamDefTable[31].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + + ParamDefTable[44].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(51); + + ParamDefTable[50].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(52); + Children[1] = PDEF_PTR(53); + Children[2] = PDEF_PTR(54); + Children[3] = PDEF_PTR(55); + Children[4] = PDEF_PTR(56); + Children[5] = PDEF_PTR(57); + Children[6] = PDEF_PTR(58); + Children[7] = PDEF_PTR(59); + + ParamDefTable[51].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=60, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(61); + Children[1] = PDEF_PTR(82); + Children[2] = PDEF_PTR(83); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + Children[5] = PDEF_PTR(91); + Children[6] = PDEF_PTR(92); + Children[7] = PDEF_PTR(93); + + ParamDefTable[60].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=61, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(62); + Children[1] = PDEF_PTR(63); + Children[2] = PDEF_PTR(64); + Children[3] = PDEF_PTR(65); + Children[4] = PDEF_PTR(66); + Children[5] = PDEF_PTR(67); + Children[6] = PDEF_PTR(68); + Children[7] = PDEF_PTR(69); + Children[8] = PDEF_PTR(70); + Children[9] = PDEF_PTR(71); + Children[10] = PDEF_PTR(72); + Children[11] = PDEF_PTR(73); + Children[12] = PDEF_PTR(74); + Children[13] = PDEF_PTR(75); + Children[14] = PDEF_PTR(76); + Children[15] = PDEF_PTR(77); + Children[16] = PDEF_PTR(78); + Children[17] = PDEF_PTR(79); + Children[18] = PDEF_PTR(80); + Children[19] = PDEF_PTR(81); + + ParamDefTable[61].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=83, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + + ParamDefTable[83].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=94, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(95); + Children[1] = PDEF_PTR(103); + Children[2] = PDEF_PTR(104); + Children[3] = PDEF_PTR(105); + Children[4] = PDEF_PTR(106); + Children[5] = PDEF_PTR(119); + Children[6] = PDEF_PTR(120); + Children[7] = PDEF_PTR(121); + Children[8] = PDEF_PTR(122); + + ParamDefTable[94].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=95, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(97); + Children[2] = PDEF_PTR(98); + Children[3] = PDEF_PTR(99); + Children[4] = PDEF_PTR(100); + Children[5] = PDEF_PTR(101); + Children[6] = PDEF_PTR(102); + + ParamDefTable[95].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(107); + Children[1] = PDEF_PTR(108); + Children[2] = PDEF_PTR(109); + Children[3] = PDEF_PTR(110); + Children[4] = PDEF_PTR(111); + Children[5] = PDEF_PTR(112); + Children[6] = PDEF_PTR(113); + Children[7] = PDEF_PTR(114); + Children[8] = PDEF_PTR(115); + Children[9] = PDEF_PTR(116); + Children[10] = PDEF_PTR(117); + Children[11] = PDEF_PTR(118); + + ParamDefTable[106].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=123, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(124); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + Children[4] = PDEF_PTR(132); + Children[5] = PDEF_PTR(133); + Children[6] = PDEF_PTR(134); + Children[7] = PDEF_PTR(135); + Children[8] = PDEF_PTR(136); + Children[9] = PDEF_PTR(137); + Children[10] = PDEF_PTR(138); + Children[11] = PDEF_PTR(139); + + ParamDefTable[123].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=124, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(125); + Children[1] = PDEF_PTR(126); + Children[2] = PDEF_PTR(127); + Children[3] = PDEF_PTR(128); + + ParamDefTable[124].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p0::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p0::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.formExtendedStructures = uint32_t(0); + destructibleParameters.supportDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.massScaleExponent = float(0.5); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); + destructibleParameters.flags.WORLD_SUPPORT = bool(false); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.grbVolumeLimit = float(0.2); + destructibleParameters.grbParticleSpacing = float(0.1); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p0::initReferences(void) +{ +} + +void DestructibleActorParam_0p0::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p0::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p1.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p1.cpp old mode 100644 new mode 100755 index 1678886..dd99fec --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p1.cpp @@ -1,4102 +1,4102 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p1NS; - -const char* const DestructibleActorParam_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 141; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 9, 11, 51, 61, 95, 124, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 41, 42, 43, 44, 45, 33, 34, 35, - 36, 37, 38, 39, 40, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 83, - 84, 90, 91, 92, 93, 94, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 96, 104, 105, 106, 107, 120, 121, 122, 123, - 97, 98, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 125, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 126, 127, 128, - 129, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 13 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(13), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(14), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(15), 26 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(41), 8 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(49), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(54), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(55), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold -}; - - -bool DestructibleActorParam_0p1::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p1::mBuiltFlagMutex; - -DestructibleActorParam_0p1::DestructibleActorParam_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p1::~DestructibleActorParam_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p1::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.WORLD_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.grbVolumeLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); - HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.grbParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); - HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call #NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[13]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(9); - Children[8] = PDEF_PTR(11); - Children[9] = PDEF_PTR(51); - Children[10] = PDEF_PTR(61); - Children[11] = PDEF_PTR(95); - Children[12] = PDEF_PTR(124); - - ParamDefTable[0].setChildren(Children, 13); - } - - // SetChildren for: nodeIndex=7, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=9, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(10); - - ParamDefTable[9].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=11, longName="destructibleParameters" - { - static Definition* Children[26]; - Children[0] = PDEF_PTR(12); - Children[1] = PDEF_PTR(13); - Children[2] = PDEF_PTR(14); - Children[3] = PDEF_PTR(15); - Children[4] = PDEF_PTR(16); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - Children[11] = PDEF_PTR(23); - Children[12] = PDEF_PTR(24); - Children[13] = PDEF_PTR(25); - Children[14] = PDEF_PTR(26); - Children[15] = PDEF_PTR(27); - Children[16] = PDEF_PTR(28); - Children[17] = PDEF_PTR(29); - Children[18] = PDEF_PTR(30); - Children[19] = PDEF_PTR(31); - Children[20] = PDEF_PTR(32); - Children[21] = PDEF_PTR(41); - Children[22] = PDEF_PTR(42); - Children[23] = PDEF_PTR(43); - Children[24] = PDEF_PTR(44); - Children[25] = PDEF_PTR(45); - - ParamDefTable[11].setChildren(Children, 26); - } - - // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - Children[3] = PDEF_PTR(36); - Children[4] = PDEF_PTR(37); - Children[5] = PDEF_PTR(38); - Children[6] = PDEF_PTR(39); - Children[7] = PDEF_PTR(40); - - ParamDefTable[32].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - - ParamDefTable[52].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=61, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(62); - Children[1] = PDEF_PTR(83); - Children[2] = PDEF_PTR(84); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - Children[5] = PDEF_PTR(92); - Children[6] = PDEF_PTR(93); - Children[7] = PDEF_PTR(94); - - ParamDefTable[61].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=62, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(64); - Children[2] = PDEF_PTR(65); - Children[3] = PDEF_PTR(66); - Children[4] = PDEF_PTR(67); - Children[5] = PDEF_PTR(68); - Children[6] = PDEF_PTR(69); - Children[7] = PDEF_PTR(70); - Children[8] = PDEF_PTR(71); - Children[9] = PDEF_PTR(72); - Children[10] = PDEF_PTR(73); - Children[11] = PDEF_PTR(74); - Children[12] = PDEF_PTR(75); - Children[13] = PDEF_PTR(76); - Children[14] = PDEF_PTR(77); - Children[15] = PDEF_PTR(78); - Children[16] = PDEF_PTR(79); - Children[17] = PDEF_PTR(80); - Children[18] = PDEF_PTR(81); - Children[19] = PDEF_PTR(82); - - ParamDefTable[62].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=84, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(85); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(88); - Children[4] = PDEF_PTR(89); - - ParamDefTable[84].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=95, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(104); - Children[2] = PDEF_PTR(105); - Children[3] = PDEF_PTR(106); - Children[4] = PDEF_PTR(107); - Children[5] = PDEF_PTR(120); - Children[6] = PDEF_PTR(121); - Children[7] = PDEF_PTR(122); - Children[8] = PDEF_PTR(123); - - ParamDefTable[95].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=96, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(98); - Children[2] = PDEF_PTR(99); - Children[3] = PDEF_PTR(100); - Children[4] = PDEF_PTR(101); - Children[5] = PDEF_PTR(102); - Children[6] = PDEF_PTR(103); - - ParamDefTable[96].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(108); - Children[1] = PDEF_PTR(109); - Children[2] = PDEF_PTR(110); - Children[3] = PDEF_PTR(111); - Children[4] = PDEF_PTR(112); - Children[5] = PDEF_PTR(113); - Children[6] = PDEF_PTR(114); - Children[7] = PDEF_PTR(115); - Children[8] = PDEF_PTR(116); - Children[9] = PDEF_PTR(117); - Children[10] = PDEF_PTR(118); - Children[11] = PDEF_PTR(119); - - ParamDefTable[107].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=124, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(125); - Children[1] = PDEF_PTR(130); - Children[2] = PDEF_PTR(131); - Children[3] = PDEF_PTR(132); - Children[4] = PDEF_PTR(133); - Children[5] = PDEF_PTR(134); - Children[6] = PDEF_PTR(135); - Children[7] = PDEF_PTR(136); - Children[8] = PDEF_PTR(137); - Children[9] = PDEF_PTR(138); - Children[10] = PDEF_PTR(139); - Children[11] = PDEF_PTR(140); - - ParamDefTable[124].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=125, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(126); - Children[1] = PDEF_PTR(127); - Children[2] = PDEF_PTR(128); - Children[3] = PDEF_PTR(129); - - ParamDefTable[125].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p1::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p1::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1,1,1)); - dynamic = bool(true); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.formExtendedStructures = uint32_t(0); - destructibleParameters.supportDepth = uint32_t(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000,-1000,-1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.massScaleExponent = float(0.5); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); - destructibleParameters.flags.WORLD_SUPPORT = bool(false); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.grbVolumeLimit = float(0.2); - destructibleParameters.grbParticleSpacing = float(0.1); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p1::initReferences(void) -{ -} - -void DestructibleActorParam_0p1::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p1::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p1::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p1NS; + +const char* const DestructibleActorParam_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 141; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 9, 11, 51, 61, 95, 124, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 41, 42, 43, 44, 45, 33, 34, 35, + 36, 37, 38, 39, 40, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 83, + 84, 90, 91, 92, 93, 94, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 96, 104, 105, 106, 107, 120, 121, 122, 123, + 97, 98, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 125, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 126, 127, 128, + 129, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 13 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(13), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(14), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(15), 26 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(41), 8 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(49), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(54), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(55), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold +}; + + +bool DestructibleActorParam_0p1::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p1::mBuiltFlagMutex; + +DestructibleActorParam_0p1::DestructibleActorParam_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p1::~DestructibleActorParam_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p1::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.WORLD_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.grbVolumeLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); + HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.grbParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); + HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call #NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[13]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(9); + Children[8] = PDEF_PTR(11); + Children[9] = PDEF_PTR(51); + Children[10] = PDEF_PTR(61); + Children[11] = PDEF_PTR(95); + Children[12] = PDEF_PTR(124); + + ParamDefTable[0].setChildren(Children, 13); + } + + // SetChildren for: nodeIndex=7, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=9, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(10); + + ParamDefTable[9].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=11, longName="destructibleParameters" + { + static Definition* Children[26]; + Children[0] = PDEF_PTR(12); + Children[1] = PDEF_PTR(13); + Children[2] = PDEF_PTR(14); + Children[3] = PDEF_PTR(15); + Children[4] = PDEF_PTR(16); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + Children[11] = PDEF_PTR(23); + Children[12] = PDEF_PTR(24); + Children[13] = PDEF_PTR(25); + Children[14] = PDEF_PTR(26); + Children[15] = PDEF_PTR(27); + Children[16] = PDEF_PTR(28); + Children[17] = PDEF_PTR(29); + Children[18] = PDEF_PTR(30); + Children[19] = PDEF_PTR(31); + Children[20] = PDEF_PTR(32); + Children[21] = PDEF_PTR(41); + Children[22] = PDEF_PTR(42); + Children[23] = PDEF_PTR(43); + Children[24] = PDEF_PTR(44); + Children[25] = PDEF_PTR(45); + + ParamDefTable[11].setChildren(Children, 26); + } + + // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + Children[3] = PDEF_PTR(36); + Children[4] = PDEF_PTR(37); + Children[5] = PDEF_PTR(38); + Children[6] = PDEF_PTR(39); + Children[7] = PDEF_PTR(40); + + ParamDefTable[32].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + + ParamDefTable[52].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=61, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(62); + Children[1] = PDEF_PTR(83); + Children[2] = PDEF_PTR(84); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + Children[5] = PDEF_PTR(92); + Children[6] = PDEF_PTR(93); + Children[7] = PDEF_PTR(94); + + ParamDefTable[61].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=62, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(64); + Children[2] = PDEF_PTR(65); + Children[3] = PDEF_PTR(66); + Children[4] = PDEF_PTR(67); + Children[5] = PDEF_PTR(68); + Children[6] = PDEF_PTR(69); + Children[7] = PDEF_PTR(70); + Children[8] = PDEF_PTR(71); + Children[9] = PDEF_PTR(72); + Children[10] = PDEF_PTR(73); + Children[11] = PDEF_PTR(74); + Children[12] = PDEF_PTR(75); + Children[13] = PDEF_PTR(76); + Children[14] = PDEF_PTR(77); + Children[15] = PDEF_PTR(78); + Children[16] = PDEF_PTR(79); + Children[17] = PDEF_PTR(80); + Children[18] = PDEF_PTR(81); + Children[19] = PDEF_PTR(82); + + ParamDefTable[62].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=84, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(85); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(88); + Children[4] = PDEF_PTR(89); + + ParamDefTable[84].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=95, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(104); + Children[2] = PDEF_PTR(105); + Children[3] = PDEF_PTR(106); + Children[4] = PDEF_PTR(107); + Children[5] = PDEF_PTR(120); + Children[6] = PDEF_PTR(121); + Children[7] = PDEF_PTR(122); + Children[8] = PDEF_PTR(123); + + ParamDefTable[95].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=96, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(98); + Children[2] = PDEF_PTR(99); + Children[3] = PDEF_PTR(100); + Children[4] = PDEF_PTR(101); + Children[5] = PDEF_PTR(102); + Children[6] = PDEF_PTR(103); + + ParamDefTable[96].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(108); + Children[1] = PDEF_PTR(109); + Children[2] = PDEF_PTR(110); + Children[3] = PDEF_PTR(111); + Children[4] = PDEF_PTR(112); + Children[5] = PDEF_PTR(113); + Children[6] = PDEF_PTR(114); + Children[7] = PDEF_PTR(115); + Children[8] = PDEF_PTR(116); + Children[9] = PDEF_PTR(117); + Children[10] = PDEF_PTR(118); + Children[11] = PDEF_PTR(119); + + ParamDefTable[107].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=124, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(125); + Children[1] = PDEF_PTR(130); + Children[2] = PDEF_PTR(131); + Children[3] = PDEF_PTR(132); + Children[4] = PDEF_PTR(133); + Children[5] = PDEF_PTR(134); + Children[6] = PDEF_PTR(135); + Children[7] = PDEF_PTR(136); + Children[8] = PDEF_PTR(137); + Children[9] = PDEF_PTR(138); + Children[10] = PDEF_PTR(139); + Children[11] = PDEF_PTR(140); + + ParamDefTable[124].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=125, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(126); + Children[1] = PDEF_PTR(127); + Children[2] = PDEF_PTR(128); + Children[3] = PDEF_PTR(129); + + ParamDefTable[125].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p1::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p1::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1,1,1)); + dynamic = bool(true); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.formExtendedStructures = uint32_t(0); + destructibleParameters.supportDepth = uint32_t(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000,-1000,-1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.massScaleExponent = float(0.5); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); + destructibleParameters.flags.WORLD_SUPPORT = bool(false); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.grbVolumeLimit = float(0.2); + destructibleParameters.grbParticleSpacing = float(0.1); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p1::initReferences(void) +{ +} + +void DestructibleActorParam_0p1::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p1::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p1::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p10.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p10.cpp old mode 100644 new mode 100755 index 2b3eb85..be0315b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p10.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p10.cpp @@ -1,5878 +1,5878 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p10.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p10NS; - -const char* const DestructibleActorParam_0p10Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 207; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 52, 63, 97, 126, 143, - 167, 195, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 44, 45, 46, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, 106, 107, - 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, 145, 146, - 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, 173, 174, - 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 198, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(24), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(25), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(47), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(53), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(58), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(59), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(68), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(76), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(96), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(101), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(110), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(117), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(129), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(141), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(145), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(153), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(160), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(164), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(168), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(175), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(178), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(195), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(205), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p10::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p10::mBuiltFlagMutex; - -DestructibleActorParam_0p10::DestructibleActorParam_0p10(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p10FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p10::~DestructibleActorParam_0p10() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p10::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p10(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p10::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p10::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p10* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p10::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p10::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p10::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p10::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p10::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(52); - Children[18] = PDEF_PTR(63); - Children[19] = PDEF_PTR(97); - Children[20] = PDEF_PTR(126); - Children[21] = PDEF_PTR(143); - Children[22] = PDEF_PTR(167); - Children[23] = PDEF_PTR(195); - - ParamDefTable[0].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(20); - Children[1] = PDEF_PTR(21); - Children[2] = PDEF_PTR(22); - Children[3] = PDEF_PTR(23); - Children[4] = PDEF_PTR(24); - Children[5] = PDEF_PTR(25); - Children[6] = PDEF_PTR(26); - Children[7] = PDEF_PTR(27); - Children[8] = PDEF_PTR(28); - Children[9] = PDEF_PTR(29); - Children[10] = PDEF_PTR(30); - Children[11] = PDEF_PTR(31); - Children[12] = PDEF_PTR(32); - Children[13] = PDEF_PTR(33); - Children[14] = PDEF_PTR(34); - Children[15] = PDEF_PTR(35); - Children[16] = PDEF_PTR(36); - Children[17] = PDEF_PTR(37); - Children[18] = PDEF_PTR(44); - Children[19] = PDEF_PTR(45); - Children[20] = PDEF_PTR(46); - - ParamDefTable[19].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=37, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(38); - Children[1] = PDEF_PTR(39); - Children[2] = PDEF_PTR(40); - Children[3] = PDEF_PTR(41); - Children[4] = PDEF_PTR(42); - Children[5] = PDEF_PTR(43); - - ParamDefTable[37].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(47); - Children[1] = PDEF_PTR(48); - Children[2] = PDEF_PTR(49); - Children[3] = PDEF_PTR(50); - Children[4] = PDEF_PTR(51); - - ParamDefTable[46].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(53); - - ParamDefTable[52].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(60); - Children[7] = PDEF_PTR(61); - Children[8] = PDEF_PTR(62); - - ParamDefTable[53].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(92); - Children[4] = PDEF_PTR(93); - Children[5] = PDEF_PTR(94); - Children[6] = PDEF_PTR(95); - Children[7] = PDEF_PTR(96); - - ParamDefTable[63].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(66); - Children[2] = PDEF_PTR(67); - Children[3] = PDEF_PTR(68); - Children[4] = PDEF_PTR(69); - Children[5] = PDEF_PTR(70); - Children[6] = PDEF_PTR(71); - Children[7] = PDEF_PTR(72); - Children[8] = PDEF_PTR(73); - Children[9] = PDEF_PTR(74); - Children[10] = PDEF_PTR(75); - Children[11] = PDEF_PTR(76); - Children[12] = PDEF_PTR(77); - Children[13] = PDEF_PTR(78); - Children[14] = PDEF_PTR(79); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - Children[19] = PDEF_PTR(84); - - ParamDefTable[64].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - - ParamDefTable[86].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=97, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - Children[4] = PDEF_PTR(109); - Children[5] = PDEF_PTR(122); - Children[6] = PDEF_PTR(123); - Children[7] = PDEF_PTR(124); - Children[8] = PDEF_PTR(125); - - ParamDefTable[97].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - Children[5] = PDEF_PTR(104); - Children[6] = PDEF_PTR(105); - - ParamDefTable[98].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - Children[6] = PDEF_PTR(116); - Children[7] = PDEF_PTR(117); - Children[8] = PDEF_PTR(118); - Children[9] = PDEF_PTR(119); - Children[10] = PDEF_PTR(120); - Children[11] = PDEF_PTR(121); - - ParamDefTable[109].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - Children[7] = PDEF_PTR(138); - Children[8] = PDEF_PTR(139); - Children[9] = PDEF_PTR(140); - Children[10] = PDEF_PTR(141); - Children[11] = PDEF_PTR(142); - - ParamDefTable[126].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - - ParamDefTable[127].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(144); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(162); - Children[4] = PDEF_PTR(163); - Children[5] = PDEF_PTR(164); - Children[6] = PDEF_PTR(165); - Children[7] = PDEF_PTR(166); - - ParamDefTable[143].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(146); - Children[2] = PDEF_PTR(147); - Children[3] = PDEF_PTR(148); - Children[4] = PDEF_PTR(149); - Children[5] = PDEF_PTR(150); - Children[6] = PDEF_PTR(151); - - ParamDefTable[144].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(158); - Children[1] = PDEF_PTR(159); - Children[2] = PDEF_PTR(160); - Children[3] = PDEF_PTR(161); - - ParamDefTable[157].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(193); - Children[6] = PDEF_PTR(194); - - ParamDefTable[167].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(170); - Children[2] = PDEF_PTR(171); - - ParamDefTable[168].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(177); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(179); - Children[4] = PDEF_PTR(180); - Children[5] = PDEF_PTR(181); - Children[6] = PDEF_PTR(182); - Children[7] = PDEF_PTR(183); - Children[8] = PDEF_PTR(184); - Children[9] = PDEF_PTR(185); - Children[10] = PDEF_PTR(186); - Children[11] = PDEF_PTR(187); - Children[12] = PDEF_PTR(188); - Children[13] = PDEF_PTR(189); - Children[14] = PDEF_PTR(190); - Children[15] = PDEF_PTR(191); - Children[16] = PDEF_PTR(192); - - ParamDefTable[175].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(197); - Children[2] = PDEF_PTR(199); - Children[3] = PDEF_PTR(200); - Children[4] = PDEF_PTR(201); - Children[5] = PDEF_PTR(202); - Children[6] = PDEF_PTR(203); - Children[7] = PDEF_PTR(204); - Children[8] = PDEF_PTR(205); - Children[9] = PDEF_PTR(206); - - ParamDefTable[195].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(198); - - ParamDefTable[197].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p10::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p10::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p10::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p10::initReferences(void) -{ -} - -void DestructibleActorParam_0p10::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p10::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p10::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p10.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p10NS; + +const char* const DestructibleActorParam_0p10Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 207; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 52, 63, 97, 126, 143, + 167, 195, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 44, 45, 46, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, 106, 107, + 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, 145, 146, + 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, 173, 174, + 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, 206, 198, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(24), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(25), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(47), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(53), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(58), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(59), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(68), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(76), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(96), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(101), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(110), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(117), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(129), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(141), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(145), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(153), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(160), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(164), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(168), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(175), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(178), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(195), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(205), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p10::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p10::mBuiltFlagMutex; + +DestructibleActorParam_0p10::DestructibleActorParam_0p10(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p10FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p10::~DestructibleActorParam_0p10() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p10::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p10(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p10::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p10::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p10* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p10::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p10::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p10::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p10::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p10::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(52); + Children[18] = PDEF_PTR(63); + Children[19] = PDEF_PTR(97); + Children[20] = PDEF_PTR(126); + Children[21] = PDEF_PTR(143); + Children[22] = PDEF_PTR(167); + Children[23] = PDEF_PTR(195); + + ParamDefTable[0].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(20); + Children[1] = PDEF_PTR(21); + Children[2] = PDEF_PTR(22); + Children[3] = PDEF_PTR(23); + Children[4] = PDEF_PTR(24); + Children[5] = PDEF_PTR(25); + Children[6] = PDEF_PTR(26); + Children[7] = PDEF_PTR(27); + Children[8] = PDEF_PTR(28); + Children[9] = PDEF_PTR(29); + Children[10] = PDEF_PTR(30); + Children[11] = PDEF_PTR(31); + Children[12] = PDEF_PTR(32); + Children[13] = PDEF_PTR(33); + Children[14] = PDEF_PTR(34); + Children[15] = PDEF_PTR(35); + Children[16] = PDEF_PTR(36); + Children[17] = PDEF_PTR(37); + Children[18] = PDEF_PTR(44); + Children[19] = PDEF_PTR(45); + Children[20] = PDEF_PTR(46); + + ParamDefTable[19].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=37, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(38); + Children[1] = PDEF_PTR(39); + Children[2] = PDEF_PTR(40); + Children[3] = PDEF_PTR(41); + Children[4] = PDEF_PTR(42); + Children[5] = PDEF_PTR(43); + + ParamDefTable[37].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(47); + Children[1] = PDEF_PTR(48); + Children[2] = PDEF_PTR(49); + Children[3] = PDEF_PTR(50); + Children[4] = PDEF_PTR(51); + + ParamDefTable[46].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(53); + + ParamDefTable[52].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(60); + Children[7] = PDEF_PTR(61); + Children[8] = PDEF_PTR(62); + + ParamDefTable[53].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(92); + Children[4] = PDEF_PTR(93); + Children[5] = PDEF_PTR(94); + Children[6] = PDEF_PTR(95); + Children[7] = PDEF_PTR(96); + + ParamDefTable[63].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(66); + Children[2] = PDEF_PTR(67); + Children[3] = PDEF_PTR(68); + Children[4] = PDEF_PTR(69); + Children[5] = PDEF_PTR(70); + Children[6] = PDEF_PTR(71); + Children[7] = PDEF_PTR(72); + Children[8] = PDEF_PTR(73); + Children[9] = PDEF_PTR(74); + Children[10] = PDEF_PTR(75); + Children[11] = PDEF_PTR(76); + Children[12] = PDEF_PTR(77); + Children[13] = PDEF_PTR(78); + Children[14] = PDEF_PTR(79); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + Children[19] = PDEF_PTR(84); + + ParamDefTable[64].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + + ParamDefTable[86].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=97, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + Children[4] = PDEF_PTR(109); + Children[5] = PDEF_PTR(122); + Children[6] = PDEF_PTR(123); + Children[7] = PDEF_PTR(124); + Children[8] = PDEF_PTR(125); + + ParamDefTable[97].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + Children[5] = PDEF_PTR(104); + Children[6] = PDEF_PTR(105); + + ParamDefTable[98].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + Children[6] = PDEF_PTR(116); + Children[7] = PDEF_PTR(117); + Children[8] = PDEF_PTR(118); + Children[9] = PDEF_PTR(119); + Children[10] = PDEF_PTR(120); + Children[11] = PDEF_PTR(121); + + ParamDefTable[109].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + Children[7] = PDEF_PTR(138); + Children[8] = PDEF_PTR(139); + Children[9] = PDEF_PTR(140); + Children[10] = PDEF_PTR(141); + Children[11] = PDEF_PTR(142); + + ParamDefTable[126].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + + ParamDefTable[127].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(144); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(162); + Children[4] = PDEF_PTR(163); + Children[5] = PDEF_PTR(164); + Children[6] = PDEF_PTR(165); + Children[7] = PDEF_PTR(166); + + ParamDefTable[143].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(146); + Children[2] = PDEF_PTR(147); + Children[3] = PDEF_PTR(148); + Children[4] = PDEF_PTR(149); + Children[5] = PDEF_PTR(150); + Children[6] = PDEF_PTR(151); + + ParamDefTable[144].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(158); + Children[1] = PDEF_PTR(159); + Children[2] = PDEF_PTR(160); + Children[3] = PDEF_PTR(161); + + ParamDefTable[157].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(193); + Children[6] = PDEF_PTR(194); + + ParamDefTable[167].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(170); + Children[2] = PDEF_PTR(171); + + ParamDefTable[168].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(177); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(179); + Children[4] = PDEF_PTR(180); + Children[5] = PDEF_PTR(181); + Children[6] = PDEF_PTR(182); + Children[7] = PDEF_PTR(183); + Children[8] = PDEF_PTR(184); + Children[9] = PDEF_PTR(185); + Children[10] = PDEF_PTR(186); + Children[11] = PDEF_PTR(187); + Children[12] = PDEF_PTR(188); + Children[13] = PDEF_PTR(189); + Children[14] = PDEF_PTR(190); + Children[15] = PDEF_PTR(191); + Children[16] = PDEF_PTR(192); + + ParamDefTable[175].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(197); + Children[2] = PDEF_PTR(199); + Children[3] = PDEF_PTR(200); + Children[4] = PDEF_PTR(201); + Children[5] = PDEF_PTR(202); + Children[6] = PDEF_PTR(203); + Children[7] = PDEF_PTR(204); + Children[8] = PDEF_PTR(205); + Children[9] = PDEF_PTR(206); + + ParamDefTable[195].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(198); + + ParamDefTable[197].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p10::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p10::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p10::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p10::initReferences(void) +{ +} + +void DestructibleActorParam_0p10::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p10::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p10::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p11.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p11.cpp old mode 100644 new mode 100755 index 6093737..510a2de --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p11.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p11.cpp @@ -1,5904 +1,5904 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p11.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p11NS; - -const char* const DestructibleActorParam_0p11Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 208; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 53, 64, 98, 127, 144, - 168, 196, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 45, 46, 47, 39, 40, 41, 42, 43, 44, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, 99, 107, 108, - 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 129, 130, 131, 132, 145, 153, 158, 163, 164, 165, 166, 167, 146, 147, - 148, 149, 150, 151, 152, 154, 155, 156, 157, 159, 160, 161, 162, 169, 173, 174, 175, - 176, 194, 195, 170, 171, 172, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 197, 198, 200, 201, 202, 203, 204, 205, 206, 207, 199, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 25 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(25), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(26), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocitySmoothingFactor), NULL, 0 }, // sleepVelocitySmoothingFactor - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(27), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(48), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(54), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(59), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(60), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(69), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(77), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(97), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(102), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(111), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(118), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(130), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(142), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(146), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(154), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(161), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(165), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(169), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(176), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(179), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(196), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(206), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p11::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p11::mBuiltFlagMutex; - -DestructibleActorParam_0p11::DestructibleActorParam_0p11(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p11FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p11::~DestructibleActorParam_0p11() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p11::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p11(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p11::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p11::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p11* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p11::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p11::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p11::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p11::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p11::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocitySmoothingFactor" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocitySmoothingFactor", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How much to smooth actor velocities in sleep threshold determination. Valid range: [0,1). A value of 0 gives no smoothing, a value of one would\n mean that the current velocities are never used, so a value less than one should always be used.", true); - HintTable[1].init("shortDescription", "How much to smooth actor velocities in sleep threshold determination. Valid range: [0,1).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[25]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(53); - Children[19] = PDEF_PTR(64); - Children[20] = PDEF_PTR(98); - Children[21] = PDEF_PTR(127); - Children[22] = PDEF_PTR(144); - Children[23] = PDEF_PTR(168); - Children[24] = PDEF_PTR(196); - - ParamDefTable[0].setChildren(Children, 25); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=20, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(21); - Children[1] = PDEF_PTR(22); - Children[2] = PDEF_PTR(23); - Children[3] = PDEF_PTR(24); - Children[4] = PDEF_PTR(25); - Children[5] = PDEF_PTR(26); - Children[6] = PDEF_PTR(27); - Children[7] = PDEF_PTR(28); - Children[8] = PDEF_PTR(29); - Children[9] = PDEF_PTR(30); - Children[10] = PDEF_PTR(31); - Children[11] = PDEF_PTR(32); - Children[12] = PDEF_PTR(33); - Children[13] = PDEF_PTR(34); - Children[14] = PDEF_PTR(35); - Children[15] = PDEF_PTR(36); - Children[16] = PDEF_PTR(37); - Children[17] = PDEF_PTR(38); - Children[18] = PDEF_PTR(45); - Children[19] = PDEF_PTR(46); - Children[20] = PDEF_PTR(47); - - ParamDefTable[20].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(39); - Children[1] = PDEF_PTR(40); - Children[2] = PDEF_PTR(41); - Children[3] = PDEF_PTR(42); - Children[4] = PDEF_PTR(43); - Children[5] = PDEF_PTR(44); - - ParamDefTable[38].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(48); - Children[1] = PDEF_PTR(49); - Children[2] = PDEF_PTR(50); - Children[3] = PDEF_PTR(51); - Children[4] = PDEF_PTR(52); - - ParamDefTable[47].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=54, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(55); - Children[1] = PDEF_PTR(56); - Children[2] = PDEF_PTR(57); - Children[3] = PDEF_PTR(58); - Children[4] = PDEF_PTR(59); - Children[5] = PDEF_PTR(60); - Children[6] = PDEF_PTR(61); - Children[7] = PDEF_PTR(62); - Children[8] = PDEF_PTR(63); - - ParamDefTable[54].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - Children[5] = PDEF_PTR(95); - Children[6] = PDEF_PTR(96); - Children[7] = PDEF_PTR(97); - - ParamDefTable[64].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(67); - Children[2] = PDEF_PTR(68); - Children[3] = PDEF_PTR(69); - Children[4] = PDEF_PTR(70); - Children[5] = PDEF_PTR(71); - Children[6] = PDEF_PTR(72); - Children[7] = PDEF_PTR(73); - Children[8] = PDEF_PTR(74); - Children[9] = PDEF_PTR(75); - Children[10] = PDEF_PTR(76); - Children[11] = PDEF_PTR(77); - Children[12] = PDEF_PTR(78); - Children[13] = PDEF_PTR(79); - Children[14] = PDEF_PTR(80); - Children[15] = PDEF_PTR(81); - Children[16] = PDEF_PTR(82); - Children[17] = PDEF_PTR(83); - Children[18] = PDEF_PTR(84); - Children[19] = PDEF_PTR(85); - - ParamDefTable[65].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(88); - Children[1] = PDEF_PTR(89); - Children[2] = PDEF_PTR(90); - Children[3] = PDEF_PTR(91); - Children[4] = PDEF_PTR(92); - - ParamDefTable[87].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(107); - Children[2] = PDEF_PTR(108); - Children[3] = PDEF_PTR(109); - Children[4] = PDEF_PTR(110); - Children[5] = PDEF_PTR(123); - Children[6] = PDEF_PTR(124); - Children[7] = PDEF_PTR(125); - Children[8] = PDEF_PTR(126); - - ParamDefTable[98].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(100); - Children[1] = PDEF_PTR(101); - Children[2] = PDEF_PTR(102); - Children[3] = PDEF_PTR(103); - Children[4] = PDEF_PTR(104); - Children[5] = PDEF_PTR(105); - Children[6] = PDEF_PTR(106); - - ParamDefTable[99].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(111); - Children[1] = PDEF_PTR(112); - Children[2] = PDEF_PTR(113); - Children[3] = PDEF_PTR(114); - Children[4] = PDEF_PTR(115); - Children[5] = PDEF_PTR(116); - Children[6] = PDEF_PTR(117); - Children[7] = PDEF_PTR(118); - Children[8] = PDEF_PTR(119); - Children[9] = PDEF_PTR(120); - Children[10] = PDEF_PTR(121); - Children[11] = PDEF_PTR(122); - - ParamDefTable[110].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(133); - Children[2] = PDEF_PTR(134); - Children[3] = PDEF_PTR(135); - Children[4] = PDEF_PTR(136); - Children[5] = PDEF_PTR(137); - Children[6] = PDEF_PTR(138); - Children[7] = PDEF_PTR(139); - Children[8] = PDEF_PTR(140); - Children[9] = PDEF_PTR(141); - Children[10] = PDEF_PTR(142); - Children[11] = PDEF_PTR(143); - - ParamDefTable[127].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(130); - Children[2] = PDEF_PTR(131); - Children[3] = PDEF_PTR(132); - - ParamDefTable[128].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(153); - Children[2] = PDEF_PTR(158); - Children[3] = PDEF_PTR(163); - Children[4] = PDEF_PTR(164); - Children[5] = PDEF_PTR(165); - Children[6] = PDEF_PTR(166); - Children[7] = PDEF_PTR(167); - - ParamDefTable[144].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(146); - Children[1] = PDEF_PTR(147); - Children[2] = PDEF_PTR(148); - Children[3] = PDEF_PTR(149); - Children[4] = PDEF_PTR(150); - Children[5] = PDEF_PTR(151); - Children[6] = PDEF_PTR(152); - - ParamDefTable[145].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(154); - Children[1] = PDEF_PTR(155); - Children[2] = PDEF_PTR(156); - Children[3] = PDEF_PTR(157); - - ParamDefTable[153].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(159); - Children[1] = PDEF_PTR(160); - Children[2] = PDEF_PTR(161); - Children[3] = PDEF_PTR(162); - - ParamDefTable[158].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(173); - Children[2] = PDEF_PTR(174); - Children[3] = PDEF_PTR(175); - Children[4] = PDEF_PTR(176); - Children[5] = PDEF_PTR(194); - Children[6] = PDEF_PTR(195); - - ParamDefTable[168].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(170); - Children[1] = PDEF_PTR(171); - Children[2] = PDEF_PTR(172); - - ParamDefTable[169].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(178); - Children[2] = PDEF_PTR(179); - Children[3] = PDEF_PTR(180); - Children[4] = PDEF_PTR(181); - Children[5] = PDEF_PTR(182); - Children[6] = PDEF_PTR(183); - Children[7] = PDEF_PTR(184); - Children[8] = PDEF_PTR(185); - Children[9] = PDEF_PTR(186); - Children[10] = PDEF_PTR(187); - Children[11] = PDEF_PTR(188); - Children[12] = PDEF_PTR(189); - Children[13] = PDEF_PTR(190); - Children[14] = PDEF_PTR(191); - Children[15] = PDEF_PTR(192); - Children[16] = PDEF_PTR(193); - - ParamDefTable[176].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(197); - Children[1] = PDEF_PTR(198); - Children[2] = PDEF_PTR(200); - Children[3] = PDEF_PTR(201); - Children[4] = PDEF_PTR(202); - Children[5] = PDEF_PTR(203); - Children[6] = PDEF_PTR(204); - Children[7] = PDEF_PTR(205); - Children[8] = PDEF_PTR(206); - Children[9] = PDEF_PTR(207); - - ParamDefTable[196].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=198, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(199); - - ParamDefTable[198].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p11::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p11::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p11::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocitySmoothingFactor = float(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p11::initReferences(void) -{ -} - -void DestructibleActorParam_0p11::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p11::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p11::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p11.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p11NS; + +const char* const DestructibleActorParam_0p11Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 208; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 53, 64, 98, 127, 144, + 168, 196, 16, 18, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 45, 46, 47, 39, 40, 41, 42, 43, 44, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, 99, 107, 108, + 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 129, 130, 131, 132, 145, 153, 158, 163, 164, 165, 166, 167, 146, 147, + 148, 149, 150, 151, 152, 154, 155, 156, 157, 159, 160, 161, 162, 169, 173, 174, 175, + 176, 194, 195, 170, 171, 172, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 197, 198, 200, 201, 202, 203, 204, 205, 206, 207, 199, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 25 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(25), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(26), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocitySmoothingFactor), NULL, 0 }, // sleepVelocitySmoothingFactor + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(27), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(48), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(54), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(59), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(60), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(69), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(77), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(97), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(102), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(111), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(118), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(130), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(142), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(146), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(154), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(161), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(165), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(169), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(176), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(179), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(196), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(206), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p11::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p11::mBuiltFlagMutex; + +DestructibleActorParam_0p11::DestructibleActorParam_0p11(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p11FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p11::~DestructibleActorParam_0p11() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p11::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p11(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p11::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p11::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p11* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p11::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p11::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p11::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p11::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p11::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocitySmoothingFactor" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocitySmoothingFactor", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How much to smooth actor velocities in sleep threshold determination. Valid range: [0,1). A value of 0 gives no smoothing, a value of one would\n mean that the current velocities are never used, so a value less than one should always be used.", true); + HintTable[1].init("shortDescription", "How much to smooth actor velocities in sleep threshold determination. Valid range: [0,1).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[25]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(53); + Children[19] = PDEF_PTR(64); + Children[20] = PDEF_PTR(98); + Children[21] = PDEF_PTR(127); + Children[22] = PDEF_PTR(144); + Children[23] = PDEF_PTR(168); + Children[24] = PDEF_PTR(196); + + ParamDefTable[0].setChildren(Children, 25); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=20, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(21); + Children[1] = PDEF_PTR(22); + Children[2] = PDEF_PTR(23); + Children[3] = PDEF_PTR(24); + Children[4] = PDEF_PTR(25); + Children[5] = PDEF_PTR(26); + Children[6] = PDEF_PTR(27); + Children[7] = PDEF_PTR(28); + Children[8] = PDEF_PTR(29); + Children[9] = PDEF_PTR(30); + Children[10] = PDEF_PTR(31); + Children[11] = PDEF_PTR(32); + Children[12] = PDEF_PTR(33); + Children[13] = PDEF_PTR(34); + Children[14] = PDEF_PTR(35); + Children[15] = PDEF_PTR(36); + Children[16] = PDEF_PTR(37); + Children[17] = PDEF_PTR(38); + Children[18] = PDEF_PTR(45); + Children[19] = PDEF_PTR(46); + Children[20] = PDEF_PTR(47); + + ParamDefTable[20].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(39); + Children[1] = PDEF_PTR(40); + Children[2] = PDEF_PTR(41); + Children[3] = PDEF_PTR(42); + Children[4] = PDEF_PTR(43); + Children[5] = PDEF_PTR(44); + + ParamDefTable[38].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(48); + Children[1] = PDEF_PTR(49); + Children[2] = PDEF_PTR(50); + Children[3] = PDEF_PTR(51); + Children[4] = PDEF_PTR(52); + + ParamDefTable[47].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=54, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(55); + Children[1] = PDEF_PTR(56); + Children[2] = PDEF_PTR(57); + Children[3] = PDEF_PTR(58); + Children[4] = PDEF_PTR(59); + Children[5] = PDEF_PTR(60); + Children[6] = PDEF_PTR(61); + Children[7] = PDEF_PTR(62); + Children[8] = PDEF_PTR(63); + + ParamDefTable[54].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + Children[5] = PDEF_PTR(95); + Children[6] = PDEF_PTR(96); + Children[7] = PDEF_PTR(97); + + ParamDefTable[64].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(67); + Children[2] = PDEF_PTR(68); + Children[3] = PDEF_PTR(69); + Children[4] = PDEF_PTR(70); + Children[5] = PDEF_PTR(71); + Children[6] = PDEF_PTR(72); + Children[7] = PDEF_PTR(73); + Children[8] = PDEF_PTR(74); + Children[9] = PDEF_PTR(75); + Children[10] = PDEF_PTR(76); + Children[11] = PDEF_PTR(77); + Children[12] = PDEF_PTR(78); + Children[13] = PDEF_PTR(79); + Children[14] = PDEF_PTR(80); + Children[15] = PDEF_PTR(81); + Children[16] = PDEF_PTR(82); + Children[17] = PDEF_PTR(83); + Children[18] = PDEF_PTR(84); + Children[19] = PDEF_PTR(85); + + ParamDefTable[65].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(88); + Children[1] = PDEF_PTR(89); + Children[2] = PDEF_PTR(90); + Children[3] = PDEF_PTR(91); + Children[4] = PDEF_PTR(92); + + ParamDefTable[87].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(107); + Children[2] = PDEF_PTR(108); + Children[3] = PDEF_PTR(109); + Children[4] = PDEF_PTR(110); + Children[5] = PDEF_PTR(123); + Children[6] = PDEF_PTR(124); + Children[7] = PDEF_PTR(125); + Children[8] = PDEF_PTR(126); + + ParamDefTable[98].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(100); + Children[1] = PDEF_PTR(101); + Children[2] = PDEF_PTR(102); + Children[3] = PDEF_PTR(103); + Children[4] = PDEF_PTR(104); + Children[5] = PDEF_PTR(105); + Children[6] = PDEF_PTR(106); + + ParamDefTable[99].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(111); + Children[1] = PDEF_PTR(112); + Children[2] = PDEF_PTR(113); + Children[3] = PDEF_PTR(114); + Children[4] = PDEF_PTR(115); + Children[5] = PDEF_PTR(116); + Children[6] = PDEF_PTR(117); + Children[7] = PDEF_PTR(118); + Children[8] = PDEF_PTR(119); + Children[9] = PDEF_PTR(120); + Children[10] = PDEF_PTR(121); + Children[11] = PDEF_PTR(122); + + ParamDefTable[110].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(133); + Children[2] = PDEF_PTR(134); + Children[3] = PDEF_PTR(135); + Children[4] = PDEF_PTR(136); + Children[5] = PDEF_PTR(137); + Children[6] = PDEF_PTR(138); + Children[7] = PDEF_PTR(139); + Children[8] = PDEF_PTR(140); + Children[9] = PDEF_PTR(141); + Children[10] = PDEF_PTR(142); + Children[11] = PDEF_PTR(143); + + ParamDefTable[127].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(130); + Children[2] = PDEF_PTR(131); + Children[3] = PDEF_PTR(132); + + ParamDefTable[128].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(153); + Children[2] = PDEF_PTR(158); + Children[3] = PDEF_PTR(163); + Children[4] = PDEF_PTR(164); + Children[5] = PDEF_PTR(165); + Children[6] = PDEF_PTR(166); + Children[7] = PDEF_PTR(167); + + ParamDefTable[144].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(146); + Children[1] = PDEF_PTR(147); + Children[2] = PDEF_PTR(148); + Children[3] = PDEF_PTR(149); + Children[4] = PDEF_PTR(150); + Children[5] = PDEF_PTR(151); + Children[6] = PDEF_PTR(152); + + ParamDefTable[145].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(154); + Children[1] = PDEF_PTR(155); + Children[2] = PDEF_PTR(156); + Children[3] = PDEF_PTR(157); + + ParamDefTable[153].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(159); + Children[1] = PDEF_PTR(160); + Children[2] = PDEF_PTR(161); + Children[3] = PDEF_PTR(162); + + ParamDefTable[158].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(173); + Children[2] = PDEF_PTR(174); + Children[3] = PDEF_PTR(175); + Children[4] = PDEF_PTR(176); + Children[5] = PDEF_PTR(194); + Children[6] = PDEF_PTR(195); + + ParamDefTable[168].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(170); + Children[1] = PDEF_PTR(171); + Children[2] = PDEF_PTR(172); + + ParamDefTable[169].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(178); + Children[2] = PDEF_PTR(179); + Children[3] = PDEF_PTR(180); + Children[4] = PDEF_PTR(181); + Children[5] = PDEF_PTR(182); + Children[6] = PDEF_PTR(183); + Children[7] = PDEF_PTR(184); + Children[8] = PDEF_PTR(185); + Children[9] = PDEF_PTR(186); + Children[10] = PDEF_PTR(187); + Children[11] = PDEF_PTR(188); + Children[12] = PDEF_PTR(189); + Children[13] = PDEF_PTR(190); + Children[14] = PDEF_PTR(191); + Children[15] = PDEF_PTR(192); + Children[16] = PDEF_PTR(193); + + ParamDefTable[176].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(197); + Children[1] = PDEF_PTR(198); + Children[2] = PDEF_PTR(200); + Children[3] = PDEF_PTR(201); + Children[4] = PDEF_PTR(202); + Children[5] = PDEF_PTR(203); + Children[6] = PDEF_PTR(204); + Children[7] = PDEF_PTR(205); + Children[8] = PDEF_PTR(206); + Children[9] = PDEF_PTR(207); + + ParamDefTable[196].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=198, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(199); + + ParamDefTable[198].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p11::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p11::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p11::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocitySmoothingFactor = float(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p11::initReferences(void) +{ +} + +void DestructibleActorParam_0p11::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p11::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p11::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p12.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p12.cpp old mode 100644 new mode 100755 index 704deab..db7f95c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p12.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p12.cpp @@ -1,5931 +1,5931 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p12.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p12NS; - -const char* const DestructibleActorParam_0p12Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 209; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 54, 65, 99, 128, - 145, 169, 197, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 46, 47, 48, 40, 41, 42, 43, 44, 45, 49, 50, 51, 52, 53, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 66, 87, 88, 94, 95, 96, 97, 98, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 100, 108, - 109, 110, 111, 124, 125, 126, 127, 101, 102, 103, 104, 105, 106, 107, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 129, 134, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 130, 131, 132, 133, 146, 154, 159, 164, 165, 166, 167, 168, 147, - 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 170, 174, 175, - 176, 177, 195, 196, 171, 172, 173, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, - 200, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 26 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(26), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(27), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(28), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(55), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(60), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(61), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(70), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(78), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(98), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(103), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(112), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(119), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(131), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(143), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(147), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(155), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(162), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(166), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(170), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(177), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(180), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(197), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(207), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p12::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p12::mBuiltFlagMutex; - -DestructibleActorParam_0p12::DestructibleActorParam_0p12(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p12FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p12::~DestructibleActorParam_0p12() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p12::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p12(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p12::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p12::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p12* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p12::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p12::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p12::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p12::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p12::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[26]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(54); - Children[20] = PDEF_PTR(65); - Children[21] = PDEF_PTR(99); - Children[22] = PDEF_PTR(128); - Children[23] = PDEF_PTR(145); - Children[24] = PDEF_PTR(169); - Children[25] = PDEF_PTR(197); - - ParamDefTable[0].setChildren(Children, 26); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(37); - Children[16] = PDEF_PTR(38); - Children[17] = PDEF_PTR(39); - Children[18] = PDEF_PTR(46); - Children[19] = PDEF_PTR(47); - Children[20] = PDEF_PTR(48); - - ParamDefTable[21].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - - ParamDefTable[39].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(49); - Children[1] = PDEF_PTR(50); - Children[2] = PDEF_PTR(51); - Children[3] = PDEF_PTR(52); - Children[4] = PDEF_PTR(53); - - ParamDefTable[48].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=54, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(55); - - ParamDefTable[54].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=55, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(62); - Children[7] = PDEF_PTR(63); - Children[8] = PDEF_PTR(64); - - ParamDefTable[55].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=65, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(94); - Children[4] = PDEF_PTR(95); - Children[5] = PDEF_PTR(96); - Children[6] = PDEF_PTR(97); - Children[7] = PDEF_PTR(98); - - ParamDefTable[65].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=66, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(67); - Children[1] = PDEF_PTR(68); - Children[2] = PDEF_PTR(69); - Children[3] = PDEF_PTR(70); - Children[4] = PDEF_PTR(71); - Children[5] = PDEF_PTR(72); - Children[6] = PDEF_PTR(73); - Children[7] = PDEF_PTR(74); - Children[8] = PDEF_PTR(75); - Children[9] = PDEF_PTR(76); - Children[10] = PDEF_PTR(77); - Children[11] = PDEF_PTR(78); - Children[12] = PDEF_PTR(79); - Children[13] = PDEF_PTR(80); - Children[14] = PDEF_PTR(81); - Children[15] = PDEF_PTR(82); - Children[16] = PDEF_PTR(83); - Children[17] = PDEF_PTR(84); - Children[18] = PDEF_PTR(85); - Children[19] = PDEF_PTR(86); - - ParamDefTable[66].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=88, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(89); - Children[1] = PDEF_PTR(90); - Children[2] = PDEF_PTR(91); - Children[3] = PDEF_PTR(92); - Children[4] = PDEF_PTR(93); - - ParamDefTable[88].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=99, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(100); - Children[1] = PDEF_PTR(108); - Children[2] = PDEF_PTR(109); - Children[3] = PDEF_PTR(110); - Children[4] = PDEF_PTR(111); - Children[5] = PDEF_PTR(124); - Children[6] = PDEF_PTR(125); - Children[7] = PDEF_PTR(126); - Children[8] = PDEF_PTR(127); - - ParamDefTable[99].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=100, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(101); - Children[1] = PDEF_PTR(102); - Children[2] = PDEF_PTR(103); - Children[3] = PDEF_PTR(104); - Children[4] = PDEF_PTR(105); - Children[5] = PDEF_PTR(106); - Children[6] = PDEF_PTR(107); - - ParamDefTable[100].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(112); - Children[1] = PDEF_PTR(113); - Children[2] = PDEF_PTR(114); - Children[3] = PDEF_PTR(115); - Children[4] = PDEF_PTR(116); - Children[5] = PDEF_PTR(117); - Children[6] = PDEF_PTR(118); - Children[7] = PDEF_PTR(119); - Children[8] = PDEF_PTR(120); - Children[9] = PDEF_PTR(121); - Children[10] = PDEF_PTR(122); - Children[11] = PDEF_PTR(123); - - ParamDefTable[111].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=128, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(134); - Children[2] = PDEF_PTR(135); - Children[3] = PDEF_PTR(136); - Children[4] = PDEF_PTR(137); - Children[5] = PDEF_PTR(138); - Children[6] = PDEF_PTR(139); - Children[7] = PDEF_PTR(140); - Children[8] = PDEF_PTR(141); - Children[9] = PDEF_PTR(142); - Children[10] = PDEF_PTR(143); - Children[11] = PDEF_PTR(144); - - ParamDefTable[128].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=129, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(131); - Children[2] = PDEF_PTR(132); - Children[3] = PDEF_PTR(133); - - ParamDefTable[129].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(146); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(159); - Children[3] = PDEF_PTR(164); - Children[4] = PDEF_PTR(165); - Children[5] = PDEF_PTR(166); - Children[6] = PDEF_PTR(167); - Children[7] = PDEF_PTR(168); - - ParamDefTable[145].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=146, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(147); - Children[1] = PDEF_PTR(148); - Children[2] = PDEF_PTR(149); - Children[3] = PDEF_PTR(150); - Children[4] = PDEF_PTR(151); - Children[5] = PDEF_PTR(152); - Children[6] = PDEF_PTR(153); - - ParamDefTable[146].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(155); - Children[1] = PDEF_PTR(156); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(158); - - ParamDefTable[154].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(160); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - - ParamDefTable[159].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(170); - Children[1] = PDEF_PTR(174); - Children[2] = PDEF_PTR(175); - Children[3] = PDEF_PTR(176); - Children[4] = PDEF_PTR(177); - Children[5] = PDEF_PTR(195); - Children[6] = PDEF_PTR(196); - - ParamDefTable[169].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(171); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - - ParamDefTable[170].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(178); - Children[1] = PDEF_PTR(179); - Children[2] = PDEF_PTR(180); - Children[3] = PDEF_PTR(181); - Children[4] = PDEF_PTR(182); - Children[5] = PDEF_PTR(183); - Children[6] = PDEF_PTR(184); - Children[7] = PDEF_PTR(185); - Children[8] = PDEF_PTR(186); - Children[9] = PDEF_PTR(187); - Children[10] = PDEF_PTR(188); - Children[11] = PDEF_PTR(189); - Children[12] = PDEF_PTR(190); - Children[13] = PDEF_PTR(191); - Children[14] = PDEF_PTR(192); - Children[15] = PDEF_PTR(193); - Children[16] = PDEF_PTR(194); - - ParamDefTable[177].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(198); - Children[1] = PDEF_PTR(199); - Children[2] = PDEF_PTR(201); - Children[3] = PDEF_PTR(202); - Children[4] = PDEF_PTR(203); - Children[5] = PDEF_PTR(204); - Children[6] = PDEF_PTR(205); - Children[7] = PDEF_PTR(206); - Children[8] = PDEF_PTR(207); - Children[9] = PDEF_PTR(208); - - ParamDefTable[197].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=199, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(200); - - ParamDefTable[199].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p12::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p12::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p12::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p12::initReferences(void) -{ -} - -void DestructibleActorParam_0p12::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p12::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p12::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p12.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p12NS; + +const char* const DestructibleActorParam_0p12Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 209; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 54, 65, 99, 128, + 145, 169, 197, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 46, 47, 48, 40, 41, 42, 43, 44, 45, 49, 50, 51, 52, 53, 55, 56, 57, 58, + 59, 60, 61, 62, 63, 64, 66, 87, 88, 94, 95, 96, 97, 98, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 100, 108, + 109, 110, 111, 124, 125, 126, 127, 101, 102, 103, 104, 105, 106, 107, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 129, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 130, 131, 132, 133, 146, 154, 159, 164, 165, 166, 167, 168, 147, + 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 170, 174, 175, + 176, 177, 195, 196, 171, 172, 173, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 198, 199, 201, 202, 203, 204, 205, 206, 207, 208, + 200, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 26 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(26), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(27), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(28), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(55), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(60), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(61), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(70), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(78), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(98), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(103), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(112), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(119), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(131), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(143), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(147), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(155), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(162), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(166), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(170), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(177), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(180), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(197), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(207), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p12::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p12::mBuiltFlagMutex; + +DestructibleActorParam_0p12::DestructibleActorParam_0p12(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p12FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p12::~DestructibleActorParam_0p12() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p12::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p12(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p12::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p12::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p12* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p12::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p12::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p12::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p12::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p12::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[26]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(54); + Children[20] = PDEF_PTR(65); + Children[21] = PDEF_PTR(99); + Children[22] = PDEF_PTR(128); + Children[23] = PDEF_PTR(145); + Children[24] = PDEF_PTR(169); + Children[25] = PDEF_PTR(197); + + ParamDefTable[0].setChildren(Children, 26); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(37); + Children[16] = PDEF_PTR(38); + Children[17] = PDEF_PTR(39); + Children[18] = PDEF_PTR(46); + Children[19] = PDEF_PTR(47); + Children[20] = PDEF_PTR(48); + + ParamDefTable[21].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + + ParamDefTable[39].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(49); + Children[1] = PDEF_PTR(50); + Children[2] = PDEF_PTR(51); + Children[3] = PDEF_PTR(52); + Children[4] = PDEF_PTR(53); + + ParamDefTable[48].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=54, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(55); + + ParamDefTable[54].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=55, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(62); + Children[7] = PDEF_PTR(63); + Children[8] = PDEF_PTR(64); + + ParamDefTable[55].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=65, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(94); + Children[4] = PDEF_PTR(95); + Children[5] = PDEF_PTR(96); + Children[6] = PDEF_PTR(97); + Children[7] = PDEF_PTR(98); + + ParamDefTable[65].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=66, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(67); + Children[1] = PDEF_PTR(68); + Children[2] = PDEF_PTR(69); + Children[3] = PDEF_PTR(70); + Children[4] = PDEF_PTR(71); + Children[5] = PDEF_PTR(72); + Children[6] = PDEF_PTR(73); + Children[7] = PDEF_PTR(74); + Children[8] = PDEF_PTR(75); + Children[9] = PDEF_PTR(76); + Children[10] = PDEF_PTR(77); + Children[11] = PDEF_PTR(78); + Children[12] = PDEF_PTR(79); + Children[13] = PDEF_PTR(80); + Children[14] = PDEF_PTR(81); + Children[15] = PDEF_PTR(82); + Children[16] = PDEF_PTR(83); + Children[17] = PDEF_PTR(84); + Children[18] = PDEF_PTR(85); + Children[19] = PDEF_PTR(86); + + ParamDefTable[66].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=88, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(89); + Children[1] = PDEF_PTR(90); + Children[2] = PDEF_PTR(91); + Children[3] = PDEF_PTR(92); + Children[4] = PDEF_PTR(93); + + ParamDefTable[88].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=99, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(100); + Children[1] = PDEF_PTR(108); + Children[2] = PDEF_PTR(109); + Children[3] = PDEF_PTR(110); + Children[4] = PDEF_PTR(111); + Children[5] = PDEF_PTR(124); + Children[6] = PDEF_PTR(125); + Children[7] = PDEF_PTR(126); + Children[8] = PDEF_PTR(127); + + ParamDefTable[99].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=100, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(101); + Children[1] = PDEF_PTR(102); + Children[2] = PDEF_PTR(103); + Children[3] = PDEF_PTR(104); + Children[4] = PDEF_PTR(105); + Children[5] = PDEF_PTR(106); + Children[6] = PDEF_PTR(107); + + ParamDefTable[100].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(112); + Children[1] = PDEF_PTR(113); + Children[2] = PDEF_PTR(114); + Children[3] = PDEF_PTR(115); + Children[4] = PDEF_PTR(116); + Children[5] = PDEF_PTR(117); + Children[6] = PDEF_PTR(118); + Children[7] = PDEF_PTR(119); + Children[8] = PDEF_PTR(120); + Children[9] = PDEF_PTR(121); + Children[10] = PDEF_PTR(122); + Children[11] = PDEF_PTR(123); + + ParamDefTable[111].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=128, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(134); + Children[2] = PDEF_PTR(135); + Children[3] = PDEF_PTR(136); + Children[4] = PDEF_PTR(137); + Children[5] = PDEF_PTR(138); + Children[6] = PDEF_PTR(139); + Children[7] = PDEF_PTR(140); + Children[8] = PDEF_PTR(141); + Children[9] = PDEF_PTR(142); + Children[10] = PDEF_PTR(143); + Children[11] = PDEF_PTR(144); + + ParamDefTable[128].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=129, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(131); + Children[2] = PDEF_PTR(132); + Children[3] = PDEF_PTR(133); + + ParamDefTable[129].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(146); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(159); + Children[3] = PDEF_PTR(164); + Children[4] = PDEF_PTR(165); + Children[5] = PDEF_PTR(166); + Children[6] = PDEF_PTR(167); + Children[7] = PDEF_PTR(168); + + ParamDefTable[145].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=146, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(147); + Children[1] = PDEF_PTR(148); + Children[2] = PDEF_PTR(149); + Children[3] = PDEF_PTR(150); + Children[4] = PDEF_PTR(151); + Children[5] = PDEF_PTR(152); + Children[6] = PDEF_PTR(153); + + ParamDefTable[146].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(155); + Children[1] = PDEF_PTR(156); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(158); + + ParamDefTable[154].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(160); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + + ParamDefTable[159].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(170); + Children[1] = PDEF_PTR(174); + Children[2] = PDEF_PTR(175); + Children[3] = PDEF_PTR(176); + Children[4] = PDEF_PTR(177); + Children[5] = PDEF_PTR(195); + Children[6] = PDEF_PTR(196); + + ParamDefTable[169].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(171); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + + ParamDefTable[170].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(178); + Children[1] = PDEF_PTR(179); + Children[2] = PDEF_PTR(180); + Children[3] = PDEF_PTR(181); + Children[4] = PDEF_PTR(182); + Children[5] = PDEF_PTR(183); + Children[6] = PDEF_PTR(184); + Children[7] = PDEF_PTR(185); + Children[8] = PDEF_PTR(186); + Children[9] = PDEF_PTR(187); + Children[10] = PDEF_PTR(188); + Children[11] = PDEF_PTR(189); + Children[12] = PDEF_PTR(190); + Children[13] = PDEF_PTR(191); + Children[14] = PDEF_PTR(192); + Children[15] = PDEF_PTR(193); + Children[16] = PDEF_PTR(194); + + ParamDefTable[177].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(198); + Children[1] = PDEF_PTR(199); + Children[2] = PDEF_PTR(201); + Children[3] = PDEF_PTR(202); + Children[4] = PDEF_PTR(203); + Children[5] = PDEF_PTR(204); + Children[6] = PDEF_PTR(205); + Children[7] = PDEF_PTR(206); + Children[8] = PDEF_PTR(207); + Children[9] = PDEF_PTR(208); + + ParamDefTable[197].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=199, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(200); + + ParamDefTable[199].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p12::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p12::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p12::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p12::initReferences(void) +{ +} + +void DestructibleActorParam_0p12::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p12::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p12::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p13.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p13.cpp old mode 100644 new mode 100755 index cee9cfb..76e0a20 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p13.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p13.cpp @@ -1,6047 +1,6047 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p13.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p13NS; - -const char* const DestructibleActorParam_0p13Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 213; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 54, 65, 99, 128, - 145, 169, 197, 209, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 46, 47, 48, 40, 41, 42, 43, 44, 45, 49, 50, 51, 52, 53, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 66, 87, 88, 94, 95, 96, 97, 98, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 100, - 108, 109, 110, 111, 124, 125, 126, 127, 101, 102, 103, 104, 105, 106, 107, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 129, 134, 135, 136, 137, 138, 139, - 140, 141, 142, 143, 144, 130, 131, 132, 133, 146, 154, 159, 164, 165, 166, 167, 168, - 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 170, 174, - 175, 176, 177, 195, 196, 171, 172, 173, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 192, 193, 194, 198, 199, 201, 202, 203, 204, 205, 206, 207, - 208, 200, 210, 211, 212, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(27), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(28), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(29), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold -}; - - -bool DestructibleActorParam_0p13::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p13::mBuiltFlagMutex; - -DestructibleActorParam_0p13::DestructibleActorParam_0p13(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p13FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p13::~DestructibleActorParam_0p13() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p13::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p13(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p13::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p13::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p13* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p13::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p13::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p13::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p13::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p13::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[27]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(54); - Children[20] = PDEF_PTR(65); - Children[21] = PDEF_PTR(99); - Children[22] = PDEF_PTR(128); - Children[23] = PDEF_PTR(145); - Children[24] = PDEF_PTR(169); - Children[25] = PDEF_PTR(197); - Children[26] = PDEF_PTR(209); - - ParamDefTable[0].setChildren(Children, 27); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(37); - Children[16] = PDEF_PTR(38); - Children[17] = PDEF_PTR(39); - Children[18] = PDEF_PTR(46); - Children[19] = PDEF_PTR(47); - Children[20] = PDEF_PTR(48); - - ParamDefTable[21].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - - ParamDefTable[39].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(49); - Children[1] = PDEF_PTR(50); - Children[2] = PDEF_PTR(51); - Children[3] = PDEF_PTR(52); - Children[4] = PDEF_PTR(53); - - ParamDefTable[48].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=54, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(55); - - ParamDefTable[54].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=55, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(62); - Children[7] = PDEF_PTR(63); - Children[8] = PDEF_PTR(64); - - ParamDefTable[55].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=65, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(94); - Children[4] = PDEF_PTR(95); - Children[5] = PDEF_PTR(96); - Children[6] = PDEF_PTR(97); - Children[7] = PDEF_PTR(98); - - ParamDefTable[65].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=66, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(67); - Children[1] = PDEF_PTR(68); - Children[2] = PDEF_PTR(69); - Children[3] = PDEF_PTR(70); - Children[4] = PDEF_PTR(71); - Children[5] = PDEF_PTR(72); - Children[6] = PDEF_PTR(73); - Children[7] = PDEF_PTR(74); - Children[8] = PDEF_PTR(75); - Children[9] = PDEF_PTR(76); - Children[10] = PDEF_PTR(77); - Children[11] = PDEF_PTR(78); - Children[12] = PDEF_PTR(79); - Children[13] = PDEF_PTR(80); - Children[14] = PDEF_PTR(81); - Children[15] = PDEF_PTR(82); - Children[16] = PDEF_PTR(83); - Children[17] = PDEF_PTR(84); - Children[18] = PDEF_PTR(85); - Children[19] = PDEF_PTR(86); - - ParamDefTable[66].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=88, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(89); - Children[1] = PDEF_PTR(90); - Children[2] = PDEF_PTR(91); - Children[3] = PDEF_PTR(92); - Children[4] = PDEF_PTR(93); - - ParamDefTable[88].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=99, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(100); - Children[1] = PDEF_PTR(108); - Children[2] = PDEF_PTR(109); - Children[3] = PDEF_PTR(110); - Children[4] = PDEF_PTR(111); - Children[5] = PDEF_PTR(124); - Children[6] = PDEF_PTR(125); - Children[7] = PDEF_PTR(126); - Children[8] = PDEF_PTR(127); - - ParamDefTable[99].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=100, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(101); - Children[1] = PDEF_PTR(102); - Children[2] = PDEF_PTR(103); - Children[3] = PDEF_PTR(104); - Children[4] = PDEF_PTR(105); - Children[5] = PDEF_PTR(106); - Children[6] = PDEF_PTR(107); - - ParamDefTable[100].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(112); - Children[1] = PDEF_PTR(113); - Children[2] = PDEF_PTR(114); - Children[3] = PDEF_PTR(115); - Children[4] = PDEF_PTR(116); - Children[5] = PDEF_PTR(117); - Children[6] = PDEF_PTR(118); - Children[7] = PDEF_PTR(119); - Children[8] = PDEF_PTR(120); - Children[9] = PDEF_PTR(121); - Children[10] = PDEF_PTR(122); - Children[11] = PDEF_PTR(123); - - ParamDefTable[111].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=128, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(134); - Children[2] = PDEF_PTR(135); - Children[3] = PDEF_PTR(136); - Children[4] = PDEF_PTR(137); - Children[5] = PDEF_PTR(138); - Children[6] = PDEF_PTR(139); - Children[7] = PDEF_PTR(140); - Children[8] = PDEF_PTR(141); - Children[9] = PDEF_PTR(142); - Children[10] = PDEF_PTR(143); - Children[11] = PDEF_PTR(144); - - ParamDefTable[128].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=129, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(131); - Children[2] = PDEF_PTR(132); - Children[3] = PDEF_PTR(133); - - ParamDefTable[129].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(146); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(159); - Children[3] = PDEF_PTR(164); - Children[4] = PDEF_PTR(165); - Children[5] = PDEF_PTR(166); - Children[6] = PDEF_PTR(167); - Children[7] = PDEF_PTR(168); - - ParamDefTable[145].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=146, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(147); - Children[1] = PDEF_PTR(148); - Children[2] = PDEF_PTR(149); - Children[3] = PDEF_PTR(150); - Children[4] = PDEF_PTR(151); - Children[5] = PDEF_PTR(152); - Children[6] = PDEF_PTR(153); - - ParamDefTable[146].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(155); - Children[1] = PDEF_PTR(156); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(158); - - ParamDefTable[154].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(160); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - - ParamDefTable[159].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(170); - Children[1] = PDEF_PTR(174); - Children[2] = PDEF_PTR(175); - Children[3] = PDEF_PTR(176); - Children[4] = PDEF_PTR(177); - Children[5] = PDEF_PTR(195); - Children[6] = PDEF_PTR(196); - - ParamDefTable[169].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(171); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - - ParamDefTable[170].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(178); - Children[1] = PDEF_PTR(179); - Children[2] = PDEF_PTR(180); - Children[3] = PDEF_PTR(181); - Children[4] = PDEF_PTR(182); - Children[5] = PDEF_PTR(183); - Children[6] = PDEF_PTR(184); - Children[7] = PDEF_PTR(185); - Children[8] = PDEF_PTR(186); - Children[9] = PDEF_PTR(187); - Children[10] = PDEF_PTR(188); - Children[11] = PDEF_PTR(189); - Children[12] = PDEF_PTR(190); - Children[13] = PDEF_PTR(191); - Children[14] = PDEF_PTR(192); - Children[15] = PDEF_PTR(193); - Children[16] = PDEF_PTR(194); - - ParamDefTable[177].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(198); - Children[1] = PDEF_PTR(199); - Children[2] = PDEF_PTR(201); - Children[3] = PDEF_PTR(202); - Children[4] = PDEF_PTR(203); - Children[5] = PDEF_PTR(204); - Children[6] = PDEF_PTR(205); - Children[7] = PDEF_PTR(206); - Children[8] = PDEF_PTR(207); - Children[9] = PDEF_PTR(208); - - ParamDefTable[197].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=199, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(200); - - ParamDefTable[199].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=209, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(210); - Children[1] = PDEF_PTR(211); - Children[2] = PDEF_PTR(212); - - ParamDefTable[209].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p13::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p13::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p13::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p13::initReferences(void) -{ -} - -void DestructibleActorParam_0p13::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p13::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p13::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p13.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p13NS; + +const char* const DestructibleActorParam_0p13Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 213; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 54, 65, 99, 128, + 145, 169, 197, 209, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 46, 47, 48, 40, 41, 42, 43, 44, 45, 49, 50, 51, 52, 53, 55, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 66, 87, 88, 94, 95, 96, 97, 98, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, 91, 92, 93, 100, + 108, 109, 110, 111, 124, 125, 126, 127, 101, 102, 103, 104, 105, 106, 107, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 129, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 130, 131, 132, 133, 146, 154, 159, 164, 165, 166, 167, 168, + 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 170, 174, + 175, 176, 177, 195, 196, 171, 172, 173, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 198, 199, 201, 202, 203, 204, 205, 206, 207, + 208, 200, 210, 211, 212, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(27), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(28), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(29), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold +}; + + +bool DestructibleActorParam_0p13::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p13::mBuiltFlagMutex; + +DestructibleActorParam_0p13::DestructibleActorParam_0p13(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p13FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p13::~DestructibleActorParam_0p13() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p13::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p13(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p13::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p13::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p13* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p13::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p13::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p13::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p13::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p13::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[27]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(54); + Children[20] = PDEF_PTR(65); + Children[21] = PDEF_PTR(99); + Children[22] = PDEF_PTR(128); + Children[23] = PDEF_PTR(145); + Children[24] = PDEF_PTR(169); + Children[25] = PDEF_PTR(197); + Children[26] = PDEF_PTR(209); + + ParamDefTable[0].setChildren(Children, 27); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(37); + Children[16] = PDEF_PTR(38); + Children[17] = PDEF_PTR(39); + Children[18] = PDEF_PTR(46); + Children[19] = PDEF_PTR(47); + Children[20] = PDEF_PTR(48); + + ParamDefTable[21].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + + ParamDefTable[39].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(49); + Children[1] = PDEF_PTR(50); + Children[2] = PDEF_PTR(51); + Children[3] = PDEF_PTR(52); + Children[4] = PDEF_PTR(53); + + ParamDefTable[48].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=54, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(55); + + ParamDefTable[54].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=55, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(62); + Children[7] = PDEF_PTR(63); + Children[8] = PDEF_PTR(64); + + ParamDefTable[55].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=65, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(94); + Children[4] = PDEF_PTR(95); + Children[5] = PDEF_PTR(96); + Children[6] = PDEF_PTR(97); + Children[7] = PDEF_PTR(98); + + ParamDefTable[65].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=66, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(67); + Children[1] = PDEF_PTR(68); + Children[2] = PDEF_PTR(69); + Children[3] = PDEF_PTR(70); + Children[4] = PDEF_PTR(71); + Children[5] = PDEF_PTR(72); + Children[6] = PDEF_PTR(73); + Children[7] = PDEF_PTR(74); + Children[8] = PDEF_PTR(75); + Children[9] = PDEF_PTR(76); + Children[10] = PDEF_PTR(77); + Children[11] = PDEF_PTR(78); + Children[12] = PDEF_PTR(79); + Children[13] = PDEF_PTR(80); + Children[14] = PDEF_PTR(81); + Children[15] = PDEF_PTR(82); + Children[16] = PDEF_PTR(83); + Children[17] = PDEF_PTR(84); + Children[18] = PDEF_PTR(85); + Children[19] = PDEF_PTR(86); + + ParamDefTable[66].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=88, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(89); + Children[1] = PDEF_PTR(90); + Children[2] = PDEF_PTR(91); + Children[3] = PDEF_PTR(92); + Children[4] = PDEF_PTR(93); + + ParamDefTable[88].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=99, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(100); + Children[1] = PDEF_PTR(108); + Children[2] = PDEF_PTR(109); + Children[3] = PDEF_PTR(110); + Children[4] = PDEF_PTR(111); + Children[5] = PDEF_PTR(124); + Children[6] = PDEF_PTR(125); + Children[7] = PDEF_PTR(126); + Children[8] = PDEF_PTR(127); + + ParamDefTable[99].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=100, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(101); + Children[1] = PDEF_PTR(102); + Children[2] = PDEF_PTR(103); + Children[3] = PDEF_PTR(104); + Children[4] = PDEF_PTR(105); + Children[5] = PDEF_PTR(106); + Children[6] = PDEF_PTR(107); + + ParamDefTable[100].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=111, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(112); + Children[1] = PDEF_PTR(113); + Children[2] = PDEF_PTR(114); + Children[3] = PDEF_PTR(115); + Children[4] = PDEF_PTR(116); + Children[5] = PDEF_PTR(117); + Children[6] = PDEF_PTR(118); + Children[7] = PDEF_PTR(119); + Children[8] = PDEF_PTR(120); + Children[9] = PDEF_PTR(121); + Children[10] = PDEF_PTR(122); + Children[11] = PDEF_PTR(123); + + ParamDefTable[111].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=128, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(134); + Children[2] = PDEF_PTR(135); + Children[3] = PDEF_PTR(136); + Children[4] = PDEF_PTR(137); + Children[5] = PDEF_PTR(138); + Children[6] = PDEF_PTR(139); + Children[7] = PDEF_PTR(140); + Children[8] = PDEF_PTR(141); + Children[9] = PDEF_PTR(142); + Children[10] = PDEF_PTR(143); + Children[11] = PDEF_PTR(144); + + ParamDefTable[128].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=129, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(131); + Children[2] = PDEF_PTR(132); + Children[3] = PDEF_PTR(133); + + ParamDefTable[129].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(146); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(159); + Children[3] = PDEF_PTR(164); + Children[4] = PDEF_PTR(165); + Children[5] = PDEF_PTR(166); + Children[6] = PDEF_PTR(167); + Children[7] = PDEF_PTR(168); + + ParamDefTable[145].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=146, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(147); + Children[1] = PDEF_PTR(148); + Children[2] = PDEF_PTR(149); + Children[3] = PDEF_PTR(150); + Children[4] = PDEF_PTR(151); + Children[5] = PDEF_PTR(152); + Children[6] = PDEF_PTR(153); + + ParamDefTable[146].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(155); + Children[1] = PDEF_PTR(156); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(158); + + ParamDefTable[154].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(160); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + + ParamDefTable[159].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(170); + Children[1] = PDEF_PTR(174); + Children[2] = PDEF_PTR(175); + Children[3] = PDEF_PTR(176); + Children[4] = PDEF_PTR(177); + Children[5] = PDEF_PTR(195); + Children[6] = PDEF_PTR(196); + + ParamDefTable[169].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(171); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + + ParamDefTable[170].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(178); + Children[1] = PDEF_PTR(179); + Children[2] = PDEF_PTR(180); + Children[3] = PDEF_PTR(181); + Children[4] = PDEF_PTR(182); + Children[5] = PDEF_PTR(183); + Children[6] = PDEF_PTR(184); + Children[7] = PDEF_PTR(185); + Children[8] = PDEF_PTR(186); + Children[9] = PDEF_PTR(187); + Children[10] = PDEF_PTR(188); + Children[11] = PDEF_PTR(189); + Children[12] = PDEF_PTR(190); + Children[13] = PDEF_PTR(191); + Children[14] = PDEF_PTR(192); + Children[15] = PDEF_PTR(193); + Children[16] = PDEF_PTR(194); + + ParamDefTable[177].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(198); + Children[1] = PDEF_PTR(199); + Children[2] = PDEF_PTR(201); + Children[3] = PDEF_PTR(202); + Children[4] = PDEF_PTR(203); + Children[5] = PDEF_PTR(204); + Children[6] = PDEF_PTR(205); + Children[7] = PDEF_PTR(206); + Children[8] = PDEF_PTR(207); + Children[9] = PDEF_PTR(208); + + ParamDefTable[197].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=199, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(200); + + ParamDefTable[199].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=209, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(210); + Children[1] = PDEF_PTR(211); + Children[2] = PDEF_PTR(212); + + ParamDefTable[209].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p13::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p13::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p13::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p13::initReferences(void) +{ +} + +void DestructibleActorParam_0p13::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p13::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p13::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p14.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p14.cpp old mode 100644 new mode 100755 index b833345..c61cbdf --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p14.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p14.cpp @@ -1,6073 +1,6073 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p14.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p14NS; - -const char* const DestructibleActorParam_0p14Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 214; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 55, 66, 100, 129, - 146, 170, 198, 210, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 47, 48, 49, 40, 41, 42, 43, 44, 45, 46, 50, 51, 52, 53, 54, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 67, 88, 89, 95, 96, 97, 98, 99, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 101, - 109, 110, 111, 112, 125, 126, 127, 128, 102, 103, 104, 105, 106, 107, 108, 113, 114, - 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 130, 135, 136, 137, 138, 139, 140, - 141, 142, 143, 144, 145, 131, 132, 133, 134, 147, 155, 160, 165, 166, 167, 168, 169, - 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, 159, 161, 162, 163, 164, 171, 175, - 176, 177, 178, 196, 197, 172, 173, 174, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 199, 200, 202, 203, 204, 205, 206, 207, 208, - 209, 201, 211, 212, 213, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(27), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(28), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(29), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(164), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(168), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(172), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(179), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(182), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(199), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(209), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(210), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold -}; - - -bool DestructibleActorParam_0p14::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p14::mBuiltFlagMutex; - -DestructibleActorParam_0p14::DestructibleActorParam_0p14(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p14FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p14::~DestructibleActorParam_0p14() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p14::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p14(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p14::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p14::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p14* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p14::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p14::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p14::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p14::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p14::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[27]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(55); - Children[20] = PDEF_PTR(66); - Children[21] = PDEF_PTR(100); - Children[22] = PDEF_PTR(129); - Children[23] = PDEF_PTR(146); - Children[24] = PDEF_PTR(170); - Children[25] = PDEF_PTR(198); - Children[26] = PDEF_PTR(210); - - ParamDefTable[0].setChildren(Children, 27); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(37); - Children[16] = PDEF_PTR(38); - Children[17] = PDEF_PTR(39); - Children[18] = PDEF_PTR(47); - Children[19] = PDEF_PTR(48); - Children[20] = PDEF_PTR(49); - - ParamDefTable[21].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - Children[6] = PDEF_PTR(46); - - ParamDefTable[39].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=56, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(64); - Children[8] = PDEF_PTR(65); - - ParamDefTable[56].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=66, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(67); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(95); - Children[4] = PDEF_PTR(96); - Children[5] = PDEF_PTR(97); - Children[6] = PDEF_PTR(98); - Children[7] = PDEF_PTR(99); - - ParamDefTable[66].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=67, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(68); - Children[1] = PDEF_PTR(69); - Children[2] = PDEF_PTR(70); - Children[3] = PDEF_PTR(71); - Children[4] = PDEF_PTR(72); - Children[5] = PDEF_PTR(73); - Children[6] = PDEF_PTR(74); - Children[7] = PDEF_PTR(75); - Children[8] = PDEF_PTR(76); - Children[9] = PDEF_PTR(77); - Children[10] = PDEF_PTR(78); - Children[11] = PDEF_PTR(79); - Children[12] = PDEF_PTR(80); - Children[13] = PDEF_PTR(81); - Children[14] = PDEF_PTR(82); - Children[15] = PDEF_PTR(83); - Children[16] = PDEF_PTR(84); - Children[17] = PDEF_PTR(85); - Children[18] = PDEF_PTR(86); - Children[19] = PDEF_PTR(87); - - ParamDefTable[67].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=89, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(90); - Children[1] = PDEF_PTR(91); - Children[2] = PDEF_PTR(92); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - - ParamDefTable[89].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=100, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(101); - Children[1] = PDEF_PTR(109); - Children[2] = PDEF_PTR(110); - Children[3] = PDEF_PTR(111); - Children[4] = PDEF_PTR(112); - Children[5] = PDEF_PTR(125); - Children[6] = PDEF_PTR(126); - Children[7] = PDEF_PTR(127); - Children[8] = PDEF_PTR(128); - - ParamDefTable[100].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=101, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(102); - Children[1] = PDEF_PTR(103); - Children[2] = PDEF_PTR(104); - Children[3] = PDEF_PTR(105); - Children[4] = PDEF_PTR(106); - Children[5] = PDEF_PTR(107); - Children[6] = PDEF_PTR(108); - - ParamDefTable[101].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=112, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(113); - Children[1] = PDEF_PTR(114); - Children[2] = PDEF_PTR(115); - Children[3] = PDEF_PTR(116); - Children[4] = PDEF_PTR(117); - Children[5] = PDEF_PTR(118); - Children[6] = PDEF_PTR(119); - Children[7] = PDEF_PTR(120); - Children[8] = PDEF_PTR(121); - Children[9] = PDEF_PTR(122); - Children[10] = PDEF_PTR(123); - Children[11] = PDEF_PTR(124); - - ParamDefTable[112].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=129, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(135); - Children[2] = PDEF_PTR(136); - Children[3] = PDEF_PTR(137); - Children[4] = PDEF_PTR(138); - Children[5] = PDEF_PTR(139); - Children[6] = PDEF_PTR(140); - Children[7] = PDEF_PTR(141); - Children[8] = PDEF_PTR(142); - Children[9] = PDEF_PTR(143); - Children[10] = PDEF_PTR(144); - Children[11] = PDEF_PTR(145); - - ParamDefTable[129].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=130, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(131); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - - ParamDefTable[130].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=146, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(147); - Children[1] = PDEF_PTR(155); - Children[2] = PDEF_PTR(160); - Children[3] = PDEF_PTR(165); - Children[4] = PDEF_PTR(166); - Children[5] = PDEF_PTR(167); - Children[6] = PDEF_PTR(168); - Children[7] = PDEF_PTR(169); - - ParamDefTable[146].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=147, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(148); - Children[1] = PDEF_PTR(149); - Children[2] = PDEF_PTR(150); - Children[3] = PDEF_PTR(151); - Children[4] = PDEF_PTR(152); - Children[5] = PDEF_PTR(153); - Children[6] = PDEF_PTR(154); - - ParamDefTable[147].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(156); - Children[1] = PDEF_PTR(157); - Children[2] = PDEF_PTR(158); - Children[3] = PDEF_PTR(159); - - ParamDefTable[155].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(161); - Children[1] = PDEF_PTR(162); - Children[2] = PDEF_PTR(163); - Children[3] = PDEF_PTR(164); - - ParamDefTable[160].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(171); - Children[1] = PDEF_PTR(175); - Children[2] = PDEF_PTR(176); - Children[3] = PDEF_PTR(177); - Children[4] = PDEF_PTR(178); - Children[5] = PDEF_PTR(196); - Children[6] = PDEF_PTR(197); - - ParamDefTable[170].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=171, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(172); - Children[1] = PDEF_PTR(173); - Children[2] = PDEF_PTR(174); - - ParamDefTable[171].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(179); - Children[1] = PDEF_PTR(180); - Children[2] = PDEF_PTR(181); - Children[3] = PDEF_PTR(182); - Children[4] = PDEF_PTR(183); - Children[5] = PDEF_PTR(184); - Children[6] = PDEF_PTR(185); - Children[7] = PDEF_PTR(186); - Children[8] = PDEF_PTR(187); - Children[9] = PDEF_PTR(188); - Children[10] = PDEF_PTR(189); - Children[11] = PDEF_PTR(190); - Children[12] = PDEF_PTR(191); - Children[13] = PDEF_PTR(192); - Children[14] = PDEF_PTR(193); - Children[15] = PDEF_PTR(194); - Children[16] = PDEF_PTR(195); - - ParamDefTable[178].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=198, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(199); - Children[1] = PDEF_PTR(200); - Children[2] = PDEF_PTR(202); - Children[3] = PDEF_PTR(203); - Children[4] = PDEF_PTR(204); - Children[5] = PDEF_PTR(205); - Children[6] = PDEF_PTR(206); - Children[7] = PDEF_PTR(207); - Children[8] = PDEF_PTR(208); - Children[9] = PDEF_PTR(209); - - ParamDefTable[198].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=200, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(201); - - ParamDefTable[200].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=210, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(211); - Children[1] = PDEF_PTR(212); - Children[2] = PDEF_PTR(213); - - ParamDefTable[210].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p14::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p14::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p14::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p14::initReferences(void) -{ -} - -void DestructibleActorParam_0p14::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p14::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p14::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p14.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p14NS; + +const char* const DestructibleActorParam_0p14Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 214; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 55, 66, 100, 129, + 146, 170, 198, 210, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 47, 48, 49, 40, 41, 42, 43, 44, 45, 46, 50, 51, 52, 53, 54, 56, 57, + 58, 59, 60, 61, 62, 63, 64, 65, 67, 88, 89, 95, 96, 97, 98, 99, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 90, 91, 92, 93, 94, 101, + 109, 110, 111, 112, 125, 126, 127, 128, 102, 103, 104, 105, 106, 107, 108, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 130, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 131, 132, 133, 134, 147, 155, 160, 165, 166, 167, 168, 169, + 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, 159, 161, 162, 163, 164, 171, 175, + 176, 177, 178, 196, 197, 172, 173, 174, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 199, 200, 202, 203, 204, 205, 206, 207, 208, + 209, 201, 211, 212, 213, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(27), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(28), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(29), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(164), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(168), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(172), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(179), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(182), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(199), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(209), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(210), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold +}; + + +bool DestructibleActorParam_0p14::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p14::mBuiltFlagMutex; + +DestructibleActorParam_0p14::DestructibleActorParam_0p14(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p14FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p14::~DestructibleActorParam_0p14() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p14::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p14(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p14::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p14::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p14* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p14::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p14::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p14::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p14::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p14::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[27]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(55); + Children[20] = PDEF_PTR(66); + Children[21] = PDEF_PTR(100); + Children[22] = PDEF_PTR(129); + Children[23] = PDEF_PTR(146); + Children[24] = PDEF_PTR(170); + Children[25] = PDEF_PTR(198); + Children[26] = PDEF_PTR(210); + + ParamDefTable[0].setChildren(Children, 27); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(37); + Children[16] = PDEF_PTR(38); + Children[17] = PDEF_PTR(39); + Children[18] = PDEF_PTR(47); + Children[19] = PDEF_PTR(48); + Children[20] = PDEF_PTR(49); + + ParamDefTable[21].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + Children[6] = PDEF_PTR(46); + + ParamDefTable[39].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=56, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(64); + Children[8] = PDEF_PTR(65); + + ParamDefTable[56].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=66, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(67); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(95); + Children[4] = PDEF_PTR(96); + Children[5] = PDEF_PTR(97); + Children[6] = PDEF_PTR(98); + Children[7] = PDEF_PTR(99); + + ParamDefTable[66].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=67, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(68); + Children[1] = PDEF_PTR(69); + Children[2] = PDEF_PTR(70); + Children[3] = PDEF_PTR(71); + Children[4] = PDEF_PTR(72); + Children[5] = PDEF_PTR(73); + Children[6] = PDEF_PTR(74); + Children[7] = PDEF_PTR(75); + Children[8] = PDEF_PTR(76); + Children[9] = PDEF_PTR(77); + Children[10] = PDEF_PTR(78); + Children[11] = PDEF_PTR(79); + Children[12] = PDEF_PTR(80); + Children[13] = PDEF_PTR(81); + Children[14] = PDEF_PTR(82); + Children[15] = PDEF_PTR(83); + Children[16] = PDEF_PTR(84); + Children[17] = PDEF_PTR(85); + Children[18] = PDEF_PTR(86); + Children[19] = PDEF_PTR(87); + + ParamDefTable[67].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=89, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(90); + Children[1] = PDEF_PTR(91); + Children[2] = PDEF_PTR(92); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + + ParamDefTable[89].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=100, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(101); + Children[1] = PDEF_PTR(109); + Children[2] = PDEF_PTR(110); + Children[3] = PDEF_PTR(111); + Children[4] = PDEF_PTR(112); + Children[5] = PDEF_PTR(125); + Children[6] = PDEF_PTR(126); + Children[7] = PDEF_PTR(127); + Children[8] = PDEF_PTR(128); + + ParamDefTable[100].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=101, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(102); + Children[1] = PDEF_PTR(103); + Children[2] = PDEF_PTR(104); + Children[3] = PDEF_PTR(105); + Children[4] = PDEF_PTR(106); + Children[5] = PDEF_PTR(107); + Children[6] = PDEF_PTR(108); + + ParamDefTable[101].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=112, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(113); + Children[1] = PDEF_PTR(114); + Children[2] = PDEF_PTR(115); + Children[3] = PDEF_PTR(116); + Children[4] = PDEF_PTR(117); + Children[5] = PDEF_PTR(118); + Children[6] = PDEF_PTR(119); + Children[7] = PDEF_PTR(120); + Children[8] = PDEF_PTR(121); + Children[9] = PDEF_PTR(122); + Children[10] = PDEF_PTR(123); + Children[11] = PDEF_PTR(124); + + ParamDefTable[112].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=129, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(135); + Children[2] = PDEF_PTR(136); + Children[3] = PDEF_PTR(137); + Children[4] = PDEF_PTR(138); + Children[5] = PDEF_PTR(139); + Children[6] = PDEF_PTR(140); + Children[7] = PDEF_PTR(141); + Children[8] = PDEF_PTR(142); + Children[9] = PDEF_PTR(143); + Children[10] = PDEF_PTR(144); + Children[11] = PDEF_PTR(145); + + ParamDefTable[129].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=130, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(131); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + + ParamDefTable[130].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=146, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(147); + Children[1] = PDEF_PTR(155); + Children[2] = PDEF_PTR(160); + Children[3] = PDEF_PTR(165); + Children[4] = PDEF_PTR(166); + Children[5] = PDEF_PTR(167); + Children[6] = PDEF_PTR(168); + Children[7] = PDEF_PTR(169); + + ParamDefTable[146].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=147, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(148); + Children[1] = PDEF_PTR(149); + Children[2] = PDEF_PTR(150); + Children[3] = PDEF_PTR(151); + Children[4] = PDEF_PTR(152); + Children[5] = PDEF_PTR(153); + Children[6] = PDEF_PTR(154); + + ParamDefTable[147].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(156); + Children[1] = PDEF_PTR(157); + Children[2] = PDEF_PTR(158); + Children[3] = PDEF_PTR(159); + + ParamDefTable[155].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(161); + Children[1] = PDEF_PTR(162); + Children[2] = PDEF_PTR(163); + Children[3] = PDEF_PTR(164); + + ParamDefTable[160].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(171); + Children[1] = PDEF_PTR(175); + Children[2] = PDEF_PTR(176); + Children[3] = PDEF_PTR(177); + Children[4] = PDEF_PTR(178); + Children[5] = PDEF_PTR(196); + Children[6] = PDEF_PTR(197); + + ParamDefTable[170].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=171, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(172); + Children[1] = PDEF_PTR(173); + Children[2] = PDEF_PTR(174); + + ParamDefTable[171].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(179); + Children[1] = PDEF_PTR(180); + Children[2] = PDEF_PTR(181); + Children[3] = PDEF_PTR(182); + Children[4] = PDEF_PTR(183); + Children[5] = PDEF_PTR(184); + Children[6] = PDEF_PTR(185); + Children[7] = PDEF_PTR(186); + Children[8] = PDEF_PTR(187); + Children[9] = PDEF_PTR(188); + Children[10] = PDEF_PTR(189); + Children[11] = PDEF_PTR(190); + Children[12] = PDEF_PTR(191); + Children[13] = PDEF_PTR(192); + Children[14] = PDEF_PTR(193); + Children[15] = PDEF_PTR(194); + Children[16] = PDEF_PTR(195); + + ParamDefTable[178].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=198, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(199); + Children[1] = PDEF_PTR(200); + Children[2] = PDEF_PTR(202); + Children[3] = PDEF_PTR(203); + Children[4] = PDEF_PTR(204); + Children[5] = PDEF_PTR(205); + Children[6] = PDEF_PTR(206); + Children[7] = PDEF_PTR(207); + Children[8] = PDEF_PTR(208); + Children[9] = PDEF_PTR(209); + + ParamDefTable[198].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=200, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(201); + + ParamDefTable[200].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=210, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(211); + Children[1] = PDEF_PTR(212); + Children[2] = PDEF_PTR(213); + + ParamDefTable[210].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p14::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p14::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p14::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p14::initReferences(void) +{ +} + +void DestructibleActorParam_0p14::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p14::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p14::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p15.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p15.cpp old mode 100644 new mode 100755 index 4f0837b..0f9398e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p15.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p15.cpp @@ -1,6743 +1,6743 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p15.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p15NS; - -const char* const DestructibleActorParam_0p15Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 238; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 52, 63, 97, 126, - 143, 167, 195, 207, 211, 224, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, - 106, 107, 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, - 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, - 173, 174, 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, - 206, 198, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 18 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(212), 7 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(219), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(224), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(225), 7 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(232), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 -}; - - -bool DestructibleActorParam_0p15::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p15::mBuiltFlagMutex; - -DestructibleActorParam_0p15::DestructibleActorParam_0p15(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p15FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p15::~DestructibleActorParam_0p15() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p15::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p15(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p15::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p15::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p15* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p15::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p15::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p15::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p15::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p15::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(52); - Children[20] = PDEF_PTR(63); - Children[21] = PDEF_PTR(97); - Children[22] = PDEF_PTR(126); - Children[23] = PDEF_PTR(143); - Children[24] = PDEF_PTR(167); - Children[25] = PDEF_PTR(195); - Children[26] = PDEF_PTR(207); - Children[27] = PDEF_PTR(211); - Children[28] = PDEF_PTR(224); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[18]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - - ParamDefTable[21].setChildren(Children, 18); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(47); - Children[1] = PDEF_PTR(48); - Children[2] = PDEF_PTR(49); - Children[3] = PDEF_PTR(50); - Children[4] = PDEF_PTR(51); - - ParamDefTable[46].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(53); - - ParamDefTable[52].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(60); - Children[7] = PDEF_PTR(61); - Children[8] = PDEF_PTR(62); - - ParamDefTable[53].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(92); - Children[4] = PDEF_PTR(93); - Children[5] = PDEF_PTR(94); - Children[6] = PDEF_PTR(95); - Children[7] = PDEF_PTR(96); - - ParamDefTable[63].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(66); - Children[2] = PDEF_PTR(67); - Children[3] = PDEF_PTR(68); - Children[4] = PDEF_PTR(69); - Children[5] = PDEF_PTR(70); - Children[6] = PDEF_PTR(71); - Children[7] = PDEF_PTR(72); - Children[8] = PDEF_PTR(73); - Children[9] = PDEF_PTR(74); - Children[10] = PDEF_PTR(75); - Children[11] = PDEF_PTR(76); - Children[12] = PDEF_PTR(77); - Children[13] = PDEF_PTR(78); - Children[14] = PDEF_PTR(79); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - Children[19] = PDEF_PTR(84); - - ParamDefTable[64].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - - ParamDefTable[86].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=97, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - Children[4] = PDEF_PTR(109); - Children[5] = PDEF_PTR(122); - Children[6] = PDEF_PTR(123); - Children[7] = PDEF_PTR(124); - Children[8] = PDEF_PTR(125); - - ParamDefTable[97].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - Children[5] = PDEF_PTR(104); - Children[6] = PDEF_PTR(105); - - ParamDefTable[98].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - Children[6] = PDEF_PTR(116); - Children[7] = PDEF_PTR(117); - Children[8] = PDEF_PTR(118); - Children[9] = PDEF_PTR(119); - Children[10] = PDEF_PTR(120); - Children[11] = PDEF_PTR(121); - - ParamDefTable[109].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - Children[7] = PDEF_PTR(138); - Children[8] = PDEF_PTR(139); - Children[9] = PDEF_PTR(140); - Children[10] = PDEF_PTR(141); - Children[11] = PDEF_PTR(142); - - ParamDefTable[126].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - - ParamDefTable[127].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(144); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(162); - Children[4] = PDEF_PTR(163); - Children[5] = PDEF_PTR(164); - Children[6] = PDEF_PTR(165); - Children[7] = PDEF_PTR(166); - - ParamDefTable[143].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(146); - Children[2] = PDEF_PTR(147); - Children[3] = PDEF_PTR(148); - Children[4] = PDEF_PTR(149); - Children[5] = PDEF_PTR(150); - Children[6] = PDEF_PTR(151); - - ParamDefTable[144].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(158); - Children[1] = PDEF_PTR(159); - Children[2] = PDEF_PTR(160); - Children[3] = PDEF_PTR(161); - - ParamDefTable[157].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(193); - Children[6] = PDEF_PTR(194); - - ParamDefTable[167].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(170); - Children[2] = PDEF_PTR(171); - - ParamDefTable[168].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(177); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(179); - Children[4] = PDEF_PTR(180); - Children[5] = PDEF_PTR(181); - Children[6] = PDEF_PTR(182); - Children[7] = PDEF_PTR(183); - Children[8] = PDEF_PTR(184); - Children[9] = PDEF_PTR(185); - Children[10] = PDEF_PTR(186); - Children[11] = PDEF_PTR(187); - Children[12] = PDEF_PTR(188); - Children[13] = PDEF_PTR(189); - Children[14] = PDEF_PTR(190); - Children[15] = PDEF_PTR(191); - Children[16] = PDEF_PTR(192); - - ParamDefTable[175].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(197); - Children[2] = PDEF_PTR(199); - Children[3] = PDEF_PTR(200); - Children[4] = PDEF_PTR(201); - Children[5] = PDEF_PTR(202); - Children[6] = PDEF_PTR(203); - Children[7] = PDEF_PTR(204); - Children[8] = PDEF_PTR(205); - Children[9] = PDEF_PTR(206); - - ParamDefTable[195].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(198); - - ParamDefTable[197].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=207, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(208); - Children[1] = PDEF_PTR(209); - Children[2] = PDEF_PTR(210); - - ParamDefTable[207].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=211, longName="defaultBehaviorGroup" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(212); - Children[1] = PDEF_PTR(213); - Children[2] = PDEF_PTR(214); - Children[3] = PDEF_PTR(215); - Children[4] = PDEF_PTR(216); - Children[5] = PDEF_PTR(217); - Children[6] = PDEF_PTR(218); - - ParamDefTable[211].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=218, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(219); - Children[1] = PDEF_PTR(220); - Children[2] = PDEF_PTR(221); - Children[3] = PDEF_PTR(222); - Children[4] = PDEF_PTR(223); - - ParamDefTable[218].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=224, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(225); - - ParamDefTable[224].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=225, longName="behaviorGroups[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(226); - Children[1] = PDEF_PTR(227); - Children[2] = PDEF_PTR(228); - Children[3] = PDEF_PTR(229); - Children[4] = PDEF_PTR(230); - Children[5] = PDEF_PTR(231); - Children[6] = PDEF_PTR(232); - - ParamDefTable[225].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=232, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(233); - Children[1] = PDEF_PTR(234); - Children[2] = PDEF_PTR(235); - Children[3] = PDEF_PTR(236); - Children[4] = PDEF_PTR(237); - - ParamDefTable[232].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p15::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p15::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p15::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p15::initReferences(void) -{ -} - -void DestructibleActorParam_0p15::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p15::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p15::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p15.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p15NS; + +const char* const DestructibleActorParam_0p15Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 238; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 52, 63, 97, 126, + 143, 167, 195, 207, 211, 224, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, + 106, 107, 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, + 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, + 173, 174, 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, + 206, 198, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 18 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(212), 7 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(219), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(224), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(225), 7 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(232), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 +}; + + +bool DestructibleActorParam_0p15::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p15::mBuiltFlagMutex; + +DestructibleActorParam_0p15::DestructibleActorParam_0p15(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p15FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p15::~DestructibleActorParam_0p15() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p15::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p15(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p15::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p15::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p15* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p15::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p15::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p15::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p15::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p15::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(52); + Children[20] = PDEF_PTR(63); + Children[21] = PDEF_PTR(97); + Children[22] = PDEF_PTR(126); + Children[23] = PDEF_PTR(143); + Children[24] = PDEF_PTR(167); + Children[25] = PDEF_PTR(195); + Children[26] = PDEF_PTR(207); + Children[27] = PDEF_PTR(211); + Children[28] = PDEF_PTR(224); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[18]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + + ParamDefTable[21].setChildren(Children, 18); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(47); + Children[1] = PDEF_PTR(48); + Children[2] = PDEF_PTR(49); + Children[3] = PDEF_PTR(50); + Children[4] = PDEF_PTR(51); + + ParamDefTable[46].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(53); + + ParamDefTable[52].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(60); + Children[7] = PDEF_PTR(61); + Children[8] = PDEF_PTR(62); + + ParamDefTable[53].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(92); + Children[4] = PDEF_PTR(93); + Children[5] = PDEF_PTR(94); + Children[6] = PDEF_PTR(95); + Children[7] = PDEF_PTR(96); + + ParamDefTable[63].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(66); + Children[2] = PDEF_PTR(67); + Children[3] = PDEF_PTR(68); + Children[4] = PDEF_PTR(69); + Children[5] = PDEF_PTR(70); + Children[6] = PDEF_PTR(71); + Children[7] = PDEF_PTR(72); + Children[8] = PDEF_PTR(73); + Children[9] = PDEF_PTR(74); + Children[10] = PDEF_PTR(75); + Children[11] = PDEF_PTR(76); + Children[12] = PDEF_PTR(77); + Children[13] = PDEF_PTR(78); + Children[14] = PDEF_PTR(79); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + Children[19] = PDEF_PTR(84); + + ParamDefTable[64].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + + ParamDefTable[86].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=97, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + Children[4] = PDEF_PTR(109); + Children[5] = PDEF_PTR(122); + Children[6] = PDEF_PTR(123); + Children[7] = PDEF_PTR(124); + Children[8] = PDEF_PTR(125); + + ParamDefTable[97].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + Children[5] = PDEF_PTR(104); + Children[6] = PDEF_PTR(105); + + ParamDefTable[98].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + Children[6] = PDEF_PTR(116); + Children[7] = PDEF_PTR(117); + Children[8] = PDEF_PTR(118); + Children[9] = PDEF_PTR(119); + Children[10] = PDEF_PTR(120); + Children[11] = PDEF_PTR(121); + + ParamDefTable[109].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + Children[7] = PDEF_PTR(138); + Children[8] = PDEF_PTR(139); + Children[9] = PDEF_PTR(140); + Children[10] = PDEF_PTR(141); + Children[11] = PDEF_PTR(142); + + ParamDefTable[126].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + + ParamDefTable[127].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(144); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(162); + Children[4] = PDEF_PTR(163); + Children[5] = PDEF_PTR(164); + Children[6] = PDEF_PTR(165); + Children[7] = PDEF_PTR(166); + + ParamDefTable[143].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(146); + Children[2] = PDEF_PTR(147); + Children[3] = PDEF_PTR(148); + Children[4] = PDEF_PTR(149); + Children[5] = PDEF_PTR(150); + Children[6] = PDEF_PTR(151); + + ParamDefTable[144].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(158); + Children[1] = PDEF_PTR(159); + Children[2] = PDEF_PTR(160); + Children[3] = PDEF_PTR(161); + + ParamDefTable[157].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(193); + Children[6] = PDEF_PTR(194); + + ParamDefTable[167].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(170); + Children[2] = PDEF_PTR(171); + + ParamDefTable[168].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(177); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(179); + Children[4] = PDEF_PTR(180); + Children[5] = PDEF_PTR(181); + Children[6] = PDEF_PTR(182); + Children[7] = PDEF_PTR(183); + Children[8] = PDEF_PTR(184); + Children[9] = PDEF_PTR(185); + Children[10] = PDEF_PTR(186); + Children[11] = PDEF_PTR(187); + Children[12] = PDEF_PTR(188); + Children[13] = PDEF_PTR(189); + Children[14] = PDEF_PTR(190); + Children[15] = PDEF_PTR(191); + Children[16] = PDEF_PTR(192); + + ParamDefTable[175].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(197); + Children[2] = PDEF_PTR(199); + Children[3] = PDEF_PTR(200); + Children[4] = PDEF_PTR(201); + Children[5] = PDEF_PTR(202); + Children[6] = PDEF_PTR(203); + Children[7] = PDEF_PTR(204); + Children[8] = PDEF_PTR(205); + Children[9] = PDEF_PTR(206); + + ParamDefTable[195].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(198); + + ParamDefTable[197].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=207, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(208); + Children[1] = PDEF_PTR(209); + Children[2] = PDEF_PTR(210); + + ParamDefTable[207].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=211, longName="defaultBehaviorGroup" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(212); + Children[1] = PDEF_PTR(213); + Children[2] = PDEF_PTR(214); + Children[3] = PDEF_PTR(215); + Children[4] = PDEF_PTR(216); + Children[5] = PDEF_PTR(217); + Children[6] = PDEF_PTR(218); + + ParamDefTable[211].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=218, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(219); + Children[1] = PDEF_PTR(220); + Children[2] = PDEF_PTR(221); + Children[3] = PDEF_PTR(222); + Children[4] = PDEF_PTR(223); + + ParamDefTable[218].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=224, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(225); + + ParamDefTable[224].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=225, longName="behaviorGroups[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(226); + Children[1] = PDEF_PTR(227); + Children[2] = PDEF_PTR(228); + Children[3] = PDEF_PTR(229); + Children[4] = PDEF_PTR(230); + Children[5] = PDEF_PTR(231); + Children[6] = PDEF_PTR(232); + + ParamDefTable[225].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=232, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(233); + Children[1] = PDEF_PTR(234); + Children[2] = PDEF_PTR(235); + Children[3] = PDEF_PTR(236); + Children[4] = PDEF_PTR(237); + + ParamDefTable[232].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p15::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p15::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p15::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p15::initReferences(void) +{ +} + +void DestructibleActorParam_0p15::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p15::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p15::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p16.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p16.cpp old mode 100644 new mode 100755 index fcc3a24..a94c6e8 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p16.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p16.cpp @@ -1,6897 +1,6897 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p16.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p16NS; - -const char* const DestructibleActorParam_0p16Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 244; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 52, 63, 97, 126, - 143, 167, 195, 207, 211, 227, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, - 106, 107, 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, - 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, - 173, 174, 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, - 206, 198, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, - 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, - 242, 243, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 18 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(212), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // defaultBehaviorGroup.minimumDamageRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageRadiusMultiplier - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageFalloffExponent - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(222), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(227), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(228), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // behaviorGroups[].minimumDamageRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // behaviorGroups[].damageRadiusMultiplier - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // behaviorGroups[].damageFalloffExponent - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(238), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 -}; - - -bool DestructibleActorParam_0p16::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p16::mBuiltFlagMutex; - -DestructibleActorParam_0p16::DestructibleActorParam_0p16(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p16FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p16::~DestructibleActorParam_0p16() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p16::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p16(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p16::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p16::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p16* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p16::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p16::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p16::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p16::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p16::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.minimumDamageRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageRadiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageFalloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="behaviorGroups[].minimumDamageRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups[].damageRadiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[].damageFalloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(52); - Children[20] = PDEF_PTR(63); - Children[21] = PDEF_PTR(97); - Children[22] = PDEF_PTR(126); - Children[23] = PDEF_PTR(143); - Children[24] = PDEF_PTR(167); - Children[25] = PDEF_PTR(195); - Children[26] = PDEF_PTR(207); - Children[27] = PDEF_PTR(211); - Children[28] = PDEF_PTR(227); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[18]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - - ParamDefTable[21].setChildren(Children, 18); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(47); - Children[1] = PDEF_PTR(48); - Children[2] = PDEF_PTR(49); - Children[3] = PDEF_PTR(50); - Children[4] = PDEF_PTR(51); - - ParamDefTable[46].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(53); - - ParamDefTable[52].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(60); - Children[7] = PDEF_PTR(61); - Children[8] = PDEF_PTR(62); - - ParamDefTable[53].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(92); - Children[4] = PDEF_PTR(93); - Children[5] = PDEF_PTR(94); - Children[6] = PDEF_PTR(95); - Children[7] = PDEF_PTR(96); - - ParamDefTable[63].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(66); - Children[2] = PDEF_PTR(67); - Children[3] = PDEF_PTR(68); - Children[4] = PDEF_PTR(69); - Children[5] = PDEF_PTR(70); - Children[6] = PDEF_PTR(71); - Children[7] = PDEF_PTR(72); - Children[8] = PDEF_PTR(73); - Children[9] = PDEF_PTR(74); - Children[10] = PDEF_PTR(75); - Children[11] = PDEF_PTR(76); - Children[12] = PDEF_PTR(77); - Children[13] = PDEF_PTR(78); - Children[14] = PDEF_PTR(79); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - Children[19] = PDEF_PTR(84); - - ParamDefTable[64].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - - ParamDefTable[86].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=97, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - Children[4] = PDEF_PTR(109); - Children[5] = PDEF_PTR(122); - Children[6] = PDEF_PTR(123); - Children[7] = PDEF_PTR(124); - Children[8] = PDEF_PTR(125); - - ParamDefTable[97].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - Children[5] = PDEF_PTR(104); - Children[6] = PDEF_PTR(105); - - ParamDefTable[98].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - Children[6] = PDEF_PTR(116); - Children[7] = PDEF_PTR(117); - Children[8] = PDEF_PTR(118); - Children[9] = PDEF_PTR(119); - Children[10] = PDEF_PTR(120); - Children[11] = PDEF_PTR(121); - - ParamDefTable[109].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - Children[7] = PDEF_PTR(138); - Children[8] = PDEF_PTR(139); - Children[9] = PDEF_PTR(140); - Children[10] = PDEF_PTR(141); - Children[11] = PDEF_PTR(142); - - ParamDefTable[126].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - - ParamDefTable[127].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(144); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(162); - Children[4] = PDEF_PTR(163); - Children[5] = PDEF_PTR(164); - Children[6] = PDEF_PTR(165); - Children[7] = PDEF_PTR(166); - - ParamDefTable[143].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(146); - Children[2] = PDEF_PTR(147); - Children[3] = PDEF_PTR(148); - Children[4] = PDEF_PTR(149); - Children[5] = PDEF_PTR(150); - Children[6] = PDEF_PTR(151); - - ParamDefTable[144].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(158); - Children[1] = PDEF_PTR(159); - Children[2] = PDEF_PTR(160); - Children[3] = PDEF_PTR(161); - - ParamDefTable[157].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(193); - Children[6] = PDEF_PTR(194); - - ParamDefTable[167].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(170); - Children[2] = PDEF_PTR(171); - - ParamDefTable[168].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(177); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(179); - Children[4] = PDEF_PTR(180); - Children[5] = PDEF_PTR(181); - Children[6] = PDEF_PTR(182); - Children[7] = PDEF_PTR(183); - Children[8] = PDEF_PTR(184); - Children[9] = PDEF_PTR(185); - Children[10] = PDEF_PTR(186); - Children[11] = PDEF_PTR(187); - Children[12] = PDEF_PTR(188); - Children[13] = PDEF_PTR(189); - Children[14] = PDEF_PTR(190); - Children[15] = PDEF_PTR(191); - Children[16] = PDEF_PTR(192); - - ParamDefTable[175].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(197); - Children[2] = PDEF_PTR(199); - Children[3] = PDEF_PTR(200); - Children[4] = PDEF_PTR(201); - Children[5] = PDEF_PTR(202); - Children[6] = PDEF_PTR(203); - Children[7] = PDEF_PTR(204); - Children[8] = PDEF_PTR(205); - Children[9] = PDEF_PTR(206); - - ParamDefTable[195].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(198); - - ParamDefTable[197].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=207, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(208); - Children[1] = PDEF_PTR(209); - Children[2] = PDEF_PTR(210); - - ParamDefTable[207].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=211, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(212); - Children[1] = PDEF_PTR(213); - Children[2] = PDEF_PTR(214); - Children[3] = PDEF_PTR(215); - Children[4] = PDEF_PTR(216); - Children[5] = PDEF_PTR(217); - Children[6] = PDEF_PTR(218); - Children[7] = PDEF_PTR(219); - Children[8] = PDEF_PTR(220); - Children[9] = PDEF_PTR(221); - - ParamDefTable[211].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=221, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(222); - Children[1] = PDEF_PTR(223); - Children[2] = PDEF_PTR(224); - Children[3] = PDEF_PTR(225); - Children[4] = PDEF_PTR(226); - - ParamDefTable[221].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=227, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(228); - - ParamDefTable[227].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=228, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(229); - Children[1] = PDEF_PTR(230); - Children[2] = PDEF_PTR(231); - Children[3] = PDEF_PTR(232); - Children[4] = PDEF_PTR(233); - Children[5] = PDEF_PTR(234); - Children[6] = PDEF_PTR(235); - Children[7] = PDEF_PTR(236); - Children[8] = PDEF_PTR(237); - Children[9] = PDEF_PTR(238); - - ParamDefTable[228].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=238, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - Children[3] = PDEF_PTR(242); - Children[4] = PDEF_PTR(243); - - ParamDefTable[238].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p16::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p16::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p16::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.minimumDamageRadius = float(0); - defaultBehaviorGroup.damageRadiusMultiplier = float(1); - defaultBehaviorGroup.damageFalloffExponent = float(1); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p16::initReferences(void) -{ -} - -void DestructibleActorParam_0p16::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p16::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p16::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p16.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p16NS; + +const char* const DestructibleActorParam_0p16Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 244; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 52, 63, 97, 126, + 143, 167, 195, 207, 211, 227, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, + 106, 107, 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, + 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, + 173, 174, 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, + 206, 198, 208, 209, 210, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 18 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(212), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // defaultBehaviorGroup.minimumDamageRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageRadiusMultiplier + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageFalloffExponent + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(222), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(227), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(228), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // behaviorGroups[].minimumDamageRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // behaviorGroups[].damageRadiusMultiplier + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // behaviorGroups[].damageFalloffExponent + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(238), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 +}; + + +bool DestructibleActorParam_0p16::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p16::mBuiltFlagMutex; + +DestructibleActorParam_0p16::DestructibleActorParam_0p16(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p16FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p16::~DestructibleActorParam_0p16() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p16::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p16(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p16::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p16::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p16* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p16::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p16::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p16::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p16::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p16::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.minimumDamageRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageRadiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageFalloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="behaviorGroups[].minimumDamageRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups[].damageRadiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[].damageFalloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(52); + Children[20] = PDEF_PTR(63); + Children[21] = PDEF_PTR(97); + Children[22] = PDEF_PTR(126); + Children[23] = PDEF_PTR(143); + Children[24] = PDEF_PTR(167); + Children[25] = PDEF_PTR(195); + Children[26] = PDEF_PTR(207); + Children[27] = PDEF_PTR(211); + Children[28] = PDEF_PTR(227); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[18]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + + ParamDefTable[21].setChildren(Children, 18); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(47); + Children[1] = PDEF_PTR(48); + Children[2] = PDEF_PTR(49); + Children[3] = PDEF_PTR(50); + Children[4] = PDEF_PTR(51); + + ParamDefTable[46].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(53); + + ParamDefTable[52].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(60); + Children[7] = PDEF_PTR(61); + Children[8] = PDEF_PTR(62); + + ParamDefTable[53].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(92); + Children[4] = PDEF_PTR(93); + Children[5] = PDEF_PTR(94); + Children[6] = PDEF_PTR(95); + Children[7] = PDEF_PTR(96); + + ParamDefTable[63].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(66); + Children[2] = PDEF_PTR(67); + Children[3] = PDEF_PTR(68); + Children[4] = PDEF_PTR(69); + Children[5] = PDEF_PTR(70); + Children[6] = PDEF_PTR(71); + Children[7] = PDEF_PTR(72); + Children[8] = PDEF_PTR(73); + Children[9] = PDEF_PTR(74); + Children[10] = PDEF_PTR(75); + Children[11] = PDEF_PTR(76); + Children[12] = PDEF_PTR(77); + Children[13] = PDEF_PTR(78); + Children[14] = PDEF_PTR(79); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + Children[19] = PDEF_PTR(84); + + ParamDefTable[64].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + + ParamDefTable[86].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=97, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + Children[4] = PDEF_PTR(109); + Children[5] = PDEF_PTR(122); + Children[6] = PDEF_PTR(123); + Children[7] = PDEF_PTR(124); + Children[8] = PDEF_PTR(125); + + ParamDefTable[97].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + Children[5] = PDEF_PTR(104); + Children[6] = PDEF_PTR(105); + + ParamDefTable[98].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + Children[6] = PDEF_PTR(116); + Children[7] = PDEF_PTR(117); + Children[8] = PDEF_PTR(118); + Children[9] = PDEF_PTR(119); + Children[10] = PDEF_PTR(120); + Children[11] = PDEF_PTR(121); + + ParamDefTable[109].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + Children[7] = PDEF_PTR(138); + Children[8] = PDEF_PTR(139); + Children[9] = PDEF_PTR(140); + Children[10] = PDEF_PTR(141); + Children[11] = PDEF_PTR(142); + + ParamDefTable[126].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + + ParamDefTable[127].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(144); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(162); + Children[4] = PDEF_PTR(163); + Children[5] = PDEF_PTR(164); + Children[6] = PDEF_PTR(165); + Children[7] = PDEF_PTR(166); + + ParamDefTable[143].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(146); + Children[2] = PDEF_PTR(147); + Children[3] = PDEF_PTR(148); + Children[4] = PDEF_PTR(149); + Children[5] = PDEF_PTR(150); + Children[6] = PDEF_PTR(151); + + ParamDefTable[144].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(158); + Children[1] = PDEF_PTR(159); + Children[2] = PDEF_PTR(160); + Children[3] = PDEF_PTR(161); + + ParamDefTable[157].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(193); + Children[6] = PDEF_PTR(194); + + ParamDefTable[167].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(170); + Children[2] = PDEF_PTR(171); + + ParamDefTable[168].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(177); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(179); + Children[4] = PDEF_PTR(180); + Children[5] = PDEF_PTR(181); + Children[6] = PDEF_PTR(182); + Children[7] = PDEF_PTR(183); + Children[8] = PDEF_PTR(184); + Children[9] = PDEF_PTR(185); + Children[10] = PDEF_PTR(186); + Children[11] = PDEF_PTR(187); + Children[12] = PDEF_PTR(188); + Children[13] = PDEF_PTR(189); + Children[14] = PDEF_PTR(190); + Children[15] = PDEF_PTR(191); + Children[16] = PDEF_PTR(192); + + ParamDefTable[175].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(197); + Children[2] = PDEF_PTR(199); + Children[3] = PDEF_PTR(200); + Children[4] = PDEF_PTR(201); + Children[5] = PDEF_PTR(202); + Children[6] = PDEF_PTR(203); + Children[7] = PDEF_PTR(204); + Children[8] = PDEF_PTR(205); + Children[9] = PDEF_PTR(206); + + ParamDefTable[195].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(198); + + ParamDefTable[197].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=207, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(208); + Children[1] = PDEF_PTR(209); + Children[2] = PDEF_PTR(210); + + ParamDefTable[207].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=211, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(212); + Children[1] = PDEF_PTR(213); + Children[2] = PDEF_PTR(214); + Children[3] = PDEF_PTR(215); + Children[4] = PDEF_PTR(216); + Children[5] = PDEF_PTR(217); + Children[6] = PDEF_PTR(218); + Children[7] = PDEF_PTR(219); + Children[8] = PDEF_PTR(220); + Children[9] = PDEF_PTR(221); + + ParamDefTable[211].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=221, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(222); + Children[1] = PDEF_PTR(223); + Children[2] = PDEF_PTR(224); + Children[3] = PDEF_PTR(225); + Children[4] = PDEF_PTR(226); + + ParamDefTable[221].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=227, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(228); + + ParamDefTable[227].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=228, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(229); + Children[1] = PDEF_PTR(230); + Children[2] = PDEF_PTR(231); + Children[3] = PDEF_PTR(232); + Children[4] = PDEF_PTR(233); + Children[5] = PDEF_PTR(234); + Children[6] = PDEF_PTR(235); + Children[7] = PDEF_PTR(236); + Children[8] = PDEF_PTR(237); + Children[9] = PDEF_PTR(238); + + ParamDefTable[228].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=238, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + Children[3] = PDEF_PTR(242); + Children[4] = PDEF_PTR(243); + + ParamDefTable[238].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p16::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p16::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p16::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.minimumDamageRadius = float(0); + defaultBehaviorGroup.damageRadiusMultiplier = float(1); + defaultBehaviorGroup.damageFalloffExponent = float(1); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p16::initReferences(void) +{ +} + +void DestructibleActorParam_0p16::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p16::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p16::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p17.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p17.cpp old mode 100644 new mode 100755 index 0c3cc9d..2b01b2d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p17.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p17.cpp @@ -1,7229 +1,7229 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p17.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p17NS; - -const char* const DestructibleActorParam_0p17Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 256; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 52, 63, 97, 126, - 143, 167, 195, 207, 211, 233, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, - 106, 107, 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, - 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, - 173, 174, 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, - 206, 198, 208, 209, 210, 212, 213, 214, 215, 219, 223, 224, 225, 226, 227, 216, 217, - 218, 220, 221, 222, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 242, 246, 247, - 248, 249, 250, 239, 240, 241, 243, 244, 245, 251, 252, 253, 254, 255, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 18 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(212), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(222), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(225), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(228), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(233), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(234), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(244), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(247), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(250), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 -}; - - -bool DestructibleActorParam_0p17::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p17::mBuiltFlagMutex; - -DestructibleActorParam_0p17::DestructibleActorParam_0p17(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p17FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p17::~DestructibleActorParam_0p17() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p17::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p17(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p17::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p17::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p17* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p17::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p17::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p17::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p17::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p17::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(52); - Children[20] = PDEF_PTR(63); - Children[21] = PDEF_PTR(97); - Children[22] = PDEF_PTR(126); - Children[23] = PDEF_PTR(143); - Children[24] = PDEF_PTR(167); - Children[25] = PDEF_PTR(195); - Children[26] = PDEF_PTR(207); - Children[27] = PDEF_PTR(211); - Children[28] = PDEF_PTR(233); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[18]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - - ParamDefTable[21].setChildren(Children, 18); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(47); - Children[1] = PDEF_PTR(48); - Children[2] = PDEF_PTR(49); - Children[3] = PDEF_PTR(50); - Children[4] = PDEF_PTR(51); - - ParamDefTable[46].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(53); - - ParamDefTable[52].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(60); - Children[7] = PDEF_PTR(61); - Children[8] = PDEF_PTR(62); - - ParamDefTable[53].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(92); - Children[4] = PDEF_PTR(93); - Children[5] = PDEF_PTR(94); - Children[6] = PDEF_PTR(95); - Children[7] = PDEF_PTR(96); - - ParamDefTable[63].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(66); - Children[2] = PDEF_PTR(67); - Children[3] = PDEF_PTR(68); - Children[4] = PDEF_PTR(69); - Children[5] = PDEF_PTR(70); - Children[6] = PDEF_PTR(71); - Children[7] = PDEF_PTR(72); - Children[8] = PDEF_PTR(73); - Children[9] = PDEF_PTR(74); - Children[10] = PDEF_PTR(75); - Children[11] = PDEF_PTR(76); - Children[12] = PDEF_PTR(77); - Children[13] = PDEF_PTR(78); - Children[14] = PDEF_PTR(79); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - Children[19] = PDEF_PTR(84); - - ParamDefTable[64].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - - ParamDefTable[86].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=97, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - Children[4] = PDEF_PTR(109); - Children[5] = PDEF_PTR(122); - Children[6] = PDEF_PTR(123); - Children[7] = PDEF_PTR(124); - Children[8] = PDEF_PTR(125); - - ParamDefTable[97].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - Children[5] = PDEF_PTR(104); - Children[6] = PDEF_PTR(105); - - ParamDefTable[98].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - Children[6] = PDEF_PTR(116); - Children[7] = PDEF_PTR(117); - Children[8] = PDEF_PTR(118); - Children[9] = PDEF_PTR(119); - Children[10] = PDEF_PTR(120); - Children[11] = PDEF_PTR(121); - - ParamDefTable[109].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - Children[7] = PDEF_PTR(138); - Children[8] = PDEF_PTR(139); - Children[9] = PDEF_PTR(140); - Children[10] = PDEF_PTR(141); - Children[11] = PDEF_PTR(142); - - ParamDefTable[126].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - - ParamDefTable[127].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(144); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(162); - Children[4] = PDEF_PTR(163); - Children[5] = PDEF_PTR(164); - Children[6] = PDEF_PTR(165); - Children[7] = PDEF_PTR(166); - - ParamDefTable[143].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(146); - Children[2] = PDEF_PTR(147); - Children[3] = PDEF_PTR(148); - Children[4] = PDEF_PTR(149); - Children[5] = PDEF_PTR(150); - Children[6] = PDEF_PTR(151); - - ParamDefTable[144].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(158); - Children[1] = PDEF_PTR(159); - Children[2] = PDEF_PTR(160); - Children[3] = PDEF_PTR(161); - - ParamDefTable[157].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(193); - Children[6] = PDEF_PTR(194); - - ParamDefTable[167].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(170); - Children[2] = PDEF_PTR(171); - - ParamDefTable[168].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(177); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(179); - Children[4] = PDEF_PTR(180); - Children[5] = PDEF_PTR(181); - Children[6] = PDEF_PTR(182); - Children[7] = PDEF_PTR(183); - Children[8] = PDEF_PTR(184); - Children[9] = PDEF_PTR(185); - Children[10] = PDEF_PTR(186); - Children[11] = PDEF_PTR(187); - Children[12] = PDEF_PTR(188); - Children[13] = PDEF_PTR(189); - Children[14] = PDEF_PTR(190); - Children[15] = PDEF_PTR(191); - Children[16] = PDEF_PTR(192); - - ParamDefTable[175].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(197); - Children[2] = PDEF_PTR(199); - Children[3] = PDEF_PTR(200); - Children[4] = PDEF_PTR(201); - Children[5] = PDEF_PTR(202); - Children[6] = PDEF_PTR(203); - Children[7] = PDEF_PTR(204); - Children[8] = PDEF_PTR(205); - Children[9] = PDEF_PTR(206); - - ParamDefTable[195].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(198); - - ParamDefTable[197].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=207, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(208); - Children[1] = PDEF_PTR(209); - Children[2] = PDEF_PTR(210); - - ParamDefTable[207].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=211, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(212); - Children[1] = PDEF_PTR(213); - Children[2] = PDEF_PTR(214); - Children[3] = PDEF_PTR(215); - Children[4] = PDEF_PTR(219); - Children[5] = PDEF_PTR(223); - Children[6] = PDEF_PTR(224); - Children[7] = PDEF_PTR(225); - Children[8] = PDEF_PTR(226); - Children[9] = PDEF_PTR(227); - - ParamDefTable[211].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(216); - Children[1] = PDEF_PTR(217); - Children[2] = PDEF_PTR(218); - - ParamDefTable[215].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(220); - Children[1] = PDEF_PTR(221); - Children[2] = PDEF_PTR(222); - - ParamDefTable[219].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(228); - Children[1] = PDEF_PTR(229); - Children[2] = PDEF_PTR(230); - Children[3] = PDEF_PTR(231); - Children[4] = PDEF_PTR(232); - - ParamDefTable[227].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=233, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(234); - - ParamDefTable[233].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=234, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(235); - Children[1] = PDEF_PTR(236); - Children[2] = PDEF_PTR(237); - Children[3] = PDEF_PTR(238); - Children[4] = PDEF_PTR(242); - Children[5] = PDEF_PTR(246); - Children[6] = PDEF_PTR(247); - Children[7] = PDEF_PTR(248); - Children[8] = PDEF_PTR(249); - Children[9] = PDEF_PTR(250); - - ParamDefTable[234].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=238, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - - ParamDefTable[238].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(243); - Children[1] = PDEF_PTR(244); - Children[2] = PDEF_PTR(245); - - ParamDefTable[242].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=250, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(251); - Children[1] = PDEF_PTR(252); - Children[2] = PDEF_PTR(253); - Children[3] = PDEF_PTR(254); - Children[4] = PDEF_PTR(255); - - ParamDefTable[250].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p17::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p17::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p17::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p17::initReferences(void) -{ -} - -void DestructibleActorParam_0p17::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p17::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p17::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p17.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p17NS; + +const char* const DestructibleActorParam_0p17Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 256; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 52, 63, 97, 126, + 143, 167, 195, 207, 211, 233, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, 50, 51, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 64, 85, 86, 92, 93, 94, 95, 96, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 87, 88, 89, 90, 91, 98, + 106, 107, 108, 109, 122, 123, 124, 125, 99, 100, 101, 102, 103, 104, 105, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 127, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 128, 129, 130, 131, 144, 152, 157, 162, 163, 164, 165, 166, + 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, + 173, 174, 175, 193, 194, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 196, 197, 199, 200, 201, 202, 203, 204, 205, + 206, 198, 208, 209, 210, 212, 213, 214, 215, 219, 223, 224, 225, 226, 227, 216, 217, + 218, 220, 221, 222, 228, 229, 230, 231, 232, 234, 235, 236, 237, 238, 242, 246, 247, + 248, 249, 250, 239, 240, 241, 243, 244, 245, 251, 252, 253, 254, 255, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 18 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(49), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(56), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(61), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(62), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(71), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(79), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(99), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(104), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(113), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(120), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(132), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(144), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(148), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(156), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(198), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(208), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(209), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(212), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(222), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(225), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(228), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(233), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(234), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(244), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(247), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(250), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 +}; + + +bool DestructibleActorParam_0p17::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p17::mBuiltFlagMutex; + +DestructibleActorParam_0p17::DestructibleActorParam_0p17(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p17FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p17::~DestructibleActorParam_0p17() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p17::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p17(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p17::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p17::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p17* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p17::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p17::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p17::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p17::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p17::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(52); + Children[20] = PDEF_PTR(63); + Children[21] = PDEF_PTR(97); + Children[22] = PDEF_PTR(126); + Children[23] = PDEF_PTR(143); + Children[24] = PDEF_PTR(167); + Children[25] = PDEF_PTR(195); + Children[26] = PDEF_PTR(207); + Children[27] = PDEF_PTR(211); + Children[28] = PDEF_PTR(233); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[18]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + + ParamDefTable[21].setChildren(Children, 18); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(47); + Children[1] = PDEF_PTR(48); + Children[2] = PDEF_PTR(49); + Children[3] = PDEF_PTR(50); + Children[4] = PDEF_PTR(51); + + ParamDefTable[46].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(53); + + ParamDefTable[52].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(60); + Children[7] = PDEF_PTR(61); + Children[8] = PDEF_PTR(62); + + ParamDefTable[53].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(92); + Children[4] = PDEF_PTR(93); + Children[5] = PDEF_PTR(94); + Children[6] = PDEF_PTR(95); + Children[7] = PDEF_PTR(96); + + ParamDefTable[63].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(66); + Children[2] = PDEF_PTR(67); + Children[3] = PDEF_PTR(68); + Children[4] = PDEF_PTR(69); + Children[5] = PDEF_PTR(70); + Children[6] = PDEF_PTR(71); + Children[7] = PDEF_PTR(72); + Children[8] = PDEF_PTR(73); + Children[9] = PDEF_PTR(74); + Children[10] = PDEF_PTR(75); + Children[11] = PDEF_PTR(76); + Children[12] = PDEF_PTR(77); + Children[13] = PDEF_PTR(78); + Children[14] = PDEF_PTR(79); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + Children[19] = PDEF_PTR(84); + + ParamDefTable[64].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + + ParamDefTable[86].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=97, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + Children[4] = PDEF_PTR(109); + Children[5] = PDEF_PTR(122); + Children[6] = PDEF_PTR(123); + Children[7] = PDEF_PTR(124); + Children[8] = PDEF_PTR(125); + + ParamDefTable[97].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + Children[5] = PDEF_PTR(104); + Children[6] = PDEF_PTR(105); + + ParamDefTable[98].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=109, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + Children[6] = PDEF_PTR(116); + Children[7] = PDEF_PTR(117); + Children[8] = PDEF_PTR(118); + Children[9] = PDEF_PTR(119); + Children[10] = PDEF_PTR(120); + Children[11] = PDEF_PTR(121); + + ParamDefTable[109].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=126, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + Children[7] = PDEF_PTR(138); + Children[8] = PDEF_PTR(139); + Children[9] = PDEF_PTR(140); + Children[10] = PDEF_PTR(141); + Children[11] = PDEF_PTR(142); + + ParamDefTable[126].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + + ParamDefTable[127].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(144); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(162); + Children[4] = PDEF_PTR(163); + Children[5] = PDEF_PTR(164); + Children[6] = PDEF_PTR(165); + Children[7] = PDEF_PTR(166); + + ParamDefTable[143].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(146); + Children[2] = PDEF_PTR(147); + Children[3] = PDEF_PTR(148); + Children[4] = PDEF_PTR(149); + Children[5] = PDEF_PTR(150); + Children[6] = PDEF_PTR(151); + + ParamDefTable[144].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(158); + Children[1] = PDEF_PTR(159); + Children[2] = PDEF_PTR(160); + Children[3] = PDEF_PTR(161); + + ParamDefTable[157].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(193); + Children[6] = PDEF_PTR(194); + + ParamDefTable[167].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(170); + Children[2] = PDEF_PTR(171); + + ParamDefTable[168].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(177); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(179); + Children[4] = PDEF_PTR(180); + Children[5] = PDEF_PTR(181); + Children[6] = PDEF_PTR(182); + Children[7] = PDEF_PTR(183); + Children[8] = PDEF_PTR(184); + Children[9] = PDEF_PTR(185); + Children[10] = PDEF_PTR(186); + Children[11] = PDEF_PTR(187); + Children[12] = PDEF_PTR(188); + Children[13] = PDEF_PTR(189); + Children[14] = PDEF_PTR(190); + Children[15] = PDEF_PTR(191); + Children[16] = PDEF_PTR(192); + + ParamDefTable[175].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(197); + Children[2] = PDEF_PTR(199); + Children[3] = PDEF_PTR(200); + Children[4] = PDEF_PTR(201); + Children[5] = PDEF_PTR(202); + Children[6] = PDEF_PTR(203); + Children[7] = PDEF_PTR(204); + Children[8] = PDEF_PTR(205); + Children[9] = PDEF_PTR(206); + + ParamDefTable[195].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=197, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(198); + + ParamDefTable[197].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=207, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(208); + Children[1] = PDEF_PTR(209); + Children[2] = PDEF_PTR(210); + + ParamDefTable[207].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=211, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(212); + Children[1] = PDEF_PTR(213); + Children[2] = PDEF_PTR(214); + Children[3] = PDEF_PTR(215); + Children[4] = PDEF_PTR(219); + Children[5] = PDEF_PTR(223); + Children[6] = PDEF_PTR(224); + Children[7] = PDEF_PTR(225); + Children[8] = PDEF_PTR(226); + Children[9] = PDEF_PTR(227); + + ParamDefTable[211].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(216); + Children[1] = PDEF_PTR(217); + Children[2] = PDEF_PTR(218); + + ParamDefTable[215].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(220); + Children[1] = PDEF_PTR(221); + Children[2] = PDEF_PTR(222); + + ParamDefTable[219].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(228); + Children[1] = PDEF_PTR(229); + Children[2] = PDEF_PTR(230); + Children[3] = PDEF_PTR(231); + Children[4] = PDEF_PTR(232); + + ParamDefTable[227].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=233, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(234); + + ParamDefTable[233].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=234, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(235); + Children[1] = PDEF_PTR(236); + Children[2] = PDEF_PTR(237); + Children[3] = PDEF_PTR(238); + Children[4] = PDEF_PTR(242); + Children[5] = PDEF_PTR(246); + Children[6] = PDEF_PTR(247); + Children[7] = PDEF_PTR(248); + Children[8] = PDEF_PTR(249); + Children[9] = PDEF_PTR(250); + + ParamDefTable[234].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=238, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + + ParamDefTable[238].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(243); + Children[1] = PDEF_PTR(244); + Children[2] = PDEF_PTR(245); + + ParamDefTable[242].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=250, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(251); + Children[1] = PDEF_PTR(252); + Children[2] = PDEF_PTR(253); + Children[3] = PDEF_PTR(254); + Children[4] = PDEF_PTR(255); + + ParamDefTable[250].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p17::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p17::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p17::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p17::initReferences(void) +{ +} + +void DestructibleActorParam_0p17::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p17::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p17::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p18.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p18.cpp old mode 100644 new mode 100755 index 60d734f..8122a5f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p18.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p18.cpp @@ -1,7255 +1,7255 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p18.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p18NS; - -const char* const DestructibleActorParam_0p18Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 257; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 53, 64, 98, 127, - 144, 168, 196, 208, 212, 234, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 47, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, - 99, 107, 108, 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 129, 130, 131, 132, 145, 153, 158, 163, 164, 165, 166, - 167, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 159, 160, 161, 162, 169, - 173, 174, 175, 176, 194, 195, 170, 171, 172, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 191, 192, 193, 197, 198, 200, 201, 202, 203, 204, 205, - 206, 207, 199, 209, 210, 211, 213, 214, 215, 216, 220, 224, 225, 226, 227, 228, 217, - 218, 219, 221, 222, 223, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 243, 247, - 248, 249, 250, 251, 240, 241, 242, 244, 245, 246, 252, 253, 254, 255, 256, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 19 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(164), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(168), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(172), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(179), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(182), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(199), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(209), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(210), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(213), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(223), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(226), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(229), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(234), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(235), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(245), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(248), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(251), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 -}; - - -bool DestructibleActorParam_0p18::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p18::mBuiltFlagMutex; - -DestructibleActorParam_0p18::DestructibleActorParam_0p18(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p18FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p18::~DestructibleActorParam_0p18() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p18::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p18(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p18::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p18::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p18* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p18::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p18::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p18::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p18::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p18::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(53); - Children[20] = PDEF_PTR(64); - Children[21] = PDEF_PTR(98); - Children[22] = PDEF_PTR(127); - Children[23] = PDEF_PTR(144); - Children[24] = PDEF_PTR(168); - Children[25] = PDEF_PTR(196); - Children[26] = PDEF_PTR(208); - Children[27] = PDEF_PTR(212); - Children[28] = PDEF_PTR(234); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[19]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - Children[18] = PDEF_PTR(47); - - ParamDefTable[21].setChildren(Children, 19); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(48); - Children[1] = PDEF_PTR(49); - Children[2] = PDEF_PTR(50); - Children[3] = PDEF_PTR(51); - Children[4] = PDEF_PTR(52); - - ParamDefTable[47].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=54, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(55); - Children[1] = PDEF_PTR(56); - Children[2] = PDEF_PTR(57); - Children[3] = PDEF_PTR(58); - Children[4] = PDEF_PTR(59); - Children[5] = PDEF_PTR(60); - Children[6] = PDEF_PTR(61); - Children[7] = PDEF_PTR(62); - Children[8] = PDEF_PTR(63); - - ParamDefTable[54].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - Children[5] = PDEF_PTR(95); - Children[6] = PDEF_PTR(96); - Children[7] = PDEF_PTR(97); - - ParamDefTable[64].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(67); - Children[2] = PDEF_PTR(68); - Children[3] = PDEF_PTR(69); - Children[4] = PDEF_PTR(70); - Children[5] = PDEF_PTR(71); - Children[6] = PDEF_PTR(72); - Children[7] = PDEF_PTR(73); - Children[8] = PDEF_PTR(74); - Children[9] = PDEF_PTR(75); - Children[10] = PDEF_PTR(76); - Children[11] = PDEF_PTR(77); - Children[12] = PDEF_PTR(78); - Children[13] = PDEF_PTR(79); - Children[14] = PDEF_PTR(80); - Children[15] = PDEF_PTR(81); - Children[16] = PDEF_PTR(82); - Children[17] = PDEF_PTR(83); - Children[18] = PDEF_PTR(84); - Children[19] = PDEF_PTR(85); - - ParamDefTable[65].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(88); - Children[1] = PDEF_PTR(89); - Children[2] = PDEF_PTR(90); - Children[3] = PDEF_PTR(91); - Children[4] = PDEF_PTR(92); - - ParamDefTable[87].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(107); - Children[2] = PDEF_PTR(108); - Children[3] = PDEF_PTR(109); - Children[4] = PDEF_PTR(110); - Children[5] = PDEF_PTR(123); - Children[6] = PDEF_PTR(124); - Children[7] = PDEF_PTR(125); - Children[8] = PDEF_PTR(126); - - ParamDefTable[98].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(100); - Children[1] = PDEF_PTR(101); - Children[2] = PDEF_PTR(102); - Children[3] = PDEF_PTR(103); - Children[4] = PDEF_PTR(104); - Children[5] = PDEF_PTR(105); - Children[6] = PDEF_PTR(106); - - ParamDefTable[99].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(111); - Children[1] = PDEF_PTR(112); - Children[2] = PDEF_PTR(113); - Children[3] = PDEF_PTR(114); - Children[4] = PDEF_PTR(115); - Children[5] = PDEF_PTR(116); - Children[6] = PDEF_PTR(117); - Children[7] = PDEF_PTR(118); - Children[8] = PDEF_PTR(119); - Children[9] = PDEF_PTR(120); - Children[10] = PDEF_PTR(121); - Children[11] = PDEF_PTR(122); - - ParamDefTable[110].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(133); - Children[2] = PDEF_PTR(134); - Children[3] = PDEF_PTR(135); - Children[4] = PDEF_PTR(136); - Children[5] = PDEF_PTR(137); - Children[6] = PDEF_PTR(138); - Children[7] = PDEF_PTR(139); - Children[8] = PDEF_PTR(140); - Children[9] = PDEF_PTR(141); - Children[10] = PDEF_PTR(142); - Children[11] = PDEF_PTR(143); - - ParamDefTable[127].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(130); - Children[2] = PDEF_PTR(131); - Children[3] = PDEF_PTR(132); - - ParamDefTable[128].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(153); - Children[2] = PDEF_PTR(158); - Children[3] = PDEF_PTR(163); - Children[4] = PDEF_PTR(164); - Children[5] = PDEF_PTR(165); - Children[6] = PDEF_PTR(166); - Children[7] = PDEF_PTR(167); - - ParamDefTable[144].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(146); - Children[1] = PDEF_PTR(147); - Children[2] = PDEF_PTR(148); - Children[3] = PDEF_PTR(149); - Children[4] = PDEF_PTR(150); - Children[5] = PDEF_PTR(151); - Children[6] = PDEF_PTR(152); - - ParamDefTable[145].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(154); - Children[1] = PDEF_PTR(155); - Children[2] = PDEF_PTR(156); - Children[3] = PDEF_PTR(157); - - ParamDefTable[153].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(159); - Children[1] = PDEF_PTR(160); - Children[2] = PDEF_PTR(161); - Children[3] = PDEF_PTR(162); - - ParamDefTable[158].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(173); - Children[2] = PDEF_PTR(174); - Children[3] = PDEF_PTR(175); - Children[4] = PDEF_PTR(176); - Children[5] = PDEF_PTR(194); - Children[6] = PDEF_PTR(195); - - ParamDefTable[168].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(170); - Children[1] = PDEF_PTR(171); - Children[2] = PDEF_PTR(172); - - ParamDefTable[169].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(178); - Children[2] = PDEF_PTR(179); - Children[3] = PDEF_PTR(180); - Children[4] = PDEF_PTR(181); - Children[5] = PDEF_PTR(182); - Children[6] = PDEF_PTR(183); - Children[7] = PDEF_PTR(184); - Children[8] = PDEF_PTR(185); - Children[9] = PDEF_PTR(186); - Children[10] = PDEF_PTR(187); - Children[11] = PDEF_PTR(188); - Children[12] = PDEF_PTR(189); - Children[13] = PDEF_PTR(190); - Children[14] = PDEF_PTR(191); - Children[15] = PDEF_PTR(192); - Children[16] = PDEF_PTR(193); - - ParamDefTable[176].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(197); - Children[1] = PDEF_PTR(198); - Children[2] = PDEF_PTR(200); - Children[3] = PDEF_PTR(201); - Children[4] = PDEF_PTR(202); - Children[5] = PDEF_PTR(203); - Children[6] = PDEF_PTR(204); - Children[7] = PDEF_PTR(205); - Children[8] = PDEF_PTR(206); - Children[9] = PDEF_PTR(207); - - ParamDefTable[196].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=198, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(199); - - ParamDefTable[198].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=208, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(209); - Children[1] = PDEF_PTR(210); - Children[2] = PDEF_PTR(211); - - ParamDefTable[208].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=212, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(213); - Children[1] = PDEF_PTR(214); - Children[2] = PDEF_PTR(215); - Children[3] = PDEF_PTR(216); - Children[4] = PDEF_PTR(220); - Children[5] = PDEF_PTR(224); - Children[6] = PDEF_PTR(225); - Children[7] = PDEF_PTR(226); - Children[8] = PDEF_PTR(227); - Children[9] = PDEF_PTR(228); - - ParamDefTable[212].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(217); - Children[1] = PDEF_PTR(218); - Children[2] = PDEF_PTR(219); - - ParamDefTable[216].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(221); - Children[1] = PDEF_PTR(222); - Children[2] = PDEF_PTR(223); - - ParamDefTable[220].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(229); - Children[1] = PDEF_PTR(230); - Children[2] = PDEF_PTR(231); - Children[3] = PDEF_PTR(232); - Children[4] = PDEF_PTR(233); - - ParamDefTable[228].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=234, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(235); - - ParamDefTable[234].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=235, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(236); - Children[1] = PDEF_PTR(237); - Children[2] = PDEF_PTR(238); - Children[3] = PDEF_PTR(239); - Children[4] = PDEF_PTR(243); - Children[5] = PDEF_PTR(247); - Children[6] = PDEF_PTR(248); - Children[7] = PDEF_PTR(249); - Children[8] = PDEF_PTR(250); - Children[9] = PDEF_PTR(251); - - ParamDefTable[235].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=239, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(240); - Children[1] = PDEF_PTR(241); - Children[2] = PDEF_PTR(242); - - ParamDefTable[239].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=243, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(244); - Children[1] = PDEF_PTR(245); - Children[2] = PDEF_PTR(246); - - ParamDefTable[243].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=251, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(252); - Children[1] = PDEF_PTR(253); - Children[2] = PDEF_PTR(254); - Children[3] = PDEF_PTR(255); - Children[4] = PDEF_PTR(256); - - ParamDefTable[251].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p18::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p18::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p18::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p18::initReferences(void) -{ -} - -void DestructibleActorParam_0p18::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p18::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p18::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p18.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p18NS; + +const char* const DestructibleActorParam_0p18Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 257; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 53, 64, 98, 127, + 144, 168, 196, 208, 212, 234, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 47, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, + 99, 107, 108, 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 129, 130, 131, 132, 145, 153, 158, 163, 164, 165, 166, + 167, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 159, 160, 161, 162, 169, + 173, 174, 175, 176, 194, 195, 170, 171, 172, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 197, 198, 200, 201, 202, 203, 204, 205, + 206, 207, 199, 209, 210, 211, 213, 214, 215, 216, 220, 224, 225, 226, 227, 228, 217, + 218, 219, 221, 222, 223, 229, 230, 231, 232, 233, 235, 236, 237, 238, 239, 243, 247, + 248, 249, 250, 251, 240, 241, 242, 244, 245, 246, 252, 253, 254, 255, 256, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 19 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(164), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(168), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(172), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(179), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(182), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(199), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(209), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(210), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(213), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(223), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(226), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(229), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(234), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(235), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(245), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(248), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(251), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 +}; + + +bool DestructibleActorParam_0p18::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p18::mBuiltFlagMutex; + +DestructibleActorParam_0p18::DestructibleActorParam_0p18(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p18FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p18::~DestructibleActorParam_0p18() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p18::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p18(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p18::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p18::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p18* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p18::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p18::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p18::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p18::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p18::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(53); + Children[20] = PDEF_PTR(64); + Children[21] = PDEF_PTR(98); + Children[22] = PDEF_PTR(127); + Children[23] = PDEF_PTR(144); + Children[24] = PDEF_PTR(168); + Children[25] = PDEF_PTR(196); + Children[26] = PDEF_PTR(208); + Children[27] = PDEF_PTR(212); + Children[28] = PDEF_PTR(234); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[19]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + Children[18] = PDEF_PTR(47); + + ParamDefTable[21].setChildren(Children, 19); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(48); + Children[1] = PDEF_PTR(49); + Children[2] = PDEF_PTR(50); + Children[3] = PDEF_PTR(51); + Children[4] = PDEF_PTR(52); + + ParamDefTable[47].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=54, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(55); + Children[1] = PDEF_PTR(56); + Children[2] = PDEF_PTR(57); + Children[3] = PDEF_PTR(58); + Children[4] = PDEF_PTR(59); + Children[5] = PDEF_PTR(60); + Children[6] = PDEF_PTR(61); + Children[7] = PDEF_PTR(62); + Children[8] = PDEF_PTR(63); + + ParamDefTable[54].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + Children[5] = PDEF_PTR(95); + Children[6] = PDEF_PTR(96); + Children[7] = PDEF_PTR(97); + + ParamDefTable[64].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(67); + Children[2] = PDEF_PTR(68); + Children[3] = PDEF_PTR(69); + Children[4] = PDEF_PTR(70); + Children[5] = PDEF_PTR(71); + Children[6] = PDEF_PTR(72); + Children[7] = PDEF_PTR(73); + Children[8] = PDEF_PTR(74); + Children[9] = PDEF_PTR(75); + Children[10] = PDEF_PTR(76); + Children[11] = PDEF_PTR(77); + Children[12] = PDEF_PTR(78); + Children[13] = PDEF_PTR(79); + Children[14] = PDEF_PTR(80); + Children[15] = PDEF_PTR(81); + Children[16] = PDEF_PTR(82); + Children[17] = PDEF_PTR(83); + Children[18] = PDEF_PTR(84); + Children[19] = PDEF_PTR(85); + + ParamDefTable[65].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(88); + Children[1] = PDEF_PTR(89); + Children[2] = PDEF_PTR(90); + Children[3] = PDEF_PTR(91); + Children[4] = PDEF_PTR(92); + + ParamDefTable[87].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(107); + Children[2] = PDEF_PTR(108); + Children[3] = PDEF_PTR(109); + Children[4] = PDEF_PTR(110); + Children[5] = PDEF_PTR(123); + Children[6] = PDEF_PTR(124); + Children[7] = PDEF_PTR(125); + Children[8] = PDEF_PTR(126); + + ParamDefTable[98].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(100); + Children[1] = PDEF_PTR(101); + Children[2] = PDEF_PTR(102); + Children[3] = PDEF_PTR(103); + Children[4] = PDEF_PTR(104); + Children[5] = PDEF_PTR(105); + Children[6] = PDEF_PTR(106); + + ParamDefTable[99].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(111); + Children[1] = PDEF_PTR(112); + Children[2] = PDEF_PTR(113); + Children[3] = PDEF_PTR(114); + Children[4] = PDEF_PTR(115); + Children[5] = PDEF_PTR(116); + Children[6] = PDEF_PTR(117); + Children[7] = PDEF_PTR(118); + Children[8] = PDEF_PTR(119); + Children[9] = PDEF_PTR(120); + Children[10] = PDEF_PTR(121); + Children[11] = PDEF_PTR(122); + + ParamDefTable[110].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(133); + Children[2] = PDEF_PTR(134); + Children[3] = PDEF_PTR(135); + Children[4] = PDEF_PTR(136); + Children[5] = PDEF_PTR(137); + Children[6] = PDEF_PTR(138); + Children[7] = PDEF_PTR(139); + Children[8] = PDEF_PTR(140); + Children[9] = PDEF_PTR(141); + Children[10] = PDEF_PTR(142); + Children[11] = PDEF_PTR(143); + + ParamDefTable[127].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(130); + Children[2] = PDEF_PTR(131); + Children[3] = PDEF_PTR(132); + + ParamDefTable[128].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(153); + Children[2] = PDEF_PTR(158); + Children[3] = PDEF_PTR(163); + Children[4] = PDEF_PTR(164); + Children[5] = PDEF_PTR(165); + Children[6] = PDEF_PTR(166); + Children[7] = PDEF_PTR(167); + + ParamDefTable[144].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(146); + Children[1] = PDEF_PTR(147); + Children[2] = PDEF_PTR(148); + Children[3] = PDEF_PTR(149); + Children[4] = PDEF_PTR(150); + Children[5] = PDEF_PTR(151); + Children[6] = PDEF_PTR(152); + + ParamDefTable[145].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(154); + Children[1] = PDEF_PTR(155); + Children[2] = PDEF_PTR(156); + Children[3] = PDEF_PTR(157); + + ParamDefTable[153].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(159); + Children[1] = PDEF_PTR(160); + Children[2] = PDEF_PTR(161); + Children[3] = PDEF_PTR(162); + + ParamDefTable[158].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(173); + Children[2] = PDEF_PTR(174); + Children[3] = PDEF_PTR(175); + Children[4] = PDEF_PTR(176); + Children[5] = PDEF_PTR(194); + Children[6] = PDEF_PTR(195); + + ParamDefTable[168].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=169, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(170); + Children[1] = PDEF_PTR(171); + Children[2] = PDEF_PTR(172); + + ParamDefTable[169].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(178); + Children[2] = PDEF_PTR(179); + Children[3] = PDEF_PTR(180); + Children[4] = PDEF_PTR(181); + Children[5] = PDEF_PTR(182); + Children[6] = PDEF_PTR(183); + Children[7] = PDEF_PTR(184); + Children[8] = PDEF_PTR(185); + Children[9] = PDEF_PTR(186); + Children[10] = PDEF_PTR(187); + Children[11] = PDEF_PTR(188); + Children[12] = PDEF_PTR(189); + Children[13] = PDEF_PTR(190); + Children[14] = PDEF_PTR(191); + Children[15] = PDEF_PTR(192); + Children[16] = PDEF_PTR(193); + + ParamDefTable[176].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(197); + Children[1] = PDEF_PTR(198); + Children[2] = PDEF_PTR(200); + Children[3] = PDEF_PTR(201); + Children[4] = PDEF_PTR(202); + Children[5] = PDEF_PTR(203); + Children[6] = PDEF_PTR(204); + Children[7] = PDEF_PTR(205); + Children[8] = PDEF_PTR(206); + Children[9] = PDEF_PTR(207); + + ParamDefTable[196].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=198, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(199); + + ParamDefTable[198].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=208, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(209); + Children[1] = PDEF_PTR(210); + Children[2] = PDEF_PTR(211); + + ParamDefTable[208].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=212, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(213); + Children[1] = PDEF_PTR(214); + Children[2] = PDEF_PTR(215); + Children[3] = PDEF_PTR(216); + Children[4] = PDEF_PTR(220); + Children[5] = PDEF_PTR(224); + Children[6] = PDEF_PTR(225); + Children[7] = PDEF_PTR(226); + Children[8] = PDEF_PTR(227); + Children[9] = PDEF_PTR(228); + + ParamDefTable[212].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(217); + Children[1] = PDEF_PTR(218); + Children[2] = PDEF_PTR(219); + + ParamDefTable[216].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(221); + Children[1] = PDEF_PTR(222); + Children[2] = PDEF_PTR(223); + + ParamDefTable[220].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(229); + Children[1] = PDEF_PTR(230); + Children[2] = PDEF_PTR(231); + Children[3] = PDEF_PTR(232); + Children[4] = PDEF_PTR(233); + + ParamDefTable[228].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=234, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(235); + + ParamDefTable[234].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=235, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(236); + Children[1] = PDEF_PTR(237); + Children[2] = PDEF_PTR(238); + Children[3] = PDEF_PTR(239); + Children[4] = PDEF_PTR(243); + Children[5] = PDEF_PTR(247); + Children[6] = PDEF_PTR(248); + Children[7] = PDEF_PTR(249); + Children[8] = PDEF_PTR(250); + Children[9] = PDEF_PTR(251); + + ParamDefTable[235].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=239, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(240); + Children[1] = PDEF_PTR(241); + Children[2] = PDEF_PTR(242); + + ParamDefTable[239].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=243, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(244); + Children[1] = PDEF_PTR(245); + Children[2] = PDEF_PTR(246); + + ParamDefTable[243].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=251, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(252); + Children[1] = PDEF_PTR(253); + Children[2] = PDEF_PTR(254); + Children[3] = PDEF_PTR(255); + Children[4] = PDEF_PTR(256); + + ParamDefTable[251].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p18::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p18::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p18::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p18::initReferences(void) +{ +} + +void DestructibleActorParam_0p18::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p18::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p18::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p19.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p19.cpp old mode 100644 new mode 100755 index 2cd0faf..53ac294 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p19.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p19.cpp @@ -1,7204 +1,7204 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p19.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p19NS; - -const char* const DestructibleActorParam_0p19Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 255; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 53, 64, 98, 127, - 144, 167, 193, 206, 210, 232, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 47, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, - 99, 107, 108, 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 129, 130, 131, 132, 145, 152, 157, 162, 163, 164, 165, - 166, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, - 173, 174, 175, 191, 192, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 194, 195, 198, 199, 200, 201, 202, 203, 204, 205, 196, - 197, 207, 208, 209, 211, 212, 213, 214, 218, 222, 223, 224, 225, 226, 215, 216, 217, - 219, 220, 221, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 241, 245, 246, 247, - 248, 249, 238, 239, 240, 242, 243, 244, 250, 251, 252, 253, 254, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 19 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(196), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(206), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(208), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(211), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(221), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(224), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(227), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(232), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(233), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(243), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(246), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(249), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 -}; - - -bool DestructibleActorParam_0p19::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p19::mBuiltFlagMutex; - -DestructibleActorParam_0p19::DestructibleActorParam_0p19(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p19FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p19::~DestructibleActorParam_0p19() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p19::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p19(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p19::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p19::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p19* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p19::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p19::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p19::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p19::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p19::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(53); - Children[20] = PDEF_PTR(64); - Children[21] = PDEF_PTR(98); - Children[22] = PDEF_PTR(127); - Children[23] = PDEF_PTR(144); - Children[24] = PDEF_PTR(167); - Children[25] = PDEF_PTR(193); - Children[26] = PDEF_PTR(206); - Children[27] = PDEF_PTR(210); - Children[28] = PDEF_PTR(232); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[19]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - Children[18] = PDEF_PTR(47); - - ParamDefTable[21].setChildren(Children, 19); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(48); - Children[1] = PDEF_PTR(49); - Children[2] = PDEF_PTR(50); - Children[3] = PDEF_PTR(51); - Children[4] = PDEF_PTR(52); - - ParamDefTable[47].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=54, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(55); - Children[1] = PDEF_PTR(56); - Children[2] = PDEF_PTR(57); - Children[3] = PDEF_PTR(58); - Children[4] = PDEF_PTR(59); - Children[5] = PDEF_PTR(60); - Children[6] = PDEF_PTR(61); - Children[7] = PDEF_PTR(62); - Children[8] = PDEF_PTR(63); - - ParamDefTable[54].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - Children[5] = PDEF_PTR(95); - Children[6] = PDEF_PTR(96); - Children[7] = PDEF_PTR(97); - - ParamDefTable[64].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(67); - Children[2] = PDEF_PTR(68); - Children[3] = PDEF_PTR(69); - Children[4] = PDEF_PTR(70); - Children[5] = PDEF_PTR(71); - Children[6] = PDEF_PTR(72); - Children[7] = PDEF_PTR(73); - Children[8] = PDEF_PTR(74); - Children[9] = PDEF_PTR(75); - Children[10] = PDEF_PTR(76); - Children[11] = PDEF_PTR(77); - Children[12] = PDEF_PTR(78); - Children[13] = PDEF_PTR(79); - Children[14] = PDEF_PTR(80); - Children[15] = PDEF_PTR(81); - Children[16] = PDEF_PTR(82); - Children[17] = PDEF_PTR(83); - Children[18] = PDEF_PTR(84); - Children[19] = PDEF_PTR(85); - - ParamDefTable[65].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(88); - Children[1] = PDEF_PTR(89); - Children[2] = PDEF_PTR(90); - Children[3] = PDEF_PTR(91); - Children[4] = PDEF_PTR(92); - - ParamDefTable[87].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(107); - Children[2] = PDEF_PTR(108); - Children[3] = PDEF_PTR(109); - Children[4] = PDEF_PTR(110); - Children[5] = PDEF_PTR(123); - Children[6] = PDEF_PTR(124); - Children[7] = PDEF_PTR(125); - Children[8] = PDEF_PTR(126); - - ParamDefTable[98].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(100); - Children[1] = PDEF_PTR(101); - Children[2] = PDEF_PTR(102); - Children[3] = PDEF_PTR(103); - Children[4] = PDEF_PTR(104); - Children[5] = PDEF_PTR(105); - Children[6] = PDEF_PTR(106); - - ParamDefTable[99].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(111); - Children[1] = PDEF_PTR(112); - Children[2] = PDEF_PTR(113); - Children[3] = PDEF_PTR(114); - Children[4] = PDEF_PTR(115); - Children[5] = PDEF_PTR(116); - Children[6] = PDEF_PTR(117); - Children[7] = PDEF_PTR(118); - Children[8] = PDEF_PTR(119); - Children[9] = PDEF_PTR(120); - Children[10] = PDEF_PTR(121); - Children[11] = PDEF_PTR(122); - - ParamDefTable[110].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(133); - Children[2] = PDEF_PTR(134); - Children[3] = PDEF_PTR(135); - Children[4] = PDEF_PTR(136); - Children[5] = PDEF_PTR(137); - Children[6] = PDEF_PTR(138); - Children[7] = PDEF_PTR(139); - Children[8] = PDEF_PTR(140); - Children[9] = PDEF_PTR(141); - Children[10] = PDEF_PTR(142); - Children[11] = PDEF_PTR(143); - - ParamDefTable[127].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(130); - Children[2] = PDEF_PTR(131); - Children[3] = PDEF_PTR(132); - - ParamDefTable[128].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(162); - Children[4] = PDEF_PTR(163); - Children[5] = PDEF_PTR(164); - Children[6] = PDEF_PTR(165); - Children[7] = PDEF_PTR(166); - - ParamDefTable[144].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(146); - Children[1] = PDEF_PTR(147); - Children[2] = PDEF_PTR(148); - Children[3] = PDEF_PTR(149); - Children[4] = PDEF_PTR(150); - Children[5] = PDEF_PTR(151); - - ParamDefTable[145].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(158); - Children[1] = PDEF_PTR(159); - Children[2] = PDEF_PTR(160); - Children[3] = PDEF_PTR(161); - - ParamDefTable[157].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(191); - Children[6] = PDEF_PTR(192); - - ParamDefTable[167].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(170); - Children[2] = PDEF_PTR(171); - - ParamDefTable[168].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(177); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(179); - Children[4] = PDEF_PTR(180); - Children[5] = PDEF_PTR(181); - Children[6] = PDEF_PTR(182); - Children[7] = PDEF_PTR(183); - Children[8] = PDEF_PTR(184); - Children[9] = PDEF_PTR(185); - Children[10] = PDEF_PTR(186); - Children[11] = PDEF_PTR(187); - Children[12] = PDEF_PTR(188); - Children[13] = PDEF_PTR(189); - Children[14] = PDEF_PTR(190); - - ParamDefTable[175].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=193, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(194); - Children[1] = PDEF_PTR(195); - Children[2] = PDEF_PTR(198); - Children[3] = PDEF_PTR(199); - Children[4] = PDEF_PTR(200); - Children[5] = PDEF_PTR(201); - Children[6] = PDEF_PTR(202); - Children[7] = PDEF_PTR(203); - Children[8] = PDEF_PTR(204); - Children[9] = PDEF_PTR(205); - - ParamDefTable[193].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(197); - - ParamDefTable[195].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=206, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(207); - Children[1] = PDEF_PTR(208); - Children[2] = PDEF_PTR(209); - - ParamDefTable[206].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=210, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(211); - Children[1] = PDEF_PTR(212); - Children[2] = PDEF_PTR(213); - Children[3] = PDEF_PTR(214); - Children[4] = PDEF_PTR(218); - Children[5] = PDEF_PTR(222); - Children[6] = PDEF_PTR(223); - Children[7] = PDEF_PTR(224); - Children[8] = PDEF_PTR(225); - Children[9] = PDEF_PTR(226); - - ParamDefTable[210].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(215); - Children[1] = PDEF_PTR(216); - Children[2] = PDEF_PTR(217); - - ParamDefTable[214].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(219); - Children[1] = PDEF_PTR(220); - Children[2] = PDEF_PTR(221); - - ParamDefTable[218].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(227); - Children[1] = PDEF_PTR(228); - Children[2] = PDEF_PTR(229); - Children[3] = PDEF_PTR(230); - Children[4] = PDEF_PTR(231); - - ParamDefTable[226].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=232, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(233); - - ParamDefTable[232].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=233, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(234); - Children[1] = PDEF_PTR(235); - Children[2] = PDEF_PTR(236); - Children[3] = PDEF_PTR(237); - Children[4] = PDEF_PTR(241); - Children[5] = PDEF_PTR(245); - Children[6] = PDEF_PTR(246); - Children[7] = PDEF_PTR(247); - Children[8] = PDEF_PTR(248); - Children[9] = PDEF_PTR(249); - - ParamDefTable[233].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=237, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(238); - Children[1] = PDEF_PTR(239); - Children[2] = PDEF_PTR(240); - - ParamDefTable[237].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=241, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(242); - Children[1] = PDEF_PTR(243); - Children[2] = PDEF_PTR(244); - - ParamDefTable[241].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=249, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(250); - Children[1] = PDEF_PTR(251); - Children[2] = PDEF_PTR(252); - Children[3] = PDEF_PTR(253); - Children[4] = PDEF_PTR(254); - - ParamDefTable[249].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p19::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p19::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p19::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p19::initReferences(void) -{ -} - -void DestructibleActorParam_0p19::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p19::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p19::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p19.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p19NS; + +const char* const DestructibleActorParam_0p19Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 255; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 53, 64, 98, 127, + 144, 167, 193, 206, 210, 232, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 47, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, + 99, 107, 108, 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 129, 130, 131, 132, 145, 152, 157, 162, 163, 164, 165, + 166, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, + 173, 174, 175, 191, 192, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 194, 195, 198, 199, 200, 201, 202, 203, 204, 205, 196, + 197, 207, 208, 209, 211, 212, 213, 214, 218, 222, 223, 224, 225, 226, 215, 216, 217, + 219, 220, 221, 227, 228, 229, 230, 231, 233, 234, 235, 236, 237, 241, 245, 246, 247, + 248, 249, 238, 239, 240, 242, 243, 244, 250, 251, 252, 253, 254, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 19 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(196), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(206), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(208), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(211), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(221), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(224), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(227), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(232), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(233), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(243), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(246), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(249), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 +}; + + +bool DestructibleActorParam_0p19::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p19::mBuiltFlagMutex; + +DestructibleActorParam_0p19::DestructibleActorParam_0p19(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p19FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p19::~DestructibleActorParam_0p19() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p19::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p19(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p19::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p19::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p19* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p19::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p19::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p19::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p19::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p19::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(53); + Children[20] = PDEF_PTR(64); + Children[21] = PDEF_PTR(98); + Children[22] = PDEF_PTR(127); + Children[23] = PDEF_PTR(144); + Children[24] = PDEF_PTR(167); + Children[25] = PDEF_PTR(193); + Children[26] = PDEF_PTR(206); + Children[27] = PDEF_PTR(210); + Children[28] = PDEF_PTR(232); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[19]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + Children[18] = PDEF_PTR(47); + + ParamDefTable[21].setChildren(Children, 19); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(48); + Children[1] = PDEF_PTR(49); + Children[2] = PDEF_PTR(50); + Children[3] = PDEF_PTR(51); + Children[4] = PDEF_PTR(52); + + ParamDefTable[47].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=54, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(55); + Children[1] = PDEF_PTR(56); + Children[2] = PDEF_PTR(57); + Children[3] = PDEF_PTR(58); + Children[4] = PDEF_PTR(59); + Children[5] = PDEF_PTR(60); + Children[6] = PDEF_PTR(61); + Children[7] = PDEF_PTR(62); + Children[8] = PDEF_PTR(63); + + ParamDefTable[54].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + Children[5] = PDEF_PTR(95); + Children[6] = PDEF_PTR(96); + Children[7] = PDEF_PTR(97); + + ParamDefTable[64].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(67); + Children[2] = PDEF_PTR(68); + Children[3] = PDEF_PTR(69); + Children[4] = PDEF_PTR(70); + Children[5] = PDEF_PTR(71); + Children[6] = PDEF_PTR(72); + Children[7] = PDEF_PTR(73); + Children[8] = PDEF_PTR(74); + Children[9] = PDEF_PTR(75); + Children[10] = PDEF_PTR(76); + Children[11] = PDEF_PTR(77); + Children[12] = PDEF_PTR(78); + Children[13] = PDEF_PTR(79); + Children[14] = PDEF_PTR(80); + Children[15] = PDEF_PTR(81); + Children[16] = PDEF_PTR(82); + Children[17] = PDEF_PTR(83); + Children[18] = PDEF_PTR(84); + Children[19] = PDEF_PTR(85); + + ParamDefTable[65].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(88); + Children[1] = PDEF_PTR(89); + Children[2] = PDEF_PTR(90); + Children[3] = PDEF_PTR(91); + Children[4] = PDEF_PTR(92); + + ParamDefTable[87].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(107); + Children[2] = PDEF_PTR(108); + Children[3] = PDEF_PTR(109); + Children[4] = PDEF_PTR(110); + Children[5] = PDEF_PTR(123); + Children[6] = PDEF_PTR(124); + Children[7] = PDEF_PTR(125); + Children[8] = PDEF_PTR(126); + + ParamDefTable[98].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(100); + Children[1] = PDEF_PTR(101); + Children[2] = PDEF_PTR(102); + Children[3] = PDEF_PTR(103); + Children[4] = PDEF_PTR(104); + Children[5] = PDEF_PTR(105); + Children[6] = PDEF_PTR(106); + + ParamDefTable[99].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(111); + Children[1] = PDEF_PTR(112); + Children[2] = PDEF_PTR(113); + Children[3] = PDEF_PTR(114); + Children[4] = PDEF_PTR(115); + Children[5] = PDEF_PTR(116); + Children[6] = PDEF_PTR(117); + Children[7] = PDEF_PTR(118); + Children[8] = PDEF_PTR(119); + Children[9] = PDEF_PTR(120); + Children[10] = PDEF_PTR(121); + Children[11] = PDEF_PTR(122); + + ParamDefTable[110].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(133); + Children[2] = PDEF_PTR(134); + Children[3] = PDEF_PTR(135); + Children[4] = PDEF_PTR(136); + Children[5] = PDEF_PTR(137); + Children[6] = PDEF_PTR(138); + Children[7] = PDEF_PTR(139); + Children[8] = PDEF_PTR(140); + Children[9] = PDEF_PTR(141); + Children[10] = PDEF_PTR(142); + Children[11] = PDEF_PTR(143); + + ParamDefTable[127].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(130); + Children[2] = PDEF_PTR(131); + Children[3] = PDEF_PTR(132); + + ParamDefTable[128].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(162); + Children[4] = PDEF_PTR(163); + Children[5] = PDEF_PTR(164); + Children[6] = PDEF_PTR(165); + Children[7] = PDEF_PTR(166); + + ParamDefTable[144].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(146); + Children[1] = PDEF_PTR(147); + Children[2] = PDEF_PTR(148); + Children[3] = PDEF_PTR(149); + Children[4] = PDEF_PTR(150); + Children[5] = PDEF_PTR(151); + + ParamDefTable[145].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(158); + Children[1] = PDEF_PTR(159); + Children[2] = PDEF_PTR(160); + Children[3] = PDEF_PTR(161); + + ParamDefTable[157].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(191); + Children[6] = PDEF_PTR(192); + + ParamDefTable[167].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(170); + Children[2] = PDEF_PTR(171); + + ParamDefTable[168].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(177); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(179); + Children[4] = PDEF_PTR(180); + Children[5] = PDEF_PTR(181); + Children[6] = PDEF_PTR(182); + Children[7] = PDEF_PTR(183); + Children[8] = PDEF_PTR(184); + Children[9] = PDEF_PTR(185); + Children[10] = PDEF_PTR(186); + Children[11] = PDEF_PTR(187); + Children[12] = PDEF_PTR(188); + Children[13] = PDEF_PTR(189); + Children[14] = PDEF_PTR(190); + + ParamDefTable[175].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=193, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(194); + Children[1] = PDEF_PTR(195); + Children[2] = PDEF_PTR(198); + Children[3] = PDEF_PTR(199); + Children[4] = PDEF_PTR(200); + Children[5] = PDEF_PTR(201); + Children[6] = PDEF_PTR(202); + Children[7] = PDEF_PTR(203); + Children[8] = PDEF_PTR(204); + Children[9] = PDEF_PTR(205); + + ParamDefTable[193].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(197); + + ParamDefTable[195].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=206, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(207); + Children[1] = PDEF_PTR(208); + Children[2] = PDEF_PTR(209); + + ParamDefTable[206].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=210, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(211); + Children[1] = PDEF_PTR(212); + Children[2] = PDEF_PTR(213); + Children[3] = PDEF_PTR(214); + Children[4] = PDEF_PTR(218); + Children[5] = PDEF_PTR(222); + Children[6] = PDEF_PTR(223); + Children[7] = PDEF_PTR(224); + Children[8] = PDEF_PTR(225); + Children[9] = PDEF_PTR(226); + + ParamDefTable[210].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(215); + Children[1] = PDEF_PTR(216); + Children[2] = PDEF_PTR(217); + + ParamDefTable[214].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(219); + Children[1] = PDEF_PTR(220); + Children[2] = PDEF_PTR(221); + + ParamDefTable[218].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(227); + Children[1] = PDEF_PTR(228); + Children[2] = PDEF_PTR(229); + Children[3] = PDEF_PTR(230); + Children[4] = PDEF_PTR(231); + + ParamDefTable[226].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=232, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(233); + + ParamDefTable[232].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=233, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(234); + Children[1] = PDEF_PTR(235); + Children[2] = PDEF_PTR(236); + Children[3] = PDEF_PTR(237); + Children[4] = PDEF_PTR(241); + Children[5] = PDEF_PTR(245); + Children[6] = PDEF_PTR(246); + Children[7] = PDEF_PTR(247); + Children[8] = PDEF_PTR(248); + Children[9] = PDEF_PTR(249); + + ParamDefTable[233].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=237, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(238); + Children[1] = PDEF_PTR(239); + Children[2] = PDEF_PTR(240); + + ParamDefTable[237].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=241, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(242); + Children[1] = PDEF_PTR(243); + Children[2] = PDEF_PTR(244); + + ParamDefTable[241].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=249, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(250); + Children[1] = PDEF_PTR(251); + Children[2] = PDEF_PTR(252); + Children[3] = PDEF_PTR(253); + Children[4] = PDEF_PTR(254); + + ParamDefTable[249].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p19::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p19::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p19::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p19::initReferences(void) +{ +} + +void DestructibleActorParam_0p19::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p19::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p19::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p2.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p2.cpp old mode 100644 new mode 100755 index 19e7274..954be3b --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p2.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p2.cpp @@ -1,4102 +1,4102 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p2NS; - -const char* const DestructibleActorParam_0p2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 141; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 9, 11, 51, 61, 95, 124, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 41, 42, 43, 44, 45, 33, 34, 35, - 36, 37, 38, 39, 40, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 83, - 84, 90, 91, 92, 93, 94, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 96, 104, 105, 106, 107, 120, 121, 122, 123, - 97, 98, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 118, 119, 125, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 126, 127, 128, - 129, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 13 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(13), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(14), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(15), 26 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(41), 8 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(49), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(54), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(55), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold -}; - - -bool DestructibleActorParam_0p2::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p2::mBuiltFlagMutex; - -DestructibleActorParam_0p2::DestructibleActorParam_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p2::~DestructibleActorParam_0p2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p2::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.WORLD_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.grbVolumeLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); - HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.grbParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); - HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[13]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(9); - Children[8] = PDEF_PTR(11); - Children[9] = PDEF_PTR(51); - Children[10] = PDEF_PTR(61); - Children[11] = PDEF_PTR(95); - Children[12] = PDEF_PTR(124); - - ParamDefTable[0].setChildren(Children, 13); - } - - // SetChildren for: nodeIndex=7, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=9, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(10); - - ParamDefTable[9].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=11, longName="destructibleParameters" - { - static Definition* Children[26]; - Children[0] = PDEF_PTR(12); - Children[1] = PDEF_PTR(13); - Children[2] = PDEF_PTR(14); - Children[3] = PDEF_PTR(15); - Children[4] = PDEF_PTR(16); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - Children[11] = PDEF_PTR(23); - Children[12] = PDEF_PTR(24); - Children[13] = PDEF_PTR(25); - Children[14] = PDEF_PTR(26); - Children[15] = PDEF_PTR(27); - Children[16] = PDEF_PTR(28); - Children[17] = PDEF_PTR(29); - Children[18] = PDEF_PTR(30); - Children[19] = PDEF_PTR(31); - Children[20] = PDEF_PTR(32); - Children[21] = PDEF_PTR(41); - Children[22] = PDEF_PTR(42); - Children[23] = PDEF_PTR(43); - Children[24] = PDEF_PTR(44); - Children[25] = PDEF_PTR(45); - - ParamDefTable[11].setChildren(Children, 26); - } - - // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - Children[3] = PDEF_PTR(36); - Children[4] = PDEF_PTR(37); - Children[5] = PDEF_PTR(38); - Children[6] = PDEF_PTR(39); - Children[7] = PDEF_PTR(40); - - ParamDefTable[32].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - - ParamDefTable[52].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=61, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(62); - Children[1] = PDEF_PTR(83); - Children[2] = PDEF_PTR(84); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - Children[5] = PDEF_PTR(92); - Children[6] = PDEF_PTR(93); - Children[7] = PDEF_PTR(94); - - ParamDefTable[61].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=62, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(64); - Children[2] = PDEF_PTR(65); - Children[3] = PDEF_PTR(66); - Children[4] = PDEF_PTR(67); - Children[5] = PDEF_PTR(68); - Children[6] = PDEF_PTR(69); - Children[7] = PDEF_PTR(70); - Children[8] = PDEF_PTR(71); - Children[9] = PDEF_PTR(72); - Children[10] = PDEF_PTR(73); - Children[11] = PDEF_PTR(74); - Children[12] = PDEF_PTR(75); - Children[13] = PDEF_PTR(76); - Children[14] = PDEF_PTR(77); - Children[15] = PDEF_PTR(78); - Children[16] = PDEF_PTR(79); - Children[17] = PDEF_PTR(80); - Children[18] = PDEF_PTR(81); - Children[19] = PDEF_PTR(82); - - ParamDefTable[62].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=84, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(85); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(88); - Children[4] = PDEF_PTR(89); - - ParamDefTable[84].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=95, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(104); - Children[2] = PDEF_PTR(105); - Children[3] = PDEF_PTR(106); - Children[4] = PDEF_PTR(107); - Children[5] = PDEF_PTR(120); - Children[6] = PDEF_PTR(121); - Children[7] = PDEF_PTR(122); - Children[8] = PDEF_PTR(123); - - ParamDefTable[95].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=96, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(98); - Children[2] = PDEF_PTR(99); - Children[3] = PDEF_PTR(100); - Children[4] = PDEF_PTR(101); - Children[5] = PDEF_PTR(102); - Children[6] = PDEF_PTR(103); - - ParamDefTable[96].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(108); - Children[1] = PDEF_PTR(109); - Children[2] = PDEF_PTR(110); - Children[3] = PDEF_PTR(111); - Children[4] = PDEF_PTR(112); - Children[5] = PDEF_PTR(113); - Children[6] = PDEF_PTR(114); - Children[7] = PDEF_PTR(115); - Children[8] = PDEF_PTR(116); - Children[9] = PDEF_PTR(117); - Children[10] = PDEF_PTR(118); - Children[11] = PDEF_PTR(119); - - ParamDefTable[107].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=124, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(125); - Children[1] = PDEF_PTR(130); - Children[2] = PDEF_PTR(131); - Children[3] = PDEF_PTR(132); - Children[4] = PDEF_PTR(133); - Children[5] = PDEF_PTR(134); - Children[6] = PDEF_PTR(135); - Children[7] = PDEF_PTR(136); - Children[8] = PDEF_PTR(137); - Children[9] = PDEF_PTR(138); - Children[10] = PDEF_PTR(139); - Children[11] = PDEF_PTR(140); - - ParamDefTable[124].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=125, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(126); - Children[1] = PDEF_PTR(127); - Children[2] = PDEF_PTR(128); - Children[3] = PDEF_PTR(129); - - ParamDefTable[125].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p2::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p2::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.formExtendedStructures = uint32_t(0); - destructibleParameters.supportDepth = uint32_t(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.massScaleExponent = float(0.5); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); - destructibleParameters.flags.WORLD_SUPPORT = bool(false); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.grbVolumeLimit = float(0.2); - destructibleParameters.grbParticleSpacing = float(0.1); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p2::initReferences(void) -{ -} - -void DestructibleActorParam_0p2::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p2::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p2::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p2NS; + +const char* const DestructibleActorParam_0p2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 141; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 9, 11, 51, 61, 95, 124, 8, 10, 12, 13, 14, 15, 16, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 41, 42, 43, 44, 45, 33, 34, 35, + 36, 37, 38, 39, 40, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 62, 83, + 84, 90, 91, 92, 93, 94, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 85, 86, 87, 88, 89, 96, 104, 105, 106, 107, 120, 121, 122, 123, + 97, 98, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 125, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 126, 127, 128, + 129, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 13 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(13), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(14), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(15), 26 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(41), 8 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(49), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(54), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(55), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold +}; + + +bool DestructibleActorParam_0p2::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p2::mBuiltFlagMutex; + +DestructibleActorParam_0p2::DestructibleActorParam_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p2::~DestructibleActorParam_0p2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p2::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.WORLD_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.grbVolumeLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); + HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.grbParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); + HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[13]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(9); + Children[8] = PDEF_PTR(11); + Children[9] = PDEF_PTR(51); + Children[10] = PDEF_PTR(61); + Children[11] = PDEF_PTR(95); + Children[12] = PDEF_PTR(124); + + ParamDefTable[0].setChildren(Children, 13); + } + + // SetChildren for: nodeIndex=7, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=9, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(10); + + ParamDefTable[9].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=11, longName="destructibleParameters" + { + static Definition* Children[26]; + Children[0] = PDEF_PTR(12); + Children[1] = PDEF_PTR(13); + Children[2] = PDEF_PTR(14); + Children[3] = PDEF_PTR(15); + Children[4] = PDEF_PTR(16); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + Children[11] = PDEF_PTR(23); + Children[12] = PDEF_PTR(24); + Children[13] = PDEF_PTR(25); + Children[14] = PDEF_PTR(26); + Children[15] = PDEF_PTR(27); + Children[16] = PDEF_PTR(28); + Children[17] = PDEF_PTR(29); + Children[18] = PDEF_PTR(30); + Children[19] = PDEF_PTR(31); + Children[20] = PDEF_PTR(32); + Children[21] = PDEF_PTR(41); + Children[22] = PDEF_PTR(42); + Children[23] = PDEF_PTR(43); + Children[24] = PDEF_PTR(44); + Children[25] = PDEF_PTR(45); + + ParamDefTable[11].setChildren(Children, 26); + } + + // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + Children[3] = PDEF_PTR(36); + Children[4] = PDEF_PTR(37); + Children[5] = PDEF_PTR(38); + Children[6] = PDEF_PTR(39); + Children[7] = PDEF_PTR(40); + + ParamDefTable[32].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + + ParamDefTable[52].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=61, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(62); + Children[1] = PDEF_PTR(83); + Children[2] = PDEF_PTR(84); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + Children[5] = PDEF_PTR(92); + Children[6] = PDEF_PTR(93); + Children[7] = PDEF_PTR(94); + + ParamDefTable[61].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=62, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(64); + Children[2] = PDEF_PTR(65); + Children[3] = PDEF_PTR(66); + Children[4] = PDEF_PTR(67); + Children[5] = PDEF_PTR(68); + Children[6] = PDEF_PTR(69); + Children[7] = PDEF_PTR(70); + Children[8] = PDEF_PTR(71); + Children[9] = PDEF_PTR(72); + Children[10] = PDEF_PTR(73); + Children[11] = PDEF_PTR(74); + Children[12] = PDEF_PTR(75); + Children[13] = PDEF_PTR(76); + Children[14] = PDEF_PTR(77); + Children[15] = PDEF_PTR(78); + Children[16] = PDEF_PTR(79); + Children[17] = PDEF_PTR(80); + Children[18] = PDEF_PTR(81); + Children[19] = PDEF_PTR(82); + + ParamDefTable[62].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=84, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(85); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(88); + Children[4] = PDEF_PTR(89); + + ParamDefTable[84].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=95, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(104); + Children[2] = PDEF_PTR(105); + Children[3] = PDEF_PTR(106); + Children[4] = PDEF_PTR(107); + Children[5] = PDEF_PTR(120); + Children[6] = PDEF_PTR(121); + Children[7] = PDEF_PTR(122); + Children[8] = PDEF_PTR(123); + + ParamDefTable[95].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=96, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(98); + Children[2] = PDEF_PTR(99); + Children[3] = PDEF_PTR(100); + Children[4] = PDEF_PTR(101); + Children[5] = PDEF_PTR(102); + Children[6] = PDEF_PTR(103); + + ParamDefTable[96].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=107, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(108); + Children[1] = PDEF_PTR(109); + Children[2] = PDEF_PTR(110); + Children[3] = PDEF_PTR(111); + Children[4] = PDEF_PTR(112); + Children[5] = PDEF_PTR(113); + Children[6] = PDEF_PTR(114); + Children[7] = PDEF_PTR(115); + Children[8] = PDEF_PTR(116); + Children[9] = PDEF_PTR(117); + Children[10] = PDEF_PTR(118); + Children[11] = PDEF_PTR(119); + + ParamDefTable[107].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=124, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(125); + Children[1] = PDEF_PTR(130); + Children[2] = PDEF_PTR(131); + Children[3] = PDEF_PTR(132); + Children[4] = PDEF_PTR(133); + Children[5] = PDEF_PTR(134); + Children[6] = PDEF_PTR(135); + Children[7] = PDEF_PTR(136); + Children[8] = PDEF_PTR(137); + Children[9] = PDEF_PTR(138); + Children[10] = PDEF_PTR(139); + Children[11] = PDEF_PTR(140); + + ParamDefTable[124].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=125, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(126); + Children[1] = PDEF_PTR(127); + Children[2] = PDEF_PTR(128); + Children[3] = PDEF_PTR(129); + + ParamDefTable[125].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p2::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p2::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.formExtendedStructures = uint32_t(0); + destructibleParameters.supportDepth = uint32_t(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.massScaleExponent = float(0.5); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); + destructibleParameters.flags.WORLD_SUPPORT = bool(false); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.grbVolumeLimit = float(0.2); + destructibleParameters.grbParticleSpacing = float(0.1); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p2::initReferences(void) +{ +} + +void DestructibleActorParam_0p2::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p2::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p2::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p20.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p20.cpp old mode 100644 new mode 100755 index b44364e..ed4f9fa --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p20.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p20.cpp @@ -1,7255 +1,7255 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p20.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p20NS; - -const char* const DestructibleActorParam_0p20Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 257; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 53, 64, 98, 127, - 144, 167, 193, 206, 210, 233, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 47, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, - 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, - 99, 107, 108, 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, - 138, 139, 140, 141, 142, 143, 129, 130, 131, 132, 145, 152, 157, 162, 163, 164, 165, - 166, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, - 173, 174, 175, 191, 192, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, 188, 189, 190, 194, 195, 198, 199, 200, 201, 202, 203, 204, 205, 196, - 197, 207, 208, 209, 211, 212, 213, 214, 218, 222, 223, 224, 225, 226, 232, 215, 216, - 217, 219, 220, 221, 227, 228, 229, 230, 231, 234, 235, 236, 237, 238, 242, 246, 247, - 248, 249, 250, 256, 239, 240, 241, 243, 244, 245, 251, 252, 253, 254, 255, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 19 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(196), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(206), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(208), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(211), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(222), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(225), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(228), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(233), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(234), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(245), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(248), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(251), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData -}; - - -bool DestructibleActorParam_0p20::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p20::mBuiltFlagMutex; - -DestructibleActorParam_0p20::DestructibleActorParam_0p20(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p20FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p20::~DestructibleActorParam_0p20() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p20::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p20(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p20::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p20::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p20* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p20::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p20::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p20::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p20::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p20::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(53); - Children[20] = PDEF_PTR(64); - Children[21] = PDEF_PTR(98); - Children[22] = PDEF_PTR(127); - Children[23] = PDEF_PTR(144); - Children[24] = PDEF_PTR(167); - Children[25] = PDEF_PTR(193); - Children[26] = PDEF_PTR(206); - Children[27] = PDEF_PTR(210); - Children[28] = PDEF_PTR(233); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[19]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - Children[18] = PDEF_PTR(47); - - ParamDefTable[21].setChildren(Children, 19); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(48); - Children[1] = PDEF_PTR(49); - Children[2] = PDEF_PTR(50); - Children[3] = PDEF_PTR(51); - Children[4] = PDEF_PTR(52); - - ParamDefTable[47].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=54, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(55); - Children[1] = PDEF_PTR(56); - Children[2] = PDEF_PTR(57); - Children[3] = PDEF_PTR(58); - Children[4] = PDEF_PTR(59); - Children[5] = PDEF_PTR(60); - Children[6] = PDEF_PTR(61); - Children[7] = PDEF_PTR(62); - Children[8] = PDEF_PTR(63); - - ParamDefTable[54].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(65); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - Children[5] = PDEF_PTR(95); - Children[6] = PDEF_PTR(96); - Children[7] = PDEF_PTR(97); - - ParamDefTable[64].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(67); - Children[2] = PDEF_PTR(68); - Children[3] = PDEF_PTR(69); - Children[4] = PDEF_PTR(70); - Children[5] = PDEF_PTR(71); - Children[6] = PDEF_PTR(72); - Children[7] = PDEF_PTR(73); - Children[8] = PDEF_PTR(74); - Children[9] = PDEF_PTR(75); - Children[10] = PDEF_PTR(76); - Children[11] = PDEF_PTR(77); - Children[12] = PDEF_PTR(78); - Children[13] = PDEF_PTR(79); - Children[14] = PDEF_PTR(80); - Children[15] = PDEF_PTR(81); - Children[16] = PDEF_PTR(82); - Children[17] = PDEF_PTR(83); - Children[18] = PDEF_PTR(84); - Children[19] = PDEF_PTR(85); - - ParamDefTable[65].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(88); - Children[1] = PDEF_PTR(89); - Children[2] = PDEF_PTR(90); - Children[3] = PDEF_PTR(91); - Children[4] = PDEF_PTR(92); - - ParamDefTable[87].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=98, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(107); - Children[2] = PDEF_PTR(108); - Children[3] = PDEF_PTR(109); - Children[4] = PDEF_PTR(110); - Children[5] = PDEF_PTR(123); - Children[6] = PDEF_PTR(124); - Children[7] = PDEF_PTR(125); - Children[8] = PDEF_PTR(126); - - ParamDefTable[98].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(100); - Children[1] = PDEF_PTR(101); - Children[2] = PDEF_PTR(102); - Children[3] = PDEF_PTR(103); - Children[4] = PDEF_PTR(104); - Children[5] = PDEF_PTR(105); - Children[6] = PDEF_PTR(106); - - ParamDefTable[99].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(111); - Children[1] = PDEF_PTR(112); - Children[2] = PDEF_PTR(113); - Children[3] = PDEF_PTR(114); - Children[4] = PDEF_PTR(115); - Children[5] = PDEF_PTR(116); - Children[6] = PDEF_PTR(117); - Children[7] = PDEF_PTR(118); - Children[8] = PDEF_PTR(119); - Children[9] = PDEF_PTR(120); - Children[10] = PDEF_PTR(121); - Children[11] = PDEF_PTR(122); - - ParamDefTable[110].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(133); - Children[2] = PDEF_PTR(134); - Children[3] = PDEF_PTR(135); - Children[4] = PDEF_PTR(136); - Children[5] = PDEF_PTR(137); - Children[6] = PDEF_PTR(138); - Children[7] = PDEF_PTR(139); - Children[8] = PDEF_PTR(140); - Children[9] = PDEF_PTR(141); - Children[10] = PDEF_PTR(142); - Children[11] = PDEF_PTR(143); - - ParamDefTable[127].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(130); - Children[2] = PDEF_PTR(131); - Children[3] = PDEF_PTR(132); - - ParamDefTable[128].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(145); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(162); - Children[4] = PDEF_PTR(163); - Children[5] = PDEF_PTR(164); - Children[6] = PDEF_PTR(165); - Children[7] = PDEF_PTR(166); - - ParamDefTable[144].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(146); - Children[1] = PDEF_PTR(147); - Children[2] = PDEF_PTR(148); - Children[3] = PDEF_PTR(149); - Children[4] = PDEF_PTR(150); - Children[5] = PDEF_PTR(151); - - ParamDefTable[145].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(158); - Children[1] = PDEF_PTR(159); - Children[2] = PDEF_PTR(160); - Children[3] = PDEF_PTR(161); - - ParamDefTable[157].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(191); - Children[6] = PDEF_PTR(192); - - ParamDefTable[167].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(169); - Children[1] = PDEF_PTR(170); - Children[2] = PDEF_PTR(171); - - ParamDefTable[168].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(177); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(179); - Children[4] = PDEF_PTR(180); - Children[5] = PDEF_PTR(181); - Children[6] = PDEF_PTR(182); - Children[7] = PDEF_PTR(183); - Children[8] = PDEF_PTR(184); - Children[9] = PDEF_PTR(185); - Children[10] = PDEF_PTR(186); - Children[11] = PDEF_PTR(187); - Children[12] = PDEF_PTR(188); - Children[13] = PDEF_PTR(189); - Children[14] = PDEF_PTR(190); - - ParamDefTable[175].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=193, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(194); - Children[1] = PDEF_PTR(195); - Children[2] = PDEF_PTR(198); - Children[3] = PDEF_PTR(199); - Children[4] = PDEF_PTR(200); - Children[5] = PDEF_PTR(201); - Children[6] = PDEF_PTR(202); - Children[7] = PDEF_PTR(203); - Children[8] = PDEF_PTR(204); - Children[9] = PDEF_PTR(205); - - ParamDefTable[193].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(197); - - ParamDefTable[195].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=206, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(207); - Children[1] = PDEF_PTR(208); - Children[2] = PDEF_PTR(209); - - ParamDefTable[206].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=210, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(211); - Children[1] = PDEF_PTR(212); - Children[2] = PDEF_PTR(213); - Children[3] = PDEF_PTR(214); - Children[4] = PDEF_PTR(218); - Children[5] = PDEF_PTR(222); - Children[6] = PDEF_PTR(223); - Children[7] = PDEF_PTR(224); - Children[8] = PDEF_PTR(225); - Children[9] = PDEF_PTR(226); - Children[10] = PDEF_PTR(232); - - ParamDefTable[210].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(215); - Children[1] = PDEF_PTR(216); - Children[2] = PDEF_PTR(217); - - ParamDefTable[214].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(219); - Children[1] = PDEF_PTR(220); - Children[2] = PDEF_PTR(221); - - ParamDefTable[218].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(227); - Children[1] = PDEF_PTR(228); - Children[2] = PDEF_PTR(229); - Children[3] = PDEF_PTR(230); - Children[4] = PDEF_PTR(231); - - ParamDefTable[226].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=233, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(234); - - ParamDefTable[233].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=234, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(235); - Children[1] = PDEF_PTR(236); - Children[2] = PDEF_PTR(237); - Children[3] = PDEF_PTR(238); - Children[4] = PDEF_PTR(242); - Children[5] = PDEF_PTR(246); - Children[6] = PDEF_PTR(247); - Children[7] = PDEF_PTR(248); - Children[8] = PDEF_PTR(249); - Children[9] = PDEF_PTR(250); - Children[10] = PDEF_PTR(256); - - ParamDefTable[234].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=238, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - - ParamDefTable[238].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(243); - Children[1] = PDEF_PTR(244); - Children[2] = PDEF_PTR(245); - - ParamDefTable[242].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=250, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(251); - Children[1] = PDEF_PTR(252); - Children[2] = PDEF_PTR(253); - Children[3] = PDEF_PTR(254); - Children[4] = PDEF_PTR(255); - - ParamDefTable[250].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p20::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p20::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p20::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p20::initReferences(void) -{ -} - -void DestructibleActorParam_0p20::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p20::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p20::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p20.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p20NS; + +const char* const DestructibleActorParam_0p20Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 257; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 53, 64, 98, 127, + 144, 167, 193, 206, 210, 233, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 47, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 65, 86, 87, 93, 94, 95, 96, 97, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 89, 90, 91, 92, + 99, 107, 108, 109, 110, 123, 124, 125, 126, 100, 101, 102, 103, 104, 105, 106, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 128, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 129, 130, 131, 132, 145, 152, 157, 162, 163, 164, 165, + 166, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 158, 159, 160, 161, 168, 172, + 173, 174, 175, 191, 192, 169, 170, 171, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 194, 195, 198, 199, 200, 201, 202, 203, 204, 205, 196, + 197, 207, 208, 209, 211, 212, 213, 214, 218, 222, 223, 224, 225, 226, 232, 215, 216, + 217, 219, 220, 221, 227, 228, 229, 230, 231, 234, 235, 236, 237, 238, 242, 246, 247, + 248, 249, 250, 256, 239, 240, 241, 243, 244, 245, 251, 252, 253, 254, 255, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 19 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(50), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(57), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(62), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(63), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(72), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(80), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(100), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(105), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(114), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(121), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(133), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(145), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(149), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(157), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(167), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(171), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(178), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(181), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(196), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(206), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(208), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(211), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(222), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(225), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(228), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(233), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(234), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(245), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(248), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(251), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData +}; + + +bool DestructibleActorParam_0p20::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p20::mBuiltFlagMutex; + +DestructibleActorParam_0p20::DestructibleActorParam_0p20(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p20FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p20::~DestructibleActorParam_0p20() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p20::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p20(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p20::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p20::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p20* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p20::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p20::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p20::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p20::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p20::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(53); + Children[20] = PDEF_PTR(64); + Children[21] = PDEF_PTR(98); + Children[22] = PDEF_PTR(127); + Children[23] = PDEF_PTR(144); + Children[24] = PDEF_PTR(167); + Children[25] = PDEF_PTR(193); + Children[26] = PDEF_PTR(206); + Children[27] = PDEF_PTR(210); + Children[28] = PDEF_PTR(233); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[19]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + Children[18] = PDEF_PTR(47); + + ParamDefTable[21].setChildren(Children, 19); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(48); + Children[1] = PDEF_PTR(49); + Children[2] = PDEF_PTR(50); + Children[3] = PDEF_PTR(51); + Children[4] = PDEF_PTR(52); + + ParamDefTable[47].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=54, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(55); + Children[1] = PDEF_PTR(56); + Children[2] = PDEF_PTR(57); + Children[3] = PDEF_PTR(58); + Children[4] = PDEF_PTR(59); + Children[5] = PDEF_PTR(60); + Children[6] = PDEF_PTR(61); + Children[7] = PDEF_PTR(62); + Children[8] = PDEF_PTR(63); + + ParamDefTable[54].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=64, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(65); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + Children[5] = PDEF_PTR(95); + Children[6] = PDEF_PTR(96); + Children[7] = PDEF_PTR(97); + + ParamDefTable[64].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=65, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(67); + Children[2] = PDEF_PTR(68); + Children[3] = PDEF_PTR(69); + Children[4] = PDEF_PTR(70); + Children[5] = PDEF_PTR(71); + Children[6] = PDEF_PTR(72); + Children[7] = PDEF_PTR(73); + Children[8] = PDEF_PTR(74); + Children[9] = PDEF_PTR(75); + Children[10] = PDEF_PTR(76); + Children[11] = PDEF_PTR(77); + Children[12] = PDEF_PTR(78); + Children[13] = PDEF_PTR(79); + Children[14] = PDEF_PTR(80); + Children[15] = PDEF_PTR(81); + Children[16] = PDEF_PTR(82); + Children[17] = PDEF_PTR(83); + Children[18] = PDEF_PTR(84); + Children[19] = PDEF_PTR(85); + + ParamDefTable[65].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(88); + Children[1] = PDEF_PTR(89); + Children[2] = PDEF_PTR(90); + Children[3] = PDEF_PTR(91); + Children[4] = PDEF_PTR(92); + + ParamDefTable[87].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=98, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(107); + Children[2] = PDEF_PTR(108); + Children[3] = PDEF_PTR(109); + Children[4] = PDEF_PTR(110); + Children[5] = PDEF_PTR(123); + Children[6] = PDEF_PTR(124); + Children[7] = PDEF_PTR(125); + Children[8] = PDEF_PTR(126); + + ParamDefTable[98].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=99, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(100); + Children[1] = PDEF_PTR(101); + Children[2] = PDEF_PTR(102); + Children[3] = PDEF_PTR(103); + Children[4] = PDEF_PTR(104); + Children[5] = PDEF_PTR(105); + Children[6] = PDEF_PTR(106); + + ParamDefTable[99].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=110, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(111); + Children[1] = PDEF_PTR(112); + Children[2] = PDEF_PTR(113); + Children[3] = PDEF_PTR(114); + Children[4] = PDEF_PTR(115); + Children[5] = PDEF_PTR(116); + Children[6] = PDEF_PTR(117); + Children[7] = PDEF_PTR(118); + Children[8] = PDEF_PTR(119); + Children[9] = PDEF_PTR(120); + Children[10] = PDEF_PTR(121); + Children[11] = PDEF_PTR(122); + + ParamDefTable[110].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=127, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(133); + Children[2] = PDEF_PTR(134); + Children[3] = PDEF_PTR(135); + Children[4] = PDEF_PTR(136); + Children[5] = PDEF_PTR(137); + Children[6] = PDEF_PTR(138); + Children[7] = PDEF_PTR(139); + Children[8] = PDEF_PTR(140); + Children[9] = PDEF_PTR(141); + Children[10] = PDEF_PTR(142); + Children[11] = PDEF_PTR(143); + + ParamDefTable[127].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=128, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(130); + Children[2] = PDEF_PTR(131); + Children[3] = PDEF_PTR(132); + + ParamDefTable[128].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=144, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(145); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(162); + Children[4] = PDEF_PTR(163); + Children[5] = PDEF_PTR(164); + Children[6] = PDEF_PTR(165); + Children[7] = PDEF_PTR(166); + + ParamDefTable[144].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=145, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(146); + Children[1] = PDEF_PTR(147); + Children[2] = PDEF_PTR(148); + Children[3] = PDEF_PTR(149); + Children[4] = PDEF_PTR(150); + Children[5] = PDEF_PTR(151); + + ParamDefTable[145].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(158); + Children[1] = PDEF_PTR(159); + Children[2] = PDEF_PTR(160); + Children[3] = PDEF_PTR(161); + + ParamDefTable[157].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(191); + Children[6] = PDEF_PTR(192); + + ParamDefTable[167].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=168, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(169); + Children[1] = PDEF_PTR(170); + Children[2] = PDEF_PTR(171); + + ParamDefTable[168].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(177); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(179); + Children[4] = PDEF_PTR(180); + Children[5] = PDEF_PTR(181); + Children[6] = PDEF_PTR(182); + Children[7] = PDEF_PTR(183); + Children[8] = PDEF_PTR(184); + Children[9] = PDEF_PTR(185); + Children[10] = PDEF_PTR(186); + Children[11] = PDEF_PTR(187); + Children[12] = PDEF_PTR(188); + Children[13] = PDEF_PTR(189); + Children[14] = PDEF_PTR(190); + + ParamDefTable[175].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=193, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(194); + Children[1] = PDEF_PTR(195); + Children[2] = PDEF_PTR(198); + Children[3] = PDEF_PTR(199); + Children[4] = PDEF_PTR(200); + Children[5] = PDEF_PTR(201); + Children[6] = PDEF_PTR(202); + Children[7] = PDEF_PTR(203); + Children[8] = PDEF_PTR(204); + Children[9] = PDEF_PTR(205); + + ParamDefTable[193].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=195, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(197); + + ParamDefTable[195].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=206, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(207); + Children[1] = PDEF_PTR(208); + Children[2] = PDEF_PTR(209); + + ParamDefTable[206].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=210, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(211); + Children[1] = PDEF_PTR(212); + Children[2] = PDEF_PTR(213); + Children[3] = PDEF_PTR(214); + Children[4] = PDEF_PTR(218); + Children[5] = PDEF_PTR(222); + Children[6] = PDEF_PTR(223); + Children[7] = PDEF_PTR(224); + Children[8] = PDEF_PTR(225); + Children[9] = PDEF_PTR(226); + Children[10] = PDEF_PTR(232); + + ParamDefTable[210].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=214, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(215); + Children[1] = PDEF_PTR(216); + Children[2] = PDEF_PTR(217); + + ParamDefTable[214].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=218, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(219); + Children[1] = PDEF_PTR(220); + Children[2] = PDEF_PTR(221); + + ParamDefTable[218].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=226, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(227); + Children[1] = PDEF_PTR(228); + Children[2] = PDEF_PTR(229); + Children[3] = PDEF_PTR(230); + Children[4] = PDEF_PTR(231); + + ParamDefTable[226].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=233, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(234); + + ParamDefTable[233].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=234, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(235); + Children[1] = PDEF_PTR(236); + Children[2] = PDEF_PTR(237); + Children[3] = PDEF_PTR(238); + Children[4] = PDEF_PTR(242); + Children[5] = PDEF_PTR(246); + Children[6] = PDEF_PTR(247); + Children[7] = PDEF_PTR(248); + Children[8] = PDEF_PTR(249); + Children[9] = PDEF_PTR(250); + Children[10] = PDEF_PTR(256); + + ParamDefTable[234].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=238, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + + ParamDefTable[238].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=242, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(243); + Children[1] = PDEF_PTR(244); + Children[2] = PDEF_PTR(245); + + ParamDefTable[242].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=250, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(251); + Children[1] = PDEF_PTR(252); + Children[2] = PDEF_PTR(253); + Children[3] = PDEF_PTR(254); + Children[4] = PDEF_PTR(255); + + ParamDefTable[250].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p20::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p20::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p20::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p20::initReferences(void) +{ +} + +void DestructibleActorParam_0p20::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p20::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p20::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p21.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p21.cpp old mode 100644 new mode 100755 index 10b5af9..7b17420 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p21.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p21.cpp @@ -1,7768 +1,7768 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p21.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p21NS; - -const char* const DestructibleActorParam_0p21Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 276; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 72, 83, 117, 146, - 163, 186, 212, 225, 229, 252, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 47, 53, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, - 54, 55, 56, 57, 58, 59, 65, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 84, 105, 106, 112, 113, 114, 115, 116, 85, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 107, 108, 109, - 110, 111, 118, 126, 127, 128, 129, 142, 143, 144, 145, 119, 120, 121, 122, 123, 124, - 125, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 147, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 148, 149, 150, 151, 164, 171, 176, 181, 182, - 183, 184, 185, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 177, 178, 179, 180, - 187, 191, 192, 193, 194, 210, 211, 188, 189, 190, 195, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 213, 214, 217, 218, 219, 220, 221, 222, 223, - 224, 215, 216, 226, 227, 228, 230, 231, 232, 233, 237, 241, 242, 243, 244, 245, 251, - 234, 235, 236, 238, 239, 240, 246, 247, 248, 249, 250, 253, 254, 255, 256, 257, 261, - 265, 266, 267, 268, 269, 275, 258, 259, 260, 262, 263, 264, 270, 271, 272, 273, 274, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(51), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(58), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(63), 7 }, // destructibleParameters.runtimeFracture - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(70), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(75), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(81), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(82), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(91), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(99), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(119), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(124), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(133), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(140), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(152), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(164), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(168), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(176), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(182), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(186), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(190), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(197), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(200), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(215), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(225), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(227), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(230), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(241), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(244), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(247), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(252), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(253), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(264), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(267), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(270), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData -}; - - -bool DestructibleActorParam_0p21::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p21::mBuiltFlagMutex; - -DestructibleActorParam_0p21::DestructibleActorParam_0p21(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p21FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p21::~DestructibleActorParam_0p21() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p21::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p21(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p21::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p21::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p21* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p21::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p21::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p21::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p21::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p21::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(72); - Children[20] = PDEF_PTR(83); - Children[21] = PDEF_PTR(117); - Children[22] = PDEF_PTR(146); - Children[23] = PDEF_PTR(163); - Children[24] = PDEF_PTR(186); - Children[25] = PDEF_PTR(212); - Children[26] = PDEF_PTR(225); - Children[27] = PDEF_PTR(229); - Children[28] = PDEF_PTR(252); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - Children[18] = PDEF_PTR(47); - Children[19] = PDEF_PTR(53); - - ParamDefTable[21].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(48); - Children[1] = PDEF_PTR(49); - Children[2] = PDEF_PTR(50); - Children[3] = PDEF_PTR(51); - Children[4] = PDEF_PTR(52); - - ParamDefTable[47].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=53, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(65); - - ParamDefTable[53].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - - ParamDefTable[59].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(67); - Children[2] = PDEF_PTR(68); - Children[3] = PDEF_PTR(69); - Children[4] = PDEF_PTR(70); - Children[5] = PDEF_PTR(71); - - ParamDefTable[65].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=72, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(73); - - ParamDefTable[72].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=73, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(74); - Children[1] = PDEF_PTR(75); - Children[2] = PDEF_PTR(76); - Children[3] = PDEF_PTR(77); - Children[4] = PDEF_PTR(78); - Children[5] = PDEF_PTR(79); - Children[6] = PDEF_PTR(80); - Children[7] = PDEF_PTR(81); - Children[8] = PDEF_PTR(82); - - ParamDefTable[73].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=83, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(105); - Children[2] = PDEF_PTR(106); - Children[3] = PDEF_PTR(112); - Children[4] = PDEF_PTR(113); - Children[5] = PDEF_PTR(114); - Children[6] = PDEF_PTR(115); - Children[7] = PDEF_PTR(116); - - ParamDefTable[83].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=84, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(85); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(88); - Children[4] = PDEF_PTR(89); - Children[5] = PDEF_PTR(90); - Children[6] = PDEF_PTR(91); - Children[7] = PDEF_PTR(92); - Children[8] = PDEF_PTR(93); - Children[9] = PDEF_PTR(94); - Children[10] = PDEF_PTR(95); - Children[11] = PDEF_PTR(96); - Children[12] = PDEF_PTR(97); - Children[13] = PDEF_PTR(98); - Children[14] = PDEF_PTR(99); - Children[15] = PDEF_PTR(100); - Children[16] = PDEF_PTR(101); - Children[17] = PDEF_PTR(102); - Children[18] = PDEF_PTR(103); - Children[19] = PDEF_PTR(104); - - ParamDefTable[84].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=106, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(107); - Children[1] = PDEF_PTR(108); - Children[2] = PDEF_PTR(109); - Children[3] = PDEF_PTR(110); - Children[4] = PDEF_PTR(111); - - ParamDefTable[106].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=117, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(118); - Children[1] = PDEF_PTR(126); - Children[2] = PDEF_PTR(127); - Children[3] = PDEF_PTR(128); - Children[4] = PDEF_PTR(129); - Children[5] = PDEF_PTR(142); - Children[6] = PDEF_PTR(143); - Children[7] = PDEF_PTR(144); - Children[8] = PDEF_PTR(145); - - ParamDefTable[117].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=118, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(119); - Children[1] = PDEF_PTR(120); - Children[2] = PDEF_PTR(121); - Children[3] = PDEF_PTR(122); - Children[4] = PDEF_PTR(123); - Children[5] = PDEF_PTR(124); - Children[6] = PDEF_PTR(125); - - ParamDefTable[118].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=129, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(131); - Children[2] = PDEF_PTR(132); - Children[3] = PDEF_PTR(133); - Children[4] = PDEF_PTR(134); - Children[5] = PDEF_PTR(135); - Children[6] = PDEF_PTR(136); - Children[7] = PDEF_PTR(137); - Children[8] = PDEF_PTR(138); - Children[9] = PDEF_PTR(139); - Children[10] = PDEF_PTR(140); - Children[11] = PDEF_PTR(141); - - ParamDefTable[129].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=146, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(147); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(153); - Children[3] = PDEF_PTR(154); - Children[4] = PDEF_PTR(155); - Children[5] = PDEF_PTR(156); - Children[6] = PDEF_PTR(157); - Children[7] = PDEF_PTR(158); - Children[8] = PDEF_PTR(159); - Children[9] = PDEF_PTR(160); - Children[10] = PDEF_PTR(161); - Children[11] = PDEF_PTR(162); - - ParamDefTable[146].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=147, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(148); - Children[1] = PDEF_PTR(149); - Children[2] = PDEF_PTR(150); - Children[3] = PDEF_PTR(151); - - ParamDefTable[147].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=163, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(164); - Children[1] = PDEF_PTR(171); - Children[2] = PDEF_PTR(176); - Children[3] = PDEF_PTR(181); - Children[4] = PDEF_PTR(182); - Children[5] = PDEF_PTR(183); - Children[6] = PDEF_PTR(184); - Children[7] = PDEF_PTR(185); - - ParamDefTable[163].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=164, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(165); - Children[1] = PDEF_PTR(166); - Children[2] = PDEF_PTR(167); - Children[3] = PDEF_PTR(168); - Children[4] = PDEF_PTR(169); - Children[5] = PDEF_PTR(170); - - ParamDefTable[164].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=171, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(172); - Children[1] = PDEF_PTR(173); - Children[2] = PDEF_PTR(174); - Children[3] = PDEF_PTR(175); - - ParamDefTable[171].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(178); - Children[2] = PDEF_PTR(179); - Children[3] = PDEF_PTR(180); - - ParamDefTable[176].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=186, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(187); - Children[1] = PDEF_PTR(191); - Children[2] = PDEF_PTR(192); - Children[3] = PDEF_PTR(193); - Children[4] = PDEF_PTR(194); - Children[5] = PDEF_PTR(210); - Children[6] = PDEF_PTR(211); - - ParamDefTable[186].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=187, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(188); - Children[1] = PDEF_PTR(189); - Children[2] = PDEF_PTR(190); - - ParamDefTable[187].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(195); - Children[1] = PDEF_PTR(196); - Children[2] = PDEF_PTR(197); - Children[3] = PDEF_PTR(198); - Children[4] = PDEF_PTR(199); - Children[5] = PDEF_PTR(200); - Children[6] = PDEF_PTR(201); - Children[7] = PDEF_PTR(202); - Children[8] = PDEF_PTR(203); - Children[9] = PDEF_PTR(204); - Children[10] = PDEF_PTR(205); - Children[11] = PDEF_PTR(206); - Children[12] = PDEF_PTR(207); - Children[13] = PDEF_PTR(208); - Children[14] = PDEF_PTR(209); - - ParamDefTable[194].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=212, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(213); - Children[1] = PDEF_PTR(214); - Children[2] = PDEF_PTR(217); - Children[3] = PDEF_PTR(218); - Children[4] = PDEF_PTR(219); - Children[5] = PDEF_PTR(220); - Children[6] = PDEF_PTR(221); - Children[7] = PDEF_PTR(222); - Children[8] = PDEF_PTR(223); - Children[9] = PDEF_PTR(224); - - ParamDefTable[212].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=214, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(215); - Children[1] = PDEF_PTR(216); - - ParamDefTable[214].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=225, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(226); - Children[1] = PDEF_PTR(227); - Children[2] = PDEF_PTR(228); - - ParamDefTable[225].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=229, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(230); - Children[1] = PDEF_PTR(231); - Children[2] = PDEF_PTR(232); - Children[3] = PDEF_PTR(233); - Children[4] = PDEF_PTR(237); - Children[5] = PDEF_PTR(241); - Children[6] = PDEF_PTR(242); - Children[7] = PDEF_PTR(243); - Children[8] = PDEF_PTR(244); - Children[9] = PDEF_PTR(245); - Children[10] = PDEF_PTR(251); - - ParamDefTable[229].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=233, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(234); - Children[1] = PDEF_PTR(235); - Children[2] = PDEF_PTR(236); - - ParamDefTable[233].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=237, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(238); - Children[1] = PDEF_PTR(239); - Children[2] = PDEF_PTR(240); - - ParamDefTable[237].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=245, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(246); - Children[1] = PDEF_PTR(247); - Children[2] = PDEF_PTR(248); - Children[3] = PDEF_PTR(249); - Children[4] = PDEF_PTR(250); - - ParamDefTable[245].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=252, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(253); - - ParamDefTable[252].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=253, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(254); - Children[1] = PDEF_PTR(255); - Children[2] = PDEF_PTR(256); - Children[3] = PDEF_PTR(257); - Children[4] = PDEF_PTR(261); - Children[5] = PDEF_PTR(265); - Children[6] = PDEF_PTR(266); - Children[7] = PDEF_PTR(267); - Children[8] = PDEF_PTR(268); - Children[9] = PDEF_PTR(269); - Children[10] = PDEF_PTR(275); - - ParamDefTable[253].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=257, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(258); - Children[1] = PDEF_PTR(259); - Children[2] = PDEF_PTR(260); - - ParamDefTable[257].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=261, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(262); - Children[1] = PDEF_PTR(263); - Children[2] = PDEF_PTR(264); - - ParamDefTable[261].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=269, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(270); - Children[1] = PDEF_PTR(271); - Children[2] = PDEF_PTR(272); - Children[3] = PDEF_PTR(273); - Children[4] = PDEF_PTR(274); - - ParamDefTable[269].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p21::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p21::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p21::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(30); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.03); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p21::initReferences(void) -{ -} - -void DestructibleActorParam_0p21::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p21::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p21::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p21.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p21NS; + +const char* const DestructibleActorParam_0p21Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 276; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 72, 83, 117, 146, + 163, 186, 212, 225, 229, 252, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 47, 53, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, 52, + 54, 55, 56, 57, 58, 59, 65, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 84, 105, 106, 112, 113, 114, 115, 116, 85, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 107, 108, 109, + 110, 111, 118, 126, 127, 128, 129, 142, 143, 144, 145, 119, 120, 121, 122, 123, 124, + 125, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 147, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 148, 149, 150, 151, 164, 171, 176, 181, 182, + 183, 184, 185, 165, 166, 167, 168, 169, 170, 172, 173, 174, 175, 177, 178, 179, 180, + 187, 191, 192, 193, 194, 210, 211, 188, 189, 190, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 213, 214, 217, 218, 219, 220, 221, 222, 223, + 224, 215, 216, 226, 227, 228, 230, 231, 232, 233, 237, 241, 242, 243, 244, 245, 251, + 234, 235, 236, 238, 239, 240, 246, 247, 248, 249, 250, 253, 254, 255, 256, 257, 261, + 265, 266, 267, 268, 269, 275, 258, 259, 260, 262, 263, 264, 270, 271, 272, 273, 274, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(51), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(58), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(63), 7 }, // destructibleParameters.runtimeFracture + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(70), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(75), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(81), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(82), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(91), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(99), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(119), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(124), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(133), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(140), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(152), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(164), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(168), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(176), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(182), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(186), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(190), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(197), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(200), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(215), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(225), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(227), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(230), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(241), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(244), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(247), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(252), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(253), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(264), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(267), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(270), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData +}; + + +bool DestructibleActorParam_0p21::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p21::mBuiltFlagMutex; + +DestructibleActorParam_0p21::DestructibleActorParam_0p21(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p21FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p21::~DestructibleActorParam_0p21() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p21::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p21(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p21::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p21::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p21* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p21::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p21::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p21::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p21::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p21::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(72); + Children[20] = PDEF_PTR(83); + Children[21] = PDEF_PTR(117); + Children[22] = PDEF_PTR(146); + Children[23] = PDEF_PTR(163); + Children[24] = PDEF_PTR(186); + Children[25] = PDEF_PTR(212); + Children[26] = PDEF_PTR(225); + Children[27] = PDEF_PTR(229); + Children[28] = PDEF_PTR(252); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + Children[18] = PDEF_PTR(47); + Children[19] = PDEF_PTR(53); + + ParamDefTable[21].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(48); + Children[1] = PDEF_PTR(49); + Children[2] = PDEF_PTR(50); + Children[3] = PDEF_PTR(51); + Children[4] = PDEF_PTR(52); + + ParamDefTable[47].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=53, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(65); + + ParamDefTable[53].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + + ParamDefTable[59].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(67); + Children[2] = PDEF_PTR(68); + Children[3] = PDEF_PTR(69); + Children[4] = PDEF_PTR(70); + Children[5] = PDEF_PTR(71); + + ParamDefTable[65].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=72, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(73); + + ParamDefTable[72].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=73, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(74); + Children[1] = PDEF_PTR(75); + Children[2] = PDEF_PTR(76); + Children[3] = PDEF_PTR(77); + Children[4] = PDEF_PTR(78); + Children[5] = PDEF_PTR(79); + Children[6] = PDEF_PTR(80); + Children[7] = PDEF_PTR(81); + Children[8] = PDEF_PTR(82); + + ParamDefTable[73].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=83, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(105); + Children[2] = PDEF_PTR(106); + Children[3] = PDEF_PTR(112); + Children[4] = PDEF_PTR(113); + Children[5] = PDEF_PTR(114); + Children[6] = PDEF_PTR(115); + Children[7] = PDEF_PTR(116); + + ParamDefTable[83].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=84, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(85); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(88); + Children[4] = PDEF_PTR(89); + Children[5] = PDEF_PTR(90); + Children[6] = PDEF_PTR(91); + Children[7] = PDEF_PTR(92); + Children[8] = PDEF_PTR(93); + Children[9] = PDEF_PTR(94); + Children[10] = PDEF_PTR(95); + Children[11] = PDEF_PTR(96); + Children[12] = PDEF_PTR(97); + Children[13] = PDEF_PTR(98); + Children[14] = PDEF_PTR(99); + Children[15] = PDEF_PTR(100); + Children[16] = PDEF_PTR(101); + Children[17] = PDEF_PTR(102); + Children[18] = PDEF_PTR(103); + Children[19] = PDEF_PTR(104); + + ParamDefTable[84].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=106, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(107); + Children[1] = PDEF_PTR(108); + Children[2] = PDEF_PTR(109); + Children[3] = PDEF_PTR(110); + Children[4] = PDEF_PTR(111); + + ParamDefTable[106].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=117, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(118); + Children[1] = PDEF_PTR(126); + Children[2] = PDEF_PTR(127); + Children[3] = PDEF_PTR(128); + Children[4] = PDEF_PTR(129); + Children[5] = PDEF_PTR(142); + Children[6] = PDEF_PTR(143); + Children[7] = PDEF_PTR(144); + Children[8] = PDEF_PTR(145); + + ParamDefTable[117].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=118, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(119); + Children[1] = PDEF_PTR(120); + Children[2] = PDEF_PTR(121); + Children[3] = PDEF_PTR(122); + Children[4] = PDEF_PTR(123); + Children[5] = PDEF_PTR(124); + Children[6] = PDEF_PTR(125); + + ParamDefTable[118].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=129, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(131); + Children[2] = PDEF_PTR(132); + Children[3] = PDEF_PTR(133); + Children[4] = PDEF_PTR(134); + Children[5] = PDEF_PTR(135); + Children[6] = PDEF_PTR(136); + Children[7] = PDEF_PTR(137); + Children[8] = PDEF_PTR(138); + Children[9] = PDEF_PTR(139); + Children[10] = PDEF_PTR(140); + Children[11] = PDEF_PTR(141); + + ParamDefTable[129].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=146, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(147); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(153); + Children[3] = PDEF_PTR(154); + Children[4] = PDEF_PTR(155); + Children[5] = PDEF_PTR(156); + Children[6] = PDEF_PTR(157); + Children[7] = PDEF_PTR(158); + Children[8] = PDEF_PTR(159); + Children[9] = PDEF_PTR(160); + Children[10] = PDEF_PTR(161); + Children[11] = PDEF_PTR(162); + + ParamDefTable[146].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=147, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(148); + Children[1] = PDEF_PTR(149); + Children[2] = PDEF_PTR(150); + Children[3] = PDEF_PTR(151); + + ParamDefTable[147].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=163, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(164); + Children[1] = PDEF_PTR(171); + Children[2] = PDEF_PTR(176); + Children[3] = PDEF_PTR(181); + Children[4] = PDEF_PTR(182); + Children[5] = PDEF_PTR(183); + Children[6] = PDEF_PTR(184); + Children[7] = PDEF_PTR(185); + + ParamDefTable[163].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=164, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(165); + Children[1] = PDEF_PTR(166); + Children[2] = PDEF_PTR(167); + Children[3] = PDEF_PTR(168); + Children[4] = PDEF_PTR(169); + Children[5] = PDEF_PTR(170); + + ParamDefTable[164].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=171, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(172); + Children[1] = PDEF_PTR(173); + Children[2] = PDEF_PTR(174); + Children[3] = PDEF_PTR(175); + + ParamDefTable[171].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(178); + Children[2] = PDEF_PTR(179); + Children[3] = PDEF_PTR(180); + + ParamDefTable[176].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=186, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(187); + Children[1] = PDEF_PTR(191); + Children[2] = PDEF_PTR(192); + Children[3] = PDEF_PTR(193); + Children[4] = PDEF_PTR(194); + Children[5] = PDEF_PTR(210); + Children[6] = PDEF_PTR(211); + + ParamDefTable[186].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=187, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(188); + Children[1] = PDEF_PTR(189); + Children[2] = PDEF_PTR(190); + + ParamDefTable[187].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=194, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(195); + Children[1] = PDEF_PTR(196); + Children[2] = PDEF_PTR(197); + Children[3] = PDEF_PTR(198); + Children[4] = PDEF_PTR(199); + Children[5] = PDEF_PTR(200); + Children[6] = PDEF_PTR(201); + Children[7] = PDEF_PTR(202); + Children[8] = PDEF_PTR(203); + Children[9] = PDEF_PTR(204); + Children[10] = PDEF_PTR(205); + Children[11] = PDEF_PTR(206); + Children[12] = PDEF_PTR(207); + Children[13] = PDEF_PTR(208); + Children[14] = PDEF_PTR(209); + + ParamDefTable[194].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=212, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(213); + Children[1] = PDEF_PTR(214); + Children[2] = PDEF_PTR(217); + Children[3] = PDEF_PTR(218); + Children[4] = PDEF_PTR(219); + Children[5] = PDEF_PTR(220); + Children[6] = PDEF_PTR(221); + Children[7] = PDEF_PTR(222); + Children[8] = PDEF_PTR(223); + Children[9] = PDEF_PTR(224); + + ParamDefTable[212].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=214, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(215); + Children[1] = PDEF_PTR(216); + + ParamDefTable[214].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=225, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(226); + Children[1] = PDEF_PTR(227); + Children[2] = PDEF_PTR(228); + + ParamDefTable[225].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=229, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(230); + Children[1] = PDEF_PTR(231); + Children[2] = PDEF_PTR(232); + Children[3] = PDEF_PTR(233); + Children[4] = PDEF_PTR(237); + Children[5] = PDEF_PTR(241); + Children[6] = PDEF_PTR(242); + Children[7] = PDEF_PTR(243); + Children[8] = PDEF_PTR(244); + Children[9] = PDEF_PTR(245); + Children[10] = PDEF_PTR(251); + + ParamDefTable[229].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=233, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(234); + Children[1] = PDEF_PTR(235); + Children[2] = PDEF_PTR(236); + + ParamDefTable[233].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=237, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(238); + Children[1] = PDEF_PTR(239); + Children[2] = PDEF_PTR(240); + + ParamDefTable[237].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=245, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(246); + Children[1] = PDEF_PTR(247); + Children[2] = PDEF_PTR(248); + Children[3] = PDEF_PTR(249); + Children[4] = PDEF_PTR(250); + + ParamDefTable[245].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=252, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(253); + + ParamDefTable[252].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=253, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(254); + Children[1] = PDEF_PTR(255); + Children[2] = PDEF_PTR(256); + Children[3] = PDEF_PTR(257); + Children[4] = PDEF_PTR(261); + Children[5] = PDEF_PTR(265); + Children[6] = PDEF_PTR(266); + Children[7] = PDEF_PTR(267); + Children[8] = PDEF_PTR(268); + Children[9] = PDEF_PTR(269); + Children[10] = PDEF_PTR(275); + + ParamDefTable[253].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=257, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(258); + Children[1] = PDEF_PTR(259); + Children[2] = PDEF_PTR(260); + + ParamDefTable[257].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=261, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(262); + Children[1] = PDEF_PTR(263); + Children[2] = PDEF_PTR(264); + + ParamDefTable[261].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=269, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(270); + Children[1] = PDEF_PTR(271); + Children[2] = PDEF_PTR(272); + Children[3] = PDEF_PTR(273); + Children[4] = PDEF_PTR(274); + + ParamDefTable[269].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p21::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p21::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p21::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(30); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.03); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p21::initReferences(void) +{ +} + +void DestructibleActorParam_0p21::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p21::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p21::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p22.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p22.cpp old mode 100644 new mode 100755 index ecf2cf4..293b89e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p22.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p22.cpp @@ -1,7795 +1,7795 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p22.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p22NS; - -const char* const DestructibleActorParam_0p22Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 277; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 73, 84, 118, 147, - 164, 187, 213, 226, 230, 253, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 44, 45, 46, 47, 53, 72, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, - 52, 54, 55, 56, 57, 58, 59, 65, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 85, 106, 107, 113, 114, 115, 116, 117, 86, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 108, 109, - 110, 111, 112, 119, 127, 128, 129, 130, 143, 144, 145, 146, 120, 121, 122, 123, 124, - 125, 126, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 148, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 149, 150, 151, 152, 165, 172, 177, 182, - 183, 184, 185, 186, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 178, 179, 180, - 181, 188, 192, 193, 194, 195, 211, 212, 189, 190, 191, 196, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 214, 215, 218, 219, 220, 221, 222, 223, - 224, 225, 216, 217, 227, 228, 229, 231, 232, 233, 234, 238, 242, 243, 244, 245, 246, - 252, 235, 236, 237, 239, 240, 241, 247, 248, 249, 250, 251, 254, 255, 256, 257, 258, - 262, 266, 267, 268, 269, 270, 276, 259, 260, 261, 263, 264, 265, 271, 272, 273, 274, - 275, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(52), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(59), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(64), 7 }, // destructibleParameters.runtimeFracture - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(71), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(76), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(82), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(83), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(92), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(100), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(120), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(125), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(134), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(141), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(153), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(165), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(169), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(177), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(183), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(187), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(191), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(198), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(201), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(216), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(226), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(228), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(231), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(242), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(245), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(248), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(253), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(254), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(265), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(268), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(271), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData -}; - - -bool DestructibleActorParam_0p22::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p22::mBuiltFlagMutex; - -DestructibleActorParam_0p22::DestructibleActorParam_0p22(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p22FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p22::~DestructibleActorParam_0p22() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p22::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p22(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p22::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p22::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p22* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p22::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p22::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p22::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p22::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p22::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[29]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(73); - Children[20] = PDEF_PTR(84); - Children[21] = PDEF_PTR(118); - Children[22] = PDEF_PTR(147); - Children[23] = PDEF_PTR(164); - Children[24] = PDEF_PTR(187); - Children[25] = PDEF_PTR(213); - Children[26] = PDEF_PTR(226); - Children[27] = PDEF_PTR(230); - Children[28] = PDEF_PTR(253); - - ParamDefTable[0].setChildren(Children, 29); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=21, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(22); - Children[1] = PDEF_PTR(23); - Children[2] = PDEF_PTR(24); - Children[3] = PDEF_PTR(25); - Children[4] = PDEF_PTR(26); - Children[5] = PDEF_PTR(27); - Children[6] = PDEF_PTR(28); - Children[7] = PDEF_PTR(29); - Children[8] = PDEF_PTR(30); - Children[9] = PDEF_PTR(31); - Children[10] = PDEF_PTR(32); - Children[11] = PDEF_PTR(33); - Children[12] = PDEF_PTR(34); - Children[13] = PDEF_PTR(35); - Children[14] = PDEF_PTR(36); - Children[15] = PDEF_PTR(44); - Children[16] = PDEF_PTR(45); - Children[17] = PDEF_PTR(46); - Children[18] = PDEF_PTR(47); - Children[19] = PDEF_PTR(53); - Children[20] = PDEF_PTR(72); - - ParamDefTable[21].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(48); - Children[1] = PDEF_PTR(49); - Children[2] = PDEF_PTR(50); - Children[3] = PDEF_PTR(51); - Children[4] = PDEF_PTR(52); - - ParamDefTable[47].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=53, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(65); - - ParamDefTable[53].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - - ParamDefTable[59].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(66); - Children[1] = PDEF_PTR(67); - Children[2] = PDEF_PTR(68); - Children[3] = PDEF_PTR(69); - Children[4] = PDEF_PTR(70); - Children[5] = PDEF_PTR(71); - - ParamDefTable[65].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=73, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=74, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - Children[6] = PDEF_PTR(81); - Children[7] = PDEF_PTR(82); - Children[8] = PDEF_PTR(83); - - ParamDefTable[74].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=84, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(85); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - Children[6] = PDEF_PTR(116); - Children[7] = PDEF_PTR(117); - - ParamDefTable[84].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=85, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - Children[5] = PDEF_PTR(91); - Children[6] = PDEF_PTR(92); - Children[7] = PDEF_PTR(93); - Children[8] = PDEF_PTR(94); - Children[9] = PDEF_PTR(95); - Children[10] = PDEF_PTR(96); - Children[11] = PDEF_PTR(97); - Children[12] = PDEF_PTR(98); - Children[13] = PDEF_PTR(99); - Children[14] = PDEF_PTR(100); - Children[15] = PDEF_PTR(101); - Children[16] = PDEF_PTR(102); - Children[17] = PDEF_PTR(103); - Children[18] = PDEF_PTR(104); - Children[19] = PDEF_PTR(105); - - ParamDefTable[85].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=107, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(108); - Children[1] = PDEF_PTR(109); - Children[2] = PDEF_PTR(110); - Children[3] = PDEF_PTR(111); - Children[4] = PDEF_PTR(112); - - ParamDefTable[107].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=118, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(119); - Children[1] = PDEF_PTR(127); - Children[2] = PDEF_PTR(128); - Children[3] = PDEF_PTR(129); - Children[4] = PDEF_PTR(130); - Children[5] = PDEF_PTR(143); - Children[6] = PDEF_PTR(144); - Children[7] = PDEF_PTR(145); - Children[8] = PDEF_PTR(146); - - ParamDefTable[118].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=119, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(120); - Children[1] = PDEF_PTR(121); - Children[2] = PDEF_PTR(122); - Children[3] = PDEF_PTR(123); - Children[4] = PDEF_PTR(124); - Children[5] = PDEF_PTR(125); - Children[6] = PDEF_PTR(126); - - ParamDefTable[119].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=130, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(131); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - Children[7] = PDEF_PTR(138); - Children[8] = PDEF_PTR(139); - Children[9] = PDEF_PTR(140); - Children[10] = PDEF_PTR(141); - Children[11] = PDEF_PTR(142); - - ParamDefTable[130].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=147, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(148); - Children[1] = PDEF_PTR(153); - Children[2] = PDEF_PTR(154); - Children[3] = PDEF_PTR(155); - Children[4] = PDEF_PTR(156); - Children[5] = PDEF_PTR(157); - Children[6] = PDEF_PTR(158); - Children[7] = PDEF_PTR(159); - Children[8] = PDEF_PTR(160); - Children[9] = PDEF_PTR(161); - Children[10] = PDEF_PTR(162); - Children[11] = PDEF_PTR(163); - - ParamDefTable[147].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=148, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(149); - Children[1] = PDEF_PTR(150); - Children[2] = PDEF_PTR(151); - Children[3] = PDEF_PTR(152); - - ParamDefTable[148].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=164, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(165); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(177); - Children[3] = PDEF_PTR(182); - Children[4] = PDEF_PTR(183); - Children[5] = PDEF_PTR(184); - Children[6] = PDEF_PTR(185); - Children[7] = PDEF_PTR(186); - - ParamDefTable[164].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=165, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(166); - Children[1] = PDEF_PTR(167); - Children[2] = PDEF_PTR(168); - Children[3] = PDEF_PTR(169); - Children[4] = PDEF_PTR(170); - Children[5] = PDEF_PTR(171); - - ParamDefTable[165].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(173); - Children[1] = PDEF_PTR(174); - Children[2] = PDEF_PTR(175); - Children[3] = PDEF_PTR(176); - - ParamDefTable[172].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=177, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(178); - Children[1] = PDEF_PTR(179); - Children[2] = PDEF_PTR(180); - Children[3] = PDEF_PTR(181); - - ParamDefTable[177].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=187, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(188); - Children[1] = PDEF_PTR(192); - Children[2] = PDEF_PTR(193); - Children[3] = PDEF_PTR(194); - Children[4] = PDEF_PTR(195); - Children[5] = PDEF_PTR(211); - Children[6] = PDEF_PTR(212); - - ParamDefTable[187].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=188, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(189); - Children[1] = PDEF_PTR(190); - Children[2] = PDEF_PTR(191); - - ParamDefTable[188].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(197); - Children[2] = PDEF_PTR(198); - Children[3] = PDEF_PTR(199); - Children[4] = PDEF_PTR(200); - Children[5] = PDEF_PTR(201); - Children[6] = PDEF_PTR(202); - Children[7] = PDEF_PTR(203); - Children[8] = PDEF_PTR(204); - Children[9] = PDEF_PTR(205); - Children[10] = PDEF_PTR(206); - Children[11] = PDEF_PTR(207); - Children[12] = PDEF_PTR(208); - Children[13] = PDEF_PTR(209); - Children[14] = PDEF_PTR(210); - - ParamDefTable[195].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=213, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(214); - Children[1] = PDEF_PTR(215); - Children[2] = PDEF_PTR(218); - Children[3] = PDEF_PTR(219); - Children[4] = PDEF_PTR(220); - Children[5] = PDEF_PTR(221); - Children[6] = PDEF_PTR(222); - Children[7] = PDEF_PTR(223); - Children[8] = PDEF_PTR(224); - Children[9] = PDEF_PTR(225); - - ParamDefTable[213].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=215, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(216); - Children[1] = PDEF_PTR(217); - - ParamDefTable[215].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=226, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(227); - Children[1] = PDEF_PTR(228); - Children[2] = PDEF_PTR(229); - - ParamDefTable[226].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=230, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(231); - Children[1] = PDEF_PTR(232); - Children[2] = PDEF_PTR(233); - Children[3] = PDEF_PTR(234); - Children[4] = PDEF_PTR(238); - Children[5] = PDEF_PTR(242); - Children[6] = PDEF_PTR(243); - Children[7] = PDEF_PTR(244); - Children[8] = PDEF_PTR(245); - Children[9] = PDEF_PTR(246); - Children[10] = PDEF_PTR(252); - - ParamDefTable[230].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=234, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(235); - Children[1] = PDEF_PTR(236); - Children[2] = PDEF_PTR(237); - - ParamDefTable[234].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=238, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - - ParamDefTable[238].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(247); - Children[1] = PDEF_PTR(248); - Children[2] = PDEF_PTR(249); - Children[3] = PDEF_PTR(250); - Children[4] = PDEF_PTR(251); - - ParamDefTable[246].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=253, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(254); - - ParamDefTable[253].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=254, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(255); - Children[1] = PDEF_PTR(256); - Children[2] = PDEF_PTR(257); - Children[3] = PDEF_PTR(258); - Children[4] = PDEF_PTR(262); - Children[5] = PDEF_PTR(266); - Children[6] = PDEF_PTR(267); - Children[7] = PDEF_PTR(268); - Children[8] = PDEF_PTR(269); - Children[9] = PDEF_PTR(270); - Children[10] = PDEF_PTR(276); - - ParamDefTable[254].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=258, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(259); - Children[1] = PDEF_PTR(260); - Children[2] = PDEF_PTR(261); - - ParamDefTable[258].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=262, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(263); - Children[1] = PDEF_PTR(264); - Children[2] = PDEF_PTR(265); - - ParamDefTable[262].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=270, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(271); - Children[1] = PDEF_PTR(272); - Children[2] = PDEF_PTR(273); - Children[3] = PDEF_PTR(274); - Children[4] = PDEF_PTR(275); - - ParamDefTable[270].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p22::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p22::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p22::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p22::initReferences(void) -{ -} - -void DestructibleActorParam_0p22::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p22::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p22::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p22.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p22NS; + +const char* const DestructibleActorParam_0p22Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 277; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 20, 21, 73, 84, 118, 147, + 164, 187, 213, 226, 230, 253, 16, 18, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 44, 45, 46, 47, 53, 72, 37, 38, 39, 40, 41, 42, 43, 48, 49, 50, 51, + 52, 54, 55, 56, 57, 58, 59, 65, 60, 61, 62, 63, 64, 66, 67, 68, 69, 70, 71, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 85, 106, 107, 113, 114, 115, 116, 117, 86, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 108, 109, + 110, 111, 112, 119, 127, 128, 129, 130, 143, 144, 145, 146, 120, 121, 122, 123, 124, + 125, 126, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 148, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 149, 150, 151, 152, 165, 172, 177, 182, + 183, 184, 185, 186, 166, 167, 168, 169, 170, 171, 173, 174, 175, 176, 178, 179, 180, + 181, 188, 192, 193, 194, 195, 211, 212, 189, 190, 191, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 214, 215, 218, 219, 220, 221, 222, 223, + 224, 225, 216, 217, 227, 228, 229, 231, 232, 233, 234, 238, 242, 243, 244, 245, 246, + 252, 235, 236, 237, 239, 240, 241, 247, 248, 249, 250, 251, 254, 255, 256, 257, 258, + 262, 266, 267, 268, 269, 270, 276, 259, 260, 261, 263, 264, 265, 271, 272, 273, 274, + 275, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 29 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(29), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(30), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(31), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(52), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(59), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(64), 7 }, // destructibleParameters.runtimeFracture + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(71), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(76), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(82), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(83), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(92), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(100), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(120), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(125), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(134), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(141), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(153), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(165), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(169), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(177), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(183), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(187), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(191), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(198), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(201), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(216), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(226), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(228), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(231), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(242), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(245), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(248), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(253), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(254), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(265), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(268), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(271), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData +}; + + +bool DestructibleActorParam_0p22::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p22::mBuiltFlagMutex; + +DestructibleActorParam_0p22::DestructibleActorParam_0p22(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p22FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p22::~DestructibleActorParam_0p22() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p22::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p22(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p22::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p22::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p22* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p22::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p22::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p22::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p22::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p22::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[29]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(73); + Children[20] = PDEF_PTR(84); + Children[21] = PDEF_PTR(118); + Children[22] = PDEF_PTR(147); + Children[23] = PDEF_PTR(164); + Children[24] = PDEF_PTR(187); + Children[25] = PDEF_PTR(213); + Children[26] = PDEF_PTR(226); + Children[27] = PDEF_PTR(230); + Children[28] = PDEF_PTR(253); + + ParamDefTable[0].setChildren(Children, 29); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=21, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(22); + Children[1] = PDEF_PTR(23); + Children[2] = PDEF_PTR(24); + Children[3] = PDEF_PTR(25); + Children[4] = PDEF_PTR(26); + Children[5] = PDEF_PTR(27); + Children[6] = PDEF_PTR(28); + Children[7] = PDEF_PTR(29); + Children[8] = PDEF_PTR(30); + Children[9] = PDEF_PTR(31); + Children[10] = PDEF_PTR(32); + Children[11] = PDEF_PTR(33); + Children[12] = PDEF_PTR(34); + Children[13] = PDEF_PTR(35); + Children[14] = PDEF_PTR(36); + Children[15] = PDEF_PTR(44); + Children[16] = PDEF_PTR(45); + Children[17] = PDEF_PTR(46); + Children[18] = PDEF_PTR(47); + Children[19] = PDEF_PTR(53); + Children[20] = PDEF_PTR(72); + + ParamDefTable[21].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(48); + Children[1] = PDEF_PTR(49); + Children[2] = PDEF_PTR(50); + Children[3] = PDEF_PTR(51); + Children[4] = PDEF_PTR(52); + + ParamDefTable[47].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=53, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(65); + + ParamDefTable[53].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=59, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + + ParamDefTable[59].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(66); + Children[1] = PDEF_PTR(67); + Children[2] = PDEF_PTR(68); + Children[3] = PDEF_PTR(69); + Children[4] = PDEF_PTR(70); + Children[5] = PDEF_PTR(71); + + ParamDefTable[65].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=73, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=74, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + Children[6] = PDEF_PTR(81); + Children[7] = PDEF_PTR(82); + Children[8] = PDEF_PTR(83); + + ParamDefTable[74].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=84, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(85); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + Children[6] = PDEF_PTR(116); + Children[7] = PDEF_PTR(117); + + ParamDefTable[84].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=85, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + Children[5] = PDEF_PTR(91); + Children[6] = PDEF_PTR(92); + Children[7] = PDEF_PTR(93); + Children[8] = PDEF_PTR(94); + Children[9] = PDEF_PTR(95); + Children[10] = PDEF_PTR(96); + Children[11] = PDEF_PTR(97); + Children[12] = PDEF_PTR(98); + Children[13] = PDEF_PTR(99); + Children[14] = PDEF_PTR(100); + Children[15] = PDEF_PTR(101); + Children[16] = PDEF_PTR(102); + Children[17] = PDEF_PTR(103); + Children[18] = PDEF_PTR(104); + Children[19] = PDEF_PTR(105); + + ParamDefTable[85].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=107, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(108); + Children[1] = PDEF_PTR(109); + Children[2] = PDEF_PTR(110); + Children[3] = PDEF_PTR(111); + Children[4] = PDEF_PTR(112); + + ParamDefTable[107].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=118, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(119); + Children[1] = PDEF_PTR(127); + Children[2] = PDEF_PTR(128); + Children[3] = PDEF_PTR(129); + Children[4] = PDEF_PTR(130); + Children[5] = PDEF_PTR(143); + Children[6] = PDEF_PTR(144); + Children[7] = PDEF_PTR(145); + Children[8] = PDEF_PTR(146); + + ParamDefTable[118].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=119, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(120); + Children[1] = PDEF_PTR(121); + Children[2] = PDEF_PTR(122); + Children[3] = PDEF_PTR(123); + Children[4] = PDEF_PTR(124); + Children[5] = PDEF_PTR(125); + Children[6] = PDEF_PTR(126); + + ParamDefTable[119].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=130, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(131); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + Children[7] = PDEF_PTR(138); + Children[8] = PDEF_PTR(139); + Children[9] = PDEF_PTR(140); + Children[10] = PDEF_PTR(141); + Children[11] = PDEF_PTR(142); + + ParamDefTable[130].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=147, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(148); + Children[1] = PDEF_PTR(153); + Children[2] = PDEF_PTR(154); + Children[3] = PDEF_PTR(155); + Children[4] = PDEF_PTR(156); + Children[5] = PDEF_PTR(157); + Children[6] = PDEF_PTR(158); + Children[7] = PDEF_PTR(159); + Children[8] = PDEF_PTR(160); + Children[9] = PDEF_PTR(161); + Children[10] = PDEF_PTR(162); + Children[11] = PDEF_PTR(163); + + ParamDefTable[147].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=148, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(149); + Children[1] = PDEF_PTR(150); + Children[2] = PDEF_PTR(151); + Children[3] = PDEF_PTR(152); + + ParamDefTable[148].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=164, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(165); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(177); + Children[3] = PDEF_PTR(182); + Children[4] = PDEF_PTR(183); + Children[5] = PDEF_PTR(184); + Children[6] = PDEF_PTR(185); + Children[7] = PDEF_PTR(186); + + ParamDefTable[164].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=165, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(166); + Children[1] = PDEF_PTR(167); + Children[2] = PDEF_PTR(168); + Children[3] = PDEF_PTR(169); + Children[4] = PDEF_PTR(170); + Children[5] = PDEF_PTR(171); + + ParamDefTable[165].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(173); + Children[1] = PDEF_PTR(174); + Children[2] = PDEF_PTR(175); + Children[3] = PDEF_PTR(176); + + ParamDefTable[172].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=177, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(178); + Children[1] = PDEF_PTR(179); + Children[2] = PDEF_PTR(180); + Children[3] = PDEF_PTR(181); + + ParamDefTable[177].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=187, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(188); + Children[1] = PDEF_PTR(192); + Children[2] = PDEF_PTR(193); + Children[3] = PDEF_PTR(194); + Children[4] = PDEF_PTR(195); + Children[5] = PDEF_PTR(211); + Children[6] = PDEF_PTR(212); + + ParamDefTable[187].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=188, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(189); + Children[1] = PDEF_PTR(190); + Children[2] = PDEF_PTR(191); + + ParamDefTable[188].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(197); + Children[2] = PDEF_PTR(198); + Children[3] = PDEF_PTR(199); + Children[4] = PDEF_PTR(200); + Children[5] = PDEF_PTR(201); + Children[6] = PDEF_PTR(202); + Children[7] = PDEF_PTR(203); + Children[8] = PDEF_PTR(204); + Children[9] = PDEF_PTR(205); + Children[10] = PDEF_PTR(206); + Children[11] = PDEF_PTR(207); + Children[12] = PDEF_PTR(208); + Children[13] = PDEF_PTR(209); + Children[14] = PDEF_PTR(210); + + ParamDefTable[195].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=213, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(214); + Children[1] = PDEF_PTR(215); + Children[2] = PDEF_PTR(218); + Children[3] = PDEF_PTR(219); + Children[4] = PDEF_PTR(220); + Children[5] = PDEF_PTR(221); + Children[6] = PDEF_PTR(222); + Children[7] = PDEF_PTR(223); + Children[8] = PDEF_PTR(224); + Children[9] = PDEF_PTR(225); + + ParamDefTable[213].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=215, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(216); + Children[1] = PDEF_PTR(217); + + ParamDefTable[215].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=226, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(227); + Children[1] = PDEF_PTR(228); + Children[2] = PDEF_PTR(229); + + ParamDefTable[226].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=230, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(231); + Children[1] = PDEF_PTR(232); + Children[2] = PDEF_PTR(233); + Children[3] = PDEF_PTR(234); + Children[4] = PDEF_PTR(238); + Children[5] = PDEF_PTR(242); + Children[6] = PDEF_PTR(243); + Children[7] = PDEF_PTR(244); + Children[8] = PDEF_PTR(245); + Children[9] = PDEF_PTR(246); + Children[10] = PDEF_PTR(252); + + ParamDefTable[230].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=234, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(235); + Children[1] = PDEF_PTR(236); + Children[2] = PDEF_PTR(237); + + ParamDefTable[234].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=238, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + + ParamDefTable[238].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(247); + Children[1] = PDEF_PTR(248); + Children[2] = PDEF_PTR(249); + Children[3] = PDEF_PTR(250); + Children[4] = PDEF_PTR(251); + + ParamDefTable[246].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=253, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(254); + + ParamDefTable[253].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=254, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(255); + Children[1] = PDEF_PTR(256); + Children[2] = PDEF_PTR(257); + Children[3] = PDEF_PTR(258); + Children[4] = PDEF_PTR(262); + Children[5] = PDEF_PTR(266); + Children[6] = PDEF_PTR(267); + Children[7] = PDEF_PTR(268); + Children[8] = PDEF_PTR(269); + Children[9] = PDEF_PTR(270); + Children[10] = PDEF_PTR(276); + + ParamDefTable[254].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=258, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(259); + Children[1] = PDEF_PTR(260); + Children[2] = PDEF_PTR(261); + + ParamDefTable[258].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=262, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(263); + Children[1] = PDEF_PTR(264); + Children[2] = PDEF_PTR(265); + + ParamDefTable[262].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=270, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(271); + Children[1] = PDEF_PTR(272); + Children[2] = PDEF_PTR(273); + Children[3] = PDEF_PTR(274); + Children[4] = PDEF_PTR(275); + + ParamDefTable[270].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p22::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p22::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p22::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p22::initReferences(void) +{ +} + +void DestructibleActorParam_0p22::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p22::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p22::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p23.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p23.cpp old mode 100644 new mode 100755 index 8a68bec..86dbb7d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p23.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p23.cpp @@ -1,7821 +1,7821 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p23.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p23NS; - -const char* const DestructibleActorParam_0p23Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 278; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 74, 85, 119, - 148, 165, 188, 214, 227, 231, 254, 17, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 45, 46, 47, 48, 54, 73, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, - 52, 53, 55, 56, 57, 58, 59, 60, 66, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 107, 108, 114, 115, 116, 117, 118, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, - 110, 111, 112, 113, 120, 128, 129, 130, 131, 144, 145, 146, 147, 121, 122, 123, 124, - 125, 126, 127, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 149, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 150, 151, 152, 153, 166, 173, 178, - 183, 184, 185, 186, 187, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 179, 180, - 181, 182, 189, 193, 194, 195, 196, 212, 213, 190, 191, 192, 197, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 215, 216, 219, 220, 221, 222, 223, - 224, 225, 226, 217, 218, 228, 229, 230, 232, 233, 234, 235, 239, 243, 244, 245, 246, - 247, 253, 236, 237, 238, 240, 241, 242, 248, 249, 250, 251, 252, 255, 256, 257, 258, - 259, 263, 267, 268, 269, 270, 271, 277, 260, 261, 262, 264, 265, 266, 272, 273, 274, - 275, 276, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(30), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(31), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(32), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(53), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(65), 7 }, // destructibleParameters.runtimeFracture - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(72), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(77), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(83), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(84), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(93), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(101), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(121), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(126), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(135), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(142), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(154), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(166), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(170), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(178), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(184), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(188), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(192), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(199), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(202), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(217), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(227), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(229), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(232), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(243), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(246), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(249), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(254), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(255), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(266), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(269), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(272), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData -}; - - -bool DestructibleActorParam_0p23::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p23::mBuiltFlagMutex; - -DestructibleActorParam_0p23::DestructibleActorParam_0p23(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p23FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p23::~DestructibleActorParam_0p23() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p23::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p23(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p23::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p23::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p23* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p23::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p23::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p23::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p23::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p23::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(18); - Children[17] = PDEF_PTR(20); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(74); - Children[21] = PDEF_PTR(85); - Children[22] = PDEF_PTR(119); - Children[23] = PDEF_PTR(148); - Children[24] = PDEF_PTR(165); - Children[25] = PDEF_PTR(188); - Children[26] = PDEF_PTR(214); - Children[27] = PDEF_PTR(227); - Children[28] = PDEF_PTR(231); - Children[29] = PDEF_PTR(254); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=16, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(19); - - ParamDefTable[18].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=22, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(23); - Children[1] = PDEF_PTR(24); - Children[2] = PDEF_PTR(25); - Children[3] = PDEF_PTR(26); - Children[4] = PDEF_PTR(27); - Children[5] = PDEF_PTR(28); - Children[6] = PDEF_PTR(29); - Children[7] = PDEF_PTR(30); - Children[8] = PDEF_PTR(31); - Children[9] = PDEF_PTR(32); - Children[10] = PDEF_PTR(33); - Children[11] = PDEF_PTR(34); - Children[12] = PDEF_PTR(35); - Children[13] = PDEF_PTR(36); - Children[14] = PDEF_PTR(37); - Children[15] = PDEF_PTR(45); - Children[16] = PDEF_PTR(46); - Children[17] = PDEF_PTR(47); - Children[18] = PDEF_PTR(48); - Children[19] = PDEF_PTR(54); - Children[20] = PDEF_PTR(73); - - ParamDefTable[22].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=37, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(38); - Children[1] = PDEF_PTR(39); - Children[2] = PDEF_PTR(40); - Children[3] = PDEF_PTR(41); - Children[4] = PDEF_PTR(42); - Children[5] = PDEF_PTR(43); - Children[6] = PDEF_PTR(44); - - ParamDefTable[37].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(49); - Children[1] = PDEF_PTR(50); - Children[2] = PDEF_PTR(51); - Children[3] = PDEF_PTR(52); - Children[4] = PDEF_PTR(53); - - ParamDefTable[48].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=54, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(55); - Children[1] = PDEF_PTR(56); - Children[2] = PDEF_PTR(57); - Children[3] = PDEF_PTR(58); - Children[4] = PDEF_PTR(59); - Children[5] = PDEF_PTR(60); - Children[6] = PDEF_PTR(66); - - ParamDefTable[54].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(61); - Children[1] = PDEF_PTR(62); - Children[2] = PDEF_PTR(63); - Children[3] = PDEF_PTR(64); - Children[4] = PDEF_PTR(65); - - ParamDefTable[60].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(67); - Children[1] = PDEF_PTR(68); - Children[2] = PDEF_PTR(69); - Children[3] = PDEF_PTR(70); - Children[4] = PDEF_PTR(71); - Children[5] = PDEF_PTR(72); - - ParamDefTable[66].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=74, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(75); - - ParamDefTable[74].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=75, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(76); - Children[1] = PDEF_PTR(77); - Children[2] = PDEF_PTR(78); - Children[3] = PDEF_PTR(79); - Children[4] = PDEF_PTR(80); - Children[5] = PDEF_PTR(81); - Children[6] = PDEF_PTR(82); - Children[7] = PDEF_PTR(83); - Children[8] = PDEF_PTR(84); - - ParamDefTable[75].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=85, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(107); - Children[2] = PDEF_PTR(108); - Children[3] = PDEF_PTR(114); - Children[4] = PDEF_PTR(115); - Children[5] = PDEF_PTR(116); - Children[6] = PDEF_PTR(117); - Children[7] = PDEF_PTR(118); - - ParamDefTable[85].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - Children[5] = PDEF_PTR(92); - Children[6] = PDEF_PTR(93); - Children[7] = PDEF_PTR(94); - Children[8] = PDEF_PTR(95); - Children[9] = PDEF_PTR(96); - Children[10] = PDEF_PTR(97); - Children[11] = PDEF_PTR(98); - Children[12] = PDEF_PTR(99); - Children[13] = PDEF_PTR(100); - Children[14] = PDEF_PTR(101); - Children[15] = PDEF_PTR(102); - Children[16] = PDEF_PTR(103); - Children[17] = PDEF_PTR(104); - Children[18] = PDEF_PTR(105); - Children[19] = PDEF_PTR(106); - - ParamDefTable[86].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=108, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(109); - Children[1] = PDEF_PTR(110); - Children[2] = PDEF_PTR(111); - Children[3] = PDEF_PTR(112); - Children[4] = PDEF_PTR(113); - - ParamDefTable[108].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=119, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(120); - Children[1] = PDEF_PTR(128); - Children[2] = PDEF_PTR(129); - Children[3] = PDEF_PTR(130); - Children[4] = PDEF_PTR(131); - Children[5] = PDEF_PTR(144); - Children[6] = PDEF_PTR(145); - Children[7] = PDEF_PTR(146); - Children[8] = PDEF_PTR(147); - - ParamDefTable[119].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=120, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(121); - Children[1] = PDEF_PTR(122); - Children[2] = PDEF_PTR(123); - Children[3] = PDEF_PTR(124); - Children[4] = PDEF_PTR(125); - Children[5] = PDEF_PTR(126); - Children[6] = PDEF_PTR(127); - - ParamDefTable[120].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=131, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(132); - Children[1] = PDEF_PTR(133); - Children[2] = PDEF_PTR(134); - Children[3] = PDEF_PTR(135); - Children[4] = PDEF_PTR(136); - Children[5] = PDEF_PTR(137); - Children[6] = PDEF_PTR(138); - Children[7] = PDEF_PTR(139); - Children[8] = PDEF_PTR(140); - Children[9] = PDEF_PTR(141); - Children[10] = PDEF_PTR(142); - Children[11] = PDEF_PTR(143); - - ParamDefTable[131].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=148, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(149); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - Children[4] = PDEF_PTR(157); - Children[5] = PDEF_PTR(158); - Children[6] = PDEF_PTR(159); - Children[7] = PDEF_PTR(160); - Children[8] = PDEF_PTR(161); - Children[9] = PDEF_PTR(162); - Children[10] = PDEF_PTR(163); - Children[11] = PDEF_PTR(164); - - ParamDefTable[148].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=149, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(150); - Children[1] = PDEF_PTR(151); - Children[2] = PDEF_PTR(152); - Children[3] = PDEF_PTR(153); - - ParamDefTable[149].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=165, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(166); - Children[1] = PDEF_PTR(173); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(183); - Children[4] = PDEF_PTR(184); - Children[5] = PDEF_PTR(185); - Children[6] = PDEF_PTR(186); - Children[7] = PDEF_PTR(187); - - ParamDefTable[165].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=166, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(167); - Children[1] = PDEF_PTR(168); - Children[2] = PDEF_PTR(169); - Children[3] = PDEF_PTR(170); - Children[4] = PDEF_PTR(171); - Children[5] = PDEF_PTR(172); - - ParamDefTable[166].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(174); - Children[1] = PDEF_PTR(175); - Children[2] = PDEF_PTR(176); - Children[3] = PDEF_PTR(177); - - ParamDefTable[173].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(179); - Children[1] = PDEF_PTR(180); - Children[2] = PDEF_PTR(181); - Children[3] = PDEF_PTR(182); - - ParamDefTable[178].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=188, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(189); - Children[1] = PDEF_PTR(193); - Children[2] = PDEF_PTR(194); - Children[3] = PDEF_PTR(195); - Children[4] = PDEF_PTR(196); - Children[5] = PDEF_PTR(212); - Children[6] = PDEF_PTR(213); - - ParamDefTable[188].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=189, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(190); - Children[1] = PDEF_PTR(191); - Children[2] = PDEF_PTR(192); - - ParamDefTable[189].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(197); - Children[1] = PDEF_PTR(198); - Children[2] = PDEF_PTR(199); - Children[3] = PDEF_PTR(200); - Children[4] = PDEF_PTR(201); - Children[5] = PDEF_PTR(202); - Children[6] = PDEF_PTR(203); - Children[7] = PDEF_PTR(204); - Children[8] = PDEF_PTR(205); - Children[9] = PDEF_PTR(206); - Children[10] = PDEF_PTR(207); - Children[11] = PDEF_PTR(208); - Children[12] = PDEF_PTR(209); - Children[13] = PDEF_PTR(210); - Children[14] = PDEF_PTR(211); - - ParamDefTable[196].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=214, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(215); - Children[1] = PDEF_PTR(216); - Children[2] = PDEF_PTR(219); - Children[3] = PDEF_PTR(220); - Children[4] = PDEF_PTR(221); - Children[5] = PDEF_PTR(222); - Children[6] = PDEF_PTR(223); - Children[7] = PDEF_PTR(224); - Children[8] = PDEF_PTR(225); - Children[9] = PDEF_PTR(226); - - ParamDefTable[214].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=216, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(217); - Children[1] = PDEF_PTR(218); - - ParamDefTable[216].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=227, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(228); - Children[1] = PDEF_PTR(229); - Children[2] = PDEF_PTR(230); - - ParamDefTable[227].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=231, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(232); - Children[1] = PDEF_PTR(233); - Children[2] = PDEF_PTR(234); - Children[3] = PDEF_PTR(235); - Children[4] = PDEF_PTR(239); - Children[5] = PDEF_PTR(243); - Children[6] = PDEF_PTR(244); - Children[7] = PDEF_PTR(245); - Children[8] = PDEF_PTR(246); - Children[9] = PDEF_PTR(247); - Children[10] = PDEF_PTR(253); - - ParamDefTable[231].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(236); - Children[1] = PDEF_PTR(237); - Children[2] = PDEF_PTR(238); - - ParamDefTable[235].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(240); - Children[1] = PDEF_PTR(241); - Children[2] = PDEF_PTR(242); - - ParamDefTable[239].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(248); - Children[1] = PDEF_PTR(249); - Children[2] = PDEF_PTR(250); - Children[3] = PDEF_PTR(251); - Children[4] = PDEF_PTR(252); - - ParamDefTable[247].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=254, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(255); - - ParamDefTable[254].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=255, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(256); - Children[1] = PDEF_PTR(257); - Children[2] = PDEF_PTR(258); - Children[3] = PDEF_PTR(259); - Children[4] = PDEF_PTR(263); - Children[5] = PDEF_PTR(267); - Children[6] = PDEF_PTR(268); - Children[7] = PDEF_PTR(269); - Children[8] = PDEF_PTR(270); - Children[9] = PDEF_PTR(271); - Children[10] = PDEF_PTR(277); - - ParamDefTable[255].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=259, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(260); - Children[1] = PDEF_PTR(261); - Children[2] = PDEF_PTR(262); - - ParamDefTable[259].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=263, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(264); - Children[1] = PDEF_PTR(265); - Children[2] = PDEF_PTR(266); - - ParamDefTable[263].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=271, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(272); - Children[1] = PDEF_PTR(273); - Children[2] = PDEF_PTR(274); - Children[3] = PDEF_PTR(275); - Children[4] = PDEF_PTR(276); - - ParamDefTable[271].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p23::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p23::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p23::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p23::initReferences(void) -{ -} - -void DestructibleActorParam_0p23::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p23::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p23::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p23.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p23NS; + +const char* const DestructibleActorParam_0p23Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 278; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 21, 22, 74, 85, 119, + 148, 165, 188, 214, 227, 231, 254, 17, 19, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 45, 46, 47, 48, 54, 73, 38, 39, 40, 41, 42, 43, 44, 49, 50, 51, + 52, 53, 55, 56, 57, 58, 59, 60, 66, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 86, 107, 108, 114, 115, 116, 117, 118, 87, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 109, + 110, 111, 112, 113, 120, 128, 129, 130, 131, 144, 145, 146, 147, 121, 122, 123, 124, + 125, 126, 127, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 149, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 150, 151, 152, 153, 166, 173, 178, + 183, 184, 185, 186, 187, 167, 168, 169, 170, 171, 172, 174, 175, 176, 177, 179, 180, + 181, 182, 189, 193, 194, 195, 196, 212, 213, 190, 191, 192, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 215, 216, 219, 220, 221, 222, 223, + 224, 225, 226, 217, 218, 228, 229, 230, 232, 233, 234, 235, 239, 243, 244, 245, 246, + 247, 253, 236, 237, 238, 240, 241, 242, 248, 249, 250, 251, 252, 255, 256, 257, 258, + 259, 263, 267, 268, 269, 270, 271, 277, 260, 261, 262, 264, 265, 266, 272, 273, 274, + 275, 276, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(30), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(31), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(32), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(53), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(65), 7 }, // destructibleParameters.runtimeFracture + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(72), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(77), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(83), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(84), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(93), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(101), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(121), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(126), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(135), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(142), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(154), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(166), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(170), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(178), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(184), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(188), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(192), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(199), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(202), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(217), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(227), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(229), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(232), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(243), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(246), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(249), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(254), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(255), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(266), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(269), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(272), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData +}; + + +bool DestructibleActorParam_0p23::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p23::mBuiltFlagMutex; + +DestructibleActorParam_0p23::DestructibleActorParam_0p23(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p23FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p23::~DestructibleActorParam_0p23() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p23::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p23(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p23::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p23::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p23* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p23::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p23::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p23::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p23::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p23::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(18); + Children[17] = PDEF_PTR(20); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(74); + Children[21] = PDEF_PTR(85); + Children[22] = PDEF_PTR(119); + Children[23] = PDEF_PTR(148); + Children[24] = PDEF_PTR(165); + Children[25] = PDEF_PTR(188); + Children[26] = PDEF_PTR(214); + Children[27] = PDEF_PTR(227); + Children[28] = PDEF_PTR(231); + Children[29] = PDEF_PTR(254); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=16, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(19); + + ParamDefTable[18].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=22, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(23); + Children[1] = PDEF_PTR(24); + Children[2] = PDEF_PTR(25); + Children[3] = PDEF_PTR(26); + Children[4] = PDEF_PTR(27); + Children[5] = PDEF_PTR(28); + Children[6] = PDEF_PTR(29); + Children[7] = PDEF_PTR(30); + Children[8] = PDEF_PTR(31); + Children[9] = PDEF_PTR(32); + Children[10] = PDEF_PTR(33); + Children[11] = PDEF_PTR(34); + Children[12] = PDEF_PTR(35); + Children[13] = PDEF_PTR(36); + Children[14] = PDEF_PTR(37); + Children[15] = PDEF_PTR(45); + Children[16] = PDEF_PTR(46); + Children[17] = PDEF_PTR(47); + Children[18] = PDEF_PTR(48); + Children[19] = PDEF_PTR(54); + Children[20] = PDEF_PTR(73); + + ParamDefTable[22].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=37, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(38); + Children[1] = PDEF_PTR(39); + Children[2] = PDEF_PTR(40); + Children[3] = PDEF_PTR(41); + Children[4] = PDEF_PTR(42); + Children[5] = PDEF_PTR(43); + Children[6] = PDEF_PTR(44); + + ParamDefTable[37].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(49); + Children[1] = PDEF_PTR(50); + Children[2] = PDEF_PTR(51); + Children[3] = PDEF_PTR(52); + Children[4] = PDEF_PTR(53); + + ParamDefTable[48].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=54, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(55); + Children[1] = PDEF_PTR(56); + Children[2] = PDEF_PTR(57); + Children[3] = PDEF_PTR(58); + Children[4] = PDEF_PTR(59); + Children[5] = PDEF_PTR(60); + Children[6] = PDEF_PTR(66); + + ParamDefTable[54].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=60, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(61); + Children[1] = PDEF_PTR(62); + Children[2] = PDEF_PTR(63); + Children[3] = PDEF_PTR(64); + Children[4] = PDEF_PTR(65); + + ParamDefTable[60].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(67); + Children[1] = PDEF_PTR(68); + Children[2] = PDEF_PTR(69); + Children[3] = PDEF_PTR(70); + Children[4] = PDEF_PTR(71); + Children[5] = PDEF_PTR(72); + + ParamDefTable[66].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=74, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(75); + + ParamDefTable[74].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=75, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(76); + Children[1] = PDEF_PTR(77); + Children[2] = PDEF_PTR(78); + Children[3] = PDEF_PTR(79); + Children[4] = PDEF_PTR(80); + Children[5] = PDEF_PTR(81); + Children[6] = PDEF_PTR(82); + Children[7] = PDEF_PTR(83); + Children[8] = PDEF_PTR(84); + + ParamDefTable[75].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=85, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(107); + Children[2] = PDEF_PTR(108); + Children[3] = PDEF_PTR(114); + Children[4] = PDEF_PTR(115); + Children[5] = PDEF_PTR(116); + Children[6] = PDEF_PTR(117); + Children[7] = PDEF_PTR(118); + + ParamDefTable[85].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=86, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + Children[5] = PDEF_PTR(92); + Children[6] = PDEF_PTR(93); + Children[7] = PDEF_PTR(94); + Children[8] = PDEF_PTR(95); + Children[9] = PDEF_PTR(96); + Children[10] = PDEF_PTR(97); + Children[11] = PDEF_PTR(98); + Children[12] = PDEF_PTR(99); + Children[13] = PDEF_PTR(100); + Children[14] = PDEF_PTR(101); + Children[15] = PDEF_PTR(102); + Children[16] = PDEF_PTR(103); + Children[17] = PDEF_PTR(104); + Children[18] = PDEF_PTR(105); + Children[19] = PDEF_PTR(106); + + ParamDefTable[86].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=108, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(109); + Children[1] = PDEF_PTR(110); + Children[2] = PDEF_PTR(111); + Children[3] = PDEF_PTR(112); + Children[4] = PDEF_PTR(113); + + ParamDefTable[108].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=119, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(120); + Children[1] = PDEF_PTR(128); + Children[2] = PDEF_PTR(129); + Children[3] = PDEF_PTR(130); + Children[4] = PDEF_PTR(131); + Children[5] = PDEF_PTR(144); + Children[6] = PDEF_PTR(145); + Children[7] = PDEF_PTR(146); + Children[8] = PDEF_PTR(147); + + ParamDefTable[119].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=120, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(121); + Children[1] = PDEF_PTR(122); + Children[2] = PDEF_PTR(123); + Children[3] = PDEF_PTR(124); + Children[4] = PDEF_PTR(125); + Children[5] = PDEF_PTR(126); + Children[6] = PDEF_PTR(127); + + ParamDefTable[120].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=131, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(132); + Children[1] = PDEF_PTR(133); + Children[2] = PDEF_PTR(134); + Children[3] = PDEF_PTR(135); + Children[4] = PDEF_PTR(136); + Children[5] = PDEF_PTR(137); + Children[6] = PDEF_PTR(138); + Children[7] = PDEF_PTR(139); + Children[8] = PDEF_PTR(140); + Children[9] = PDEF_PTR(141); + Children[10] = PDEF_PTR(142); + Children[11] = PDEF_PTR(143); + + ParamDefTable[131].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=148, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(149); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + Children[4] = PDEF_PTR(157); + Children[5] = PDEF_PTR(158); + Children[6] = PDEF_PTR(159); + Children[7] = PDEF_PTR(160); + Children[8] = PDEF_PTR(161); + Children[9] = PDEF_PTR(162); + Children[10] = PDEF_PTR(163); + Children[11] = PDEF_PTR(164); + + ParamDefTable[148].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=149, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(150); + Children[1] = PDEF_PTR(151); + Children[2] = PDEF_PTR(152); + Children[3] = PDEF_PTR(153); + + ParamDefTable[149].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=165, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(166); + Children[1] = PDEF_PTR(173); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(183); + Children[4] = PDEF_PTR(184); + Children[5] = PDEF_PTR(185); + Children[6] = PDEF_PTR(186); + Children[7] = PDEF_PTR(187); + + ParamDefTable[165].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=166, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(167); + Children[1] = PDEF_PTR(168); + Children[2] = PDEF_PTR(169); + Children[3] = PDEF_PTR(170); + Children[4] = PDEF_PTR(171); + Children[5] = PDEF_PTR(172); + + ParamDefTable[166].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(174); + Children[1] = PDEF_PTR(175); + Children[2] = PDEF_PTR(176); + Children[3] = PDEF_PTR(177); + + ParamDefTable[173].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=178, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(179); + Children[1] = PDEF_PTR(180); + Children[2] = PDEF_PTR(181); + Children[3] = PDEF_PTR(182); + + ParamDefTable[178].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=188, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(189); + Children[1] = PDEF_PTR(193); + Children[2] = PDEF_PTR(194); + Children[3] = PDEF_PTR(195); + Children[4] = PDEF_PTR(196); + Children[5] = PDEF_PTR(212); + Children[6] = PDEF_PTR(213); + + ParamDefTable[188].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=189, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(190); + Children[1] = PDEF_PTR(191); + Children[2] = PDEF_PTR(192); + + ParamDefTable[189].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(197); + Children[1] = PDEF_PTR(198); + Children[2] = PDEF_PTR(199); + Children[3] = PDEF_PTR(200); + Children[4] = PDEF_PTR(201); + Children[5] = PDEF_PTR(202); + Children[6] = PDEF_PTR(203); + Children[7] = PDEF_PTR(204); + Children[8] = PDEF_PTR(205); + Children[9] = PDEF_PTR(206); + Children[10] = PDEF_PTR(207); + Children[11] = PDEF_PTR(208); + Children[12] = PDEF_PTR(209); + Children[13] = PDEF_PTR(210); + Children[14] = PDEF_PTR(211); + + ParamDefTable[196].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=214, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(215); + Children[1] = PDEF_PTR(216); + Children[2] = PDEF_PTR(219); + Children[3] = PDEF_PTR(220); + Children[4] = PDEF_PTR(221); + Children[5] = PDEF_PTR(222); + Children[6] = PDEF_PTR(223); + Children[7] = PDEF_PTR(224); + Children[8] = PDEF_PTR(225); + Children[9] = PDEF_PTR(226); + + ParamDefTable[214].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=216, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(217); + Children[1] = PDEF_PTR(218); + + ParamDefTable[216].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=227, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(228); + Children[1] = PDEF_PTR(229); + Children[2] = PDEF_PTR(230); + + ParamDefTable[227].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=231, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(232); + Children[1] = PDEF_PTR(233); + Children[2] = PDEF_PTR(234); + Children[3] = PDEF_PTR(235); + Children[4] = PDEF_PTR(239); + Children[5] = PDEF_PTR(243); + Children[6] = PDEF_PTR(244); + Children[7] = PDEF_PTR(245); + Children[8] = PDEF_PTR(246); + Children[9] = PDEF_PTR(247); + Children[10] = PDEF_PTR(253); + + ParamDefTable[231].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=235, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(236); + Children[1] = PDEF_PTR(237); + Children[2] = PDEF_PTR(238); + + ParamDefTable[235].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=239, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(240); + Children[1] = PDEF_PTR(241); + Children[2] = PDEF_PTR(242); + + ParamDefTable[239].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(248); + Children[1] = PDEF_PTR(249); + Children[2] = PDEF_PTR(250); + Children[3] = PDEF_PTR(251); + Children[4] = PDEF_PTR(252); + + ParamDefTable[247].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=254, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(255); + + ParamDefTable[254].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=255, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(256); + Children[1] = PDEF_PTR(257); + Children[2] = PDEF_PTR(258); + Children[3] = PDEF_PTR(259); + Children[4] = PDEF_PTR(263); + Children[5] = PDEF_PTR(267); + Children[6] = PDEF_PTR(268); + Children[7] = PDEF_PTR(269); + Children[8] = PDEF_PTR(270); + Children[9] = PDEF_PTR(271); + Children[10] = PDEF_PTR(277); + + ParamDefTable[255].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=259, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(260); + Children[1] = PDEF_PTR(261); + Children[2] = PDEF_PTR(262); + + ParamDefTable[259].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=263, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(264); + Children[1] = PDEF_PTR(265); + Children[2] = PDEF_PTR(266); + + ParamDefTable[263].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=271, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(272); + Children[1] = PDEF_PTR(273); + Children[2] = PDEF_PTR(274); + Children[3] = PDEF_PTR(275); + Children[4] = PDEF_PTR(276); + + ParamDefTable[271].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p23::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p23::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p23::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p23::initReferences(void) +{ +} + +void DestructibleActorParam_0p23::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p23::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p23::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p24.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p24.cpp old mode 100644 new mode 100755 index 241bd37..10b1a2e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p24.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p24.cpp @@ -1,7847 +1,7847 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p24.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p24NS; - -const char* const DestructibleActorParam_0p24Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 279; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 75, 86, - 120, 149, 166, 189, 215, 228, 232, 255, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 74, 39, 40, 41, 42, 43, 44, 45, 50, 51, - 52, 53, 54, 56, 57, 58, 59, 60, 61, 67, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 108, 109, 115, 116, 117, 118, 119, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 110, 111, 112, 113, 114, 121, 129, 130, 131, 132, 145, 146, 147, 148, 122, 123, 124, - 125, 126, 127, 128, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 150, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 151, 152, 153, 154, 167, 174, - 179, 184, 185, 186, 187, 188, 168, 169, 170, 171, 172, 173, 175, 176, 177, 178, 180, - 181, 182, 183, 190, 194, 195, 196, 197, 213, 214, 191, 192, 193, 198, 199, 200, 201, - 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 216, 217, 220, 221, 222, 223, - 224, 225, 226, 227, 218, 219, 229, 230, 231, 233, 234, 235, 236, 240, 244, 245, 246, - 247, 248, 254, 237, 238, 239, 241, 242, 243, 249, 250, 251, 252, 253, 256, 257, 258, - 259, 260, 264, 268, 269, 270, 271, 272, 278, 261, 262, 263, 265, 266, 267, 273, 274, - 275, 276, 277, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 31 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(31), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(32), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(66), 7 }, // destructibleParameters.runtimeFracture - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(73), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(78), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(84), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(85), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(94), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(102), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(122), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(127), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(136), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(143), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(155), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(167), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(171), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(179), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(185), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(189), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(193), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(200), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(203), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(218), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(228), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(230), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(233), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(244), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(247), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(250), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(255), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(256), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(267), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(270), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(273), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData -}; - - -bool DestructibleActorParam_0p24::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p24::mBuiltFlagMutex; - -DestructibleActorParam_0p24::DestructibleActorParam_0p24(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p24FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p24::~DestructibleActorParam_0p24() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p24::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p24(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p24::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p24::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p24* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p24::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p24::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p24::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p24::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p24::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[31]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(19); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(75); - Children[22] = PDEF_PTR(86); - Children[23] = PDEF_PTR(120); - Children[24] = PDEF_PTR(149); - Children[25] = PDEF_PTR(166); - Children[26] = PDEF_PTR(189); - Children[27] = PDEF_PTR(215); - Children[28] = PDEF_PTR(228); - Children[29] = PDEF_PTR(232); - Children[30] = PDEF_PTR(255); - - ParamDefTable[0].setChildren(Children, 31); - } - - // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(20); - - ParamDefTable[19].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(28); - Children[5] = PDEF_PTR(29); - Children[6] = PDEF_PTR(30); - Children[7] = PDEF_PTR(31); - Children[8] = PDEF_PTR(32); - Children[9] = PDEF_PTR(33); - Children[10] = PDEF_PTR(34); - Children[11] = PDEF_PTR(35); - Children[12] = PDEF_PTR(36); - Children[13] = PDEF_PTR(37); - Children[14] = PDEF_PTR(38); - Children[15] = PDEF_PTR(46); - Children[16] = PDEF_PTR(47); - Children[17] = PDEF_PTR(48); - Children[18] = PDEF_PTR(49); - Children[19] = PDEF_PTR(55); - Children[20] = PDEF_PTR(74); - - ParamDefTable[23].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(39); - Children[1] = PDEF_PTR(40); - Children[2] = PDEF_PTR(41); - Children[3] = PDEF_PTR(42); - Children[4] = PDEF_PTR(43); - Children[5] = PDEF_PTR(44); - Children[6] = PDEF_PTR(45); - - ParamDefTable[38].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(67); - - ParamDefTable[55].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(62); - Children[1] = PDEF_PTR(63); - Children[2] = PDEF_PTR(64); - Children[3] = PDEF_PTR(65); - Children[4] = PDEF_PTR(66); - - ParamDefTable[61].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(68); - Children[1] = PDEF_PTR(69); - Children[2] = PDEF_PTR(70); - Children[3] = PDEF_PTR(71); - Children[4] = PDEF_PTR(72); - Children[5] = PDEF_PTR(73); - - ParamDefTable[67].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=75, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(76); - - ParamDefTable[75].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=76, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(77); - Children[1] = PDEF_PTR(78); - Children[2] = PDEF_PTR(79); - Children[3] = PDEF_PTR(80); - Children[4] = PDEF_PTR(81); - Children[5] = PDEF_PTR(82); - Children[6] = PDEF_PTR(83); - Children[7] = PDEF_PTR(84); - Children[8] = PDEF_PTR(85); - - ParamDefTable[76].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=86, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(108); - Children[2] = PDEF_PTR(109); - Children[3] = PDEF_PTR(115); - Children[4] = PDEF_PTR(116); - Children[5] = PDEF_PTR(117); - Children[6] = PDEF_PTR(118); - Children[7] = PDEF_PTR(119); - - ParamDefTable[86].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(88); - Children[1] = PDEF_PTR(89); - Children[2] = PDEF_PTR(90); - Children[3] = PDEF_PTR(91); - Children[4] = PDEF_PTR(92); - Children[5] = PDEF_PTR(93); - Children[6] = PDEF_PTR(94); - Children[7] = PDEF_PTR(95); - Children[8] = PDEF_PTR(96); - Children[9] = PDEF_PTR(97); - Children[10] = PDEF_PTR(98); - Children[11] = PDEF_PTR(99); - Children[12] = PDEF_PTR(100); - Children[13] = PDEF_PTR(101); - Children[14] = PDEF_PTR(102); - Children[15] = PDEF_PTR(103); - Children[16] = PDEF_PTR(104); - Children[17] = PDEF_PTR(105); - Children[18] = PDEF_PTR(106); - Children[19] = PDEF_PTR(107); - - ParamDefTable[87].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=109, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - - ParamDefTable[109].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=120, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(121); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - Children[4] = PDEF_PTR(132); - Children[5] = PDEF_PTR(145); - Children[6] = PDEF_PTR(146); - Children[7] = PDEF_PTR(147); - Children[8] = PDEF_PTR(148); - - ParamDefTable[120].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=121, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(122); - Children[1] = PDEF_PTR(123); - Children[2] = PDEF_PTR(124); - Children[3] = PDEF_PTR(125); - Children[4] = PDEF_PTR(126); - Children[5] = PDEF_PTR(127); - Children[6] = PDEF_PTR(128); - - ParamDefTable[121].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=132, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(133); - Children[1] = PDEF_PTR(134); - Children[2] = PDEF_PTR(135); - Children[3] = PDEF_PTR(136); - Children[4] = PDEF_PTR(137); - Children[5] = PDEF_PTR(138); - Children[6] = PDEF_PTR(139); - Children[7] = PDEF_PTR(140); - Children[8] = PDEF_PTR(141); - Children[9] = PDEF_PTR(142); - Children[10] = PDEF_PTR(143); - Children[11] = PDEF_PTR(144); - - ParamDefTable[132].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=149, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(150); - Children[1] = PDEF_PTR(155); - Children[2] = PDEF_PTR(156); - Children[3] = PDEF_PTR(157); - Children[4] = PDEF_PTR(158); - Children[5] = PDEF_PTR(159); - Children[6] = PDEF_PTR(160); - Children[7] = PDEF_PTR(161); - Children[8] = PDEF_PTR(162); - Children[9] = PDEF_PTR(163); - Children[10] = PDEF_PTR(164); - Children[11] = PDEF_PTR(165); - - ParamDefTable[149].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=150, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(151); - Children[1] = PDEF_PTR(152); - Children[2] = PDEF_PTR(153); - Children[3] = PDEF_PTR(154); - - ParamDefTable[150].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=166, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(167); - Children[1] = PDEF_PTR(174); - Children[2] = PDEF_PTR(179); - Children[3] = PDEF_PTR(184); - Children[4] = PDEF_PTR(185); - Children[5] = PDEF_PTR(186); - Children[6] = PDEF_PTR(187); - Children[7] = PDEF_PTR(188); - - ParamDefTable[166].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=167, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(169); - Children[2] = PDEF_PTR(170); - Children[3] = PDEF_PTR(171); - Children[4] = PDEF_PTR(172); - Children[5] = PDEF_PTR(173); - - ParamDefTable[167].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(175); - Children[1] = PDEF_PTR(176); - Children[2] = PDEF_PTR(177); - Children[3] = PDEF_PTR(178); - - ParamDefTable[174].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(180); - Children[1] = PDEF_PTR(181); - Children[2] = PDEF_PTR(182); - Children[3] = PDEF_PTR(183); - - ParamDefTable[179].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=189, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(190); - Children[1] = PDEF_PTR(194); - Children[2] = PDEF_PTR(195); - Children[3] = PDEF_PTR(196); - Children[4] = PDEF_PTR(197); - Children[5] = PDEF_PTR(213); - Children[6] = PDEF_PTR(214); - - ParamDefTable[189].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=190, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(191); - Children[1] = PDEF_PTR(192); - Children[2] = PDEF_PTR(193); - - ParamDefTable[190].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(198); - Children[1] = PDEF_PTR(199); - Children[2] = PDEF_PTR(200); - Children[3] = PDEF_PTR(201); - Children[4] = PDEF_PTR(202); - Children[5] = PDEF_PTR(203); - Children[6] = PDEF_PTR(204); - Children[7] = PDEF_PTR(205); - Children[8] = PDEF_PTR(206); - Children[9] = PDEF_PTR(207); - Children[10] = PDEF_PTR(208); - Children[11] = PDEF_PTR(209); - Children[12] = PDEF_PTR(210); - Children[13] = PDEF_PTR(211); - Children[14] = PDEF_PTR(212); - - ParamDefTable[197].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=215, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(216); - Children[1] = PDEF_PTR(217); - Children[2] = PDEF_PTR(220); - Children[3] = PDEF_PTR(221); - Children[4] = PDEF_PTR(222); - Children[5] = PDEF_PTR(223); - Children[6] = PDEF_PTR(224); - Children[7] = PDEF_PTR(225); - Children[8] = PDEF_PTR(226); - Children[9] = PDEF_PTR(227); - - ParamDefTable[215].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=217, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(218); - Children[1] = PDEF_PTR(219); - - ParamDefTable[217].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=228, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(229); - Children[1] = PDEF_PTR(230); - Children[2] = PDEF_PTR(231); - - ParamDefTable[228].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=232, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(233); - Children[1] = PDEF_PTR(234); - Children[2] = PDEF_PTR(235); - Children[3] = PDEF_PTR(236); - Children[4] = PDEF_PTR(240); - Children[5] = PDEF_PTR(244); - Children[6] = PDEF_PTR(245); - Children[7] = PDEF_PTR(246); - Children[8] = PDEF_PTR(247); - Children[9] = PDEF_PTR(248); - Children[10] = PDEF_PTR(254); - - ParamDefTable[232].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(237); - Children[1] = PDEF_PTR(238); - Children[2] = PDEF_PTR(239); - - ParamDefTable[236].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(241); - Children[1] = PDEF_PTR(242); - Children[2] = PDEF_PTR(243); - - ParamDefTable[240].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(249); - Children[1] = PDEF_PTR(250); - Children[2] = PDEF_PTR(251); - Children[3] = PDEF_PTR(252); - Children[4] = PDEF_PTR(253); - - ParamDefTable[248].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=255, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(256); - - ParamDefTable[255].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=256, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(257); - Children[1] = PDEF_PTR(258); - Children[2] = PDEF_PTR(259); - Children[3] = PDEF_PTR(260); - Children[4] = PDEF_PTR(264); - Children[5] = PDEF_PTR(268); - Children[6] = PDEF_PTR(269); - Children[7] = PDEF_PTR(270); - Children[8] = PDEF_PTR(271); - Children[9] = PDEF_PTR(272); - Children[10] = PDEF_PTR(278); - - ParamDefTable[256].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=260, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(261); - Children[1] = PDEF_PTR(262); - Children[2] = PDEF_PTR(263); - - ParamDefTable[260].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=264, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(265); - Children[1] = PDEF_PTR(266); - Children[2] = PDEF_PTR(267); - - ParamDefTable[264].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=272, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(273); - Children[1] = PDEF_PTR(274); - Children[2] = PDEF_PTR(275); - Children[3] = PDEF_PTR(276); - Children[4] = PDEF_PTR(277); - - ParamDefTable[272].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p24::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p24::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p24::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p24::initReferences(void) -{ -} - -void DestructibleActorParam_0p24::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p24::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p24::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p24.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p24NS; + +const char* const DestructibleActorParam_0p24Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 279; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 75, 86, + 120, 149, 166, 189, 215, 228, 232, 255, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 74, 39, 40, 41, 42, 43, 44, 45, 50, 51, + 52, 53, 54, 56, 57, 58, 59, 60, 61, 67, 62, 63, 64, 65, 66, 68, 69, 70, 71, 72, 73, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 87, 108, 109, 115, 116, 117, 118, 119, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 110, 111, 112, 113, 114, 121, 129, 130, 131, 132, 145, 146, 147, 148, 122, 123, 124, + 125, 126, 127, 128, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 150, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 151, 152, 153, 154, 167, 174, + 179, 184, 185, 186, 187, 188, 168, 169, 170, 171, 172, 173, 175, 176, 177, 178, 180, + 181, 182, 183, 190, 194, 195, 196, 197, 213, 214, 191, 192, 193, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 216, 217, 220, 221, 222, 223, + 224, 225, 226, 227, 218, 219, 229, 230, 231, 233, 234, 235, 236, 240, 244, 245, 246, + 247, 248, 254, 237, 238, 239, 241, 242, 243, 249, 250, 251, 252, 253, 256, 257, 258, + 259, 260, 264, 268, 269, 270, 271, 272, 278, 261, 262, 263, 265, 266, 267, 273, 274, + 275, 276, 277, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 31 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(31), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(32), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(66), 7 }, // destructibleParameters.runtimeFracture + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(73), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(78), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(84), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(85), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(94), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(102), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(122), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(127), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(136), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(143), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(155), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(167), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(171), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(179), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(185), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(189), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(193), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(200), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(203), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(218), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(228), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(230), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(233), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(244), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(247), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(250), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(255), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(256), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(267), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(270), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(273), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData +}; + + +bool DestructibleActorParam_0p24::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p24::mBuiltFlagMutex; + +DestructibleActorParam_0p24::DestructibleActorParam_0p24(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p24FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p24::~DestructibleActorParam_0p24() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p24::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p24(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p24::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p24::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p24* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p24::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p24::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p24::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p24::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p24::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[31]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(19); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(75); + Children[22] = PDEF_PTR(86); + Children[23] = PDEF_PTR(120); + Children[24] = PDEF_PTR(149); + Children[25] = PDEF_PTR(166); + Children[26] = PDEF_PTR(189); + Children[27] = PDEF_PTR(215); + Children[28] = PDEF_PTR(228); + Children[29] = PDEF_PTR(232); + Children[30] = PDEF_PTR(255); + + ParamDefTable[0].setChildren(Children, 31); + } + + // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(20); + + ParamDefTable[19].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(28); + Children[5] = PDEF_PTR(29); + Children[6] = PDEF_PTR(30); + Children[7] = PDEF_PTR(31); + Children[8] = PDEF_PTR(32); + Children[9] = PDEF_PTR(33); + Children[10] = PDEF_PTR(34); + Children[11] = PDEF_PTR(35); + Children[12] = PDEF_PTR(36); + Children[13] = PDEF_PTR(37); + Children[14] = PDEF_PTR(38); + Children[15] = PDEF_PTR(46); + Children[16] = PDEF_PTR(47); + Children[17] = PDEF_PTR(48); + Children[18] = PDEF_PTR(49); + Children[19] = PDEF_PTR(55); + Children[20] = PDEF_PTR(74); + + ParamDefTable[23].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(39); + Children[1] = PDEF_PTR(40); + Children[2] = PDEF_PTR(41); + Children[3] = PDEF_PTR(42); + Children[4] = PDEF_PTR(43); + Children[5] = PDEF_PTR(44); + Children[6] = PDEF_PTR(45); + + ParamDefTable[38].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(67); + + ParamDefTable[55].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=61, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(62); + Children[1] = PDEF_PTR(63); + Children[2] = PDEF_PTR(64); + Children[3] = PDEF_PTR(65); + Children[4] = PDEF_PTR(66); + + ParamDefTable[61].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(68); + Children[1] = PDEF_PTR(69); + Children[2] = PDEF_PTR(70); + Children[3] = PDEF_PTR(71); + Children[4] = PDEF_PTR(72); + Children[5] = PDEF_PTR(73); + + ParamDefTable[67].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=75, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(76); + + ParamDefTable[75].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=76, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(77); + Children[1] = PDEF_PTR(78); + Children[2] = PDEF_PTR(79); + Children[3] = PDEF_PTR(80); + Children[4] = PDEF_PTR(81); + Children[5] = PDEF_PTR(82); + Children[6] = PDEF_PTR(83); + Children[7] = PDEF_PTR(84); + Children[8] = PDEF_PTR(85); + + ParamDefTable[76].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=86, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(108); + Children[2] = PDEF_PTR(109); + Children[3] = PDEF_PTR(115); + Children[4] = PDEF_PTR(116); + Children[5] = PDEF_PTR(117); + Children[6] = PDEF_PTR(118); + Children[7] = PDEF_PTR(119); + + ParamDefTable[86].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=87, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(88); + Children[1] = PDEF_PTR(89); + Children[2] = PDEF_PTR(90); + Children[3] = PDEF_PTR(91); + Children[4] = PDEF_PTR(92); + Children[5] = PDEF_PTR(93); + Children[6] = PDEF_PTR(94); + Children[7] = PDEF_PTR(95); + Children[8] = PDEF_PTR(96); + Children[9] = PDEF_PTR(97); + Children[10] = PDEF_PTR(98); + Children[11] = PDEF_PTR(99); + Children[12] = PDEF_PTR(100); + Children[13] = PDEF_PTR(101); + Children[14] = PDEF_PTR(102); + Children[15] = PDEF_PTR(103); + Children[16] = PDEF_PTR(104); + Children[17] = PDEF_PTR(105); + Children[18] = PDEF_PTR(106); + Children[19] = PDEF_PTR(107); + + ParamDefTable[87].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=109, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + + ParamDefTable[109].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=120, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(121); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + Children[4] = PDEF_PTR(132); + Children[5] = PDEF_PTR(145); + Children[6] = PDEF_PTR(146); + Children[7] = PDEF_PTR(147); + Children[8] = PDEF_PTR(148); + + ParamDefTable[120].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=121, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(122); + Children[1] = PDEF_PTR(123); + Children[2] = PDEF_PTR(124); + Children[3] = PDEF_PTR(125); + Children[4] = PDEF_PTR(126); + Children[5] = PDEF_PTR(127); + Children[6] = PDEF_PTR(128); + + ParamDefTable[121].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=132, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(133); + Children[1] = PDEF_PTR(134); + Children[2] = PDEF_PTR(135); + Children[3] = PDEF_PTR(136); + Children[4] = PDEF_PTR(137); + Children[5] = PDEF_PTR(138); + Children[6] = PDEF_PTR(139); + Children[7] = PDEF_PTR(140); + Children[8] = PDEF_PTR(141); + Children[9] = PDEF_PTR(142); + Children[10] = PDEF_PTR(143); + Children[11] = PDEF_PTR(144); + + ParamDefTable[132].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=149, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(150); + Children[1] = PDEF_PTR(155); + Children[2] = PDEF_PTR(156); + Children[3] = PDEF_PTR(157); + Children[4] = PDEF_PTR(158); + Children[5] = PDEF_PTR(159); + Children[6] = PDEF_PTR(160); + Children[7] = PDEF_PTR(161); + Children[8] = PDEF_PTR(162); + Children[9] = PDEF_PTR(163); + Children[10] = PDEF_PTR(164); + Children[11] = PDEF_PTR(165); + + ParamDefTable[149].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=150, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(151); + Children[1] = PDEF_PTR(152); + Children[2] = PDEF_PTR(153); + Children[3] = PDEF_PTR(154); + + ParamDefTable[150].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=166, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(167); + Children[1] = PDEF_PTR(174); + Children[2] = PDEF_PTR(179); + Children[3] = PDEF_PTR(184); + Children[4] = PDEF_PTR(185); + Children[5] = PDEF_PTR(186); + Children[6] = PDEF_PTR(187); + Children[7] = PDEF_PTR(188); + + ParamDefTable[166].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=167, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(169); + Children[2] = PDEF_PTR(170); + Children[3] = PDEF_PTR(171); + Children[4] = PDEF_PTR(172); + Children[5] = PDEF_PTR(173); + + ParamDefTable[167].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=174, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(175); + Children[1] = PDEF_PTR(176); + Children[2] = PDEF_PTR(177); + Children[3] = PDEF_PTR(178); + + ParamDefTable[174].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=179, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(180); + Children[1] = PDEF_PTR(181); + Children[2] = PDEF_PTR(182); + Children[3] = PDEF_PTR(183); + + ParamDefTable[179].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=189, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(190); + Children[1] = PDEF_PTR(194); + Children[2] = PDEF_PTR(195); + Children[3] = PDEF_PTR(196); + Children[4] = PDEF_PTR(197); + Children[5] = PDEF_PTR(213); + Children[6] = PDEF_PTR(214); + + ParamDefTable[189].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=190, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(191); + Children[1] = PDEF_PTR(192); + Children[2] = PDEF_PTR(193); + + ParamDefTable[190].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=197, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(198); + Children[1] = PDEF_PTR(199); + Children[2] = PDEF_PTR(200); + Children[3] = PDEF_PTR(201); + Children[4] = PDEF_PTR(202); + Children[5] = PDEF_PTR(203); + Children[6] = PDEF_PTR(204); + Children[7] = PDEF_PTR(205); + Children[8] = PDEF_PTR(206); + Children[9] = PDEF_PTR(207); + Children[10] = PDEF_PTR(208); + Children[11] = PDEF_PTR(209); + Children[12] = PDEF_PTR(210); + Children[13] = PDEF_PTR(211); + Children[14] = PDEF_PTR(212); + + ParamDefTable[197].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=215, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(216); + Children[1] = PDEF_PTR(217); + Children[2] = PDEF_PTR(220); + Children[3] = PDEF_PTR(221); + Children[4] = PDEF_PTR(222); + Children[5] = PDEF_PTR(223); + Children[6] = PDEF_PTR(224); + Children[7] = PDEF_PTR(225); + Children[8] = PDEF_PTR(226); + Children[9] = PDEF_PTR(227); + + ParamDefTable[215].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=217, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(218); + Children[1] = PDEF_PTR(219); + + ParamDefTable[217].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=228, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(229); + Children[1] = PDEF_PTR(230); + Children[2] = PDEF_PTR(231); + + ParamDefTable[228].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=232, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(233); + Children[1] = PDEF_PTR(234); + Children[2] = PDEF_PTR(235); + Children[3] = PDEF_PTR(236); + Children[4] = PDEF_PTR(240); + Children[5] = PDEF_PTR(244); + Children[6] = PDEF_PTR(245); + Children[7] = PDEF_PTR(246); + Children[8] = PDEF_PTR(247); + Children[9] = PDEF_PTR(248); + Children[10] = PDEF_PTR(254); + + ParamDefTable[232].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=236, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(237); + Children[1] = PDEF_PTR(238); + Children[2] = PDEF_PTR(239); + + ParamDefTable[236].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=240, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(241); + Children[1] = PDEF_PTR(242); + Children[2] = PDEF_PTR(243); + + ParamDefTable[240].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=248, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(249); + Children[1] = PDEF_PTR(250); + Children[2] = PDEF_PTR(251); + Children[3] = PDEF_PTR(252); + Children[4] = PDEF_PTR(253); + + ParamDefTable[248].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=255, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(256); + + ParamDefTable[255].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=256, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(257); + Children[1] = PDEF_PTR(258); + Children[2] = PDEF_PTR(259); + Children[3] = PDEF_PTR(260); + Children[4] = PDEF_PTR(264); + Children[5] = PDEF_PTR(268); + Children[6] = PDEF_PTR(269); + Children[7] = PDEF_PTR(270); + Children[8] = PDEF_PTR(271); + Children[9] = PDEF_PTR(272); + Children[10] = PDEF_PTR(278); + + ParamDefTable[256].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=260, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(261); + Children[1] = PDEF_PTR(262); + Children[2] = PDEF_PTR(263); + + ParamDefTable[260].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=264, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(265); + Children[1] = PDEF_PTR(266); + Children[2] = PDEF_PTR(267); + + ParamDefTable[264].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=272, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(273); + Children[1] = PDEF_PTR(274); + Children[2] = PDEF_PTR(275); + Children[3] = PDEF_PTR(276); + Children[4] = PDEF_PTR(277); + + ParamDefTable[272].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p24::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p24::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p24::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p24::initReferences(void) +{ +} + +void DestructibleActorParam_0p24::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p24::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p24::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p25.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p25.cpp old mode 100644 new mode 100755 index 98400e7..ec2adad --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p25.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p25.cpp @@ -1,8010 +1,8010 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p25.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p25NS; - -const char* const DestructibleActorParam_0p25Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 285; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 81, 92, - 126, 155, 172, 195, 221, 234, 238, 261, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 39, 40, 41, 42, 43, 44, 45, 50, 51, - 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, 67, 69, 70, 71, 72, - 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 114, 115, 121, - 122, 123, 124, 125, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, 127, 135, 136, 137, 138, 151, - 152, 153, 154, 128, 129, 130, 131, 132, 133, 134, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 156, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 157, 158, 159, 160, 173, 180, 185, 190, 191, 192, 193, 194, 174, 175, 176, 177, 178, - 179, 181, 182, 183, 184, 186, 187, 188, 189, 196, 200, 201, 202, 203, 219, 220, 197, - 198, 199, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 222, 223, 226, 227, 228, 229, 230, 231, 232, 233, 224, 225, 235, 236, 237, 239, 240, - 241, 242, 246, 250, 251, 252, 253, 254, 260, 243, 244, 245, 247, 248, 249, 255, 256, - 257, 258, 259, 262, 263, 264, 265, 266, 270, 274, 275, 276, 277, 278, 284, 267, 268, - 269, 271, 272, 273, 279, 280, 281, 282, 283, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 31 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(31), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(32), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(66), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(75), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(80), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(84), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(90), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(91), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(100), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(108), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(128), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(133), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(142), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(149), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(161), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(173), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(177), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(185), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(191), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(195), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(199), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(206), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(209), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(224), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(234), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(236), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(239), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(250), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(253), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(256), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(261), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(262), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(273), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(276), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(279), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData -}; - - -bool DestructibleActorParam_0p25::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p25::mBuiltFlagMutex; - -DestructibleActorParam_0p25::DestructibleActorParam_0p25(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p25FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p25::~DestructibleActorParam_0p25() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p25::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p25(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p25::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p25::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p25* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p25::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p25::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p25::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p25::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p25::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[31]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(19); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(92); - Children[23] = PDEF_PTR(126); - Children[24] = PDEF_PTR(155); - Children[25] = PDEF_PTR(172); - Children[26] = PDEF_PTR(195); - Children[27] = PDEF_PTR(221); - Children[28] = PDEF_PTR(234); - Children[29] = PDEF_PTR(238); - Children[30] = PDEF_PTR(261); - - ParamDefTable[0].setChildren(Children, 31); - } - - // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(20); - - ParamDefTable[19].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(28); - Children[5] = PDEF_PTR(29); - Children[6] = PDEF_PTR(30); - Children[7] = PDEF_PTR(31); - Children[8] = PDEF_PTR(32); - Children[9] = PDEF_PTR(33); - Children[10] = PDEF_PTR(34); - Children[11] = PDEF_PTR(35); - Children[12] = PDEF_PTR(36); - Children[13] = PDEF_PTR(37); - Children[14] = PDEF_PTR(38); - Children[15] = PDEF_PTR(46); - Children[16] = PDEF_PTR(47); - Children[17] = PDEF_PTR(48); - Children[18] = PDEF_PTR(49); - Children[19] = PDEF_PTR(55); - Children[20] = PDEF_PTR(80); - - ParamDefTable[23].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(39); - Children[1] = PDEF_PTR(40); - Children[2] = PDEF_PTR(41); - Children[3] = PDEF_PTR(42); - Children[4] = PDEF_PTR(43); - Children[5] = PDEF_PTR(44); - Children[6] = PDEF_PTR(45); - - ParamDefTable[38].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(62); - Children[7] = PDEF_PTR(68); - Children[8] = PDEF_PTR(73); - - ParamDefTable[55].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(64); - Children[2] = PDEF_PTR(65); - Children[3] = PDEF_PTR(66); - Children[4] = PDEF_PTR(67); - - ParamDefTable[62].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - Children[3] = PDEF_PTR(72); - - ParamDefTable[68].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(74); - Children[1] = PDEF_PTR(75); - Children[2] = PDEF_PTR(76); - Children[3] = PDEF_PTR(77); - Children[4] = PDEF_PTR(78); - Children[5] = PDEF_PTR(79); - - ParamDefTable[73].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=81, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(82); - - ParamDefTable[81].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=82, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(83); - Children[1] = PDEF_PTR(84); - Children[2] = PDEF_PTR(85); - Children[3] = PDEF_PTR(86); - Children[4] = PDEF_PTR(87); - Children[5] = PDEF_PTR(88); - Children[6] = PDEF_PTR(89); - Children[7] = PDEF_PTR(90); - Children[8] = PDEF_PTR(91); - - ParamDefTable[82].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=92, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(93); - Children[1] = PDEF_PTR(114); - Children[2] = PDEF_PTR(115); - Children[3] = PDEF_PTR(121); - Children[4] = PDEF_PTR(122); - Children[5] = PDEF_PTR(123); - Children[6] = PDEF_PTR(124); - Children[7] = PDEF_PTR(125); - - ParamDefTable[92].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=93, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(94); - Children[1] = PDEF_PTR(95); - Children[2] = PDEF_PTR(96); - Children[3] = PDEF_PTR(97); - Children[4] = PDEF_PTR(98); - Children[5] = PDEF_PTR(99); - Children[6] = PDEF_PTR(100); - Children[7] = PDEF_PTR(101); - Children[8] = PDEF_PTR(102); - Children[9] = PDEF_PTR(103); - Children[10] = PDEF_PTR(104); - Children[11] = PDEF_PTR(105); - Children[12] = PDEF_PTR(106); - Children[13] = PDEF_PTR(107); - Children[14] = PDEF_PTR(108); - Children[15] = PDEF_PTR(109); - Children[16] = PDEF_PTR(110); - Children[17] = PDEF_PTR(111); - Children[18] = PDEF_PTR(112); - Children[19] = PDEF_PTR(113); - - ParamDefTable[93].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=115, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(116); - Children[1] = PDEF_PTR(117); - Children[2] = PDEF_PTR(118); - Children[3] = PDEF_PTR(119); - Children[4] = PDEF_PTR(120); - - ParamDefTable[115].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=126, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(135); - Children[2] = PDEF_PTR(136); - Children[3] = PDEF_PTR(137); - Children[4] = PDEF_PTR(138); - Children[5] = PDEF_PTR(151); - Children[6] = PDEF_PTR(152); - Children[7] = PDEF_PTR(153); - Children[8] = PDEF_PTR(154); - - ParamDefTable[126].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=127, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - Children[4] = PDEF_PTR(132); - Children[5] = PDEF_PTR(133); - Children[6] = PDEF_PTR(134); - - ParamDefTable[127].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(139); - Children[1] = PDEF_PTR(140); - Children[2] = PDEF_PTR(141); - Children[3] = PDEF_PTR(142); - Children[4] = PDEF_PTR(143); - Children[5] = PDEF_PTR(144); - Children[6] = PDEF_PTR(145); - Children[7] = PDEF_PTR(146); - Children[8] = PDEF_PTR(147); - Children[9] = PDEF_PTR(148); - Children[10] = PDEF_PTR(149); - Children[11] = PDEF_PTR(150); - - ParamDefTable[138].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=155, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(156); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - Children[4] = PDEF_PTR(164); - Children[5] = PDEF_PTR(165); - Children[6] = PDEF_PTR(166); - Children[7] = PDEF_PTR(167); - Children[8] = PDEF_PTR(168); - Children[9] = PDEF_PTR(169); - Children[10] = PDEF_PTR(170); - Children[11] = PDEF_PTR(171); - - ParamDefTable[155].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=156, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(157); - Children[1] = PDEF_PTR(158); - Children[2] = PDEF_PTR(159); - Children[3] = PDEF_PTR(160); - - ParamDefTable[156].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(173); - Children[1] = PDEF_PTR(180); - Children[2] = PDEF_PTR(185); - Children[3] = PDEF_PTR(190); - Children[4] = PDEF_PTR(191); - Children[5] = PDEF_PTR(192); - Children[6] = PDEF_PTR(193); - Children[7] = PDEF_PTR(194); - - ParamDefTable[172].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(174); - Children[1] = PDEF_PTR(175); - Children[2] = PDEF_PTR(176); - Children[3] = PDEF_PTR(177); - Children[4] = PDEF_PTR(178); - Children[5] = PDEF_PTR(179); - - ParamDefTable[173].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(181); - Children[1] = PDEF_PTR(182); - Children[2] = PDEF_PTR(183); - Children[3] = PDEF_PTR(184); - - ParamDefTable[180].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(186); - Children[1] = PDEF_PTR(187); - Children[2] = PDEF_PTR(188); - Children[3] = PDEF_PTR(189); - - ParamDefTable[185].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(200); - Children[2] = PDEF_PTR(201); - Children[3] = PDEF_PTR(202); - Children[4] = PDEF_PTR(203); - Children[5] = PDEF_PTR(219); - Children[6] = PDEF_PTR(220); - - ParamDefTable[195].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(197); - Children[1] = PDEF_PTR(198); - Children[2] = PDEF_PTR(199); - - ParamDefTable[196].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(204); - Children[1] = PDEF_PTR(205); - Children[2] = PDEF_PTR(206); - Children[3] = PDEF_PTR(207); - Children[4] = PDEF_PTR(208); - Children[5] = PDEF_PTR(209); - Children[6] = PDEF_PTR(210); - Children[7] = PDEF_PTR(211); - Children[8] = PDEF_PTR(212); - Children[9] = PDEF_PTR(213); - Children[10] = PDEF_PTR(214); - Children[11] = PDEF_PTR(215); - Children[12] = PDEF_PTR(216); - Children[13] = PDEF_PTR(217); - Children[14] = PDEF_PTR(218); - - ParamDefTable[203].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=221, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(222); - Children[1] = PDEF_PTR(223); - Children[2] = PDEF_PTR(226); - Children[3] = PDEF_PTR(227); - Children[4] = PDEF_PTR(228); - Children[5] = PDEF_PTR(229); - Children[6] = PDEF_PTR(230); - Children[7] = PDEF_PTR(231); - Children[8] = PDEF_PTR(232); - Children[9] = PDEF_PTR(233); - - ParamDefTable[221].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(224); - Children[1] = PDEF_PTR(225); - - ParamDefTable[223].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=234, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(235); - Children[1] = PDEF_PTR(236); - Children[2] = PDEF_PTR(237); - - ParamDefTable[234].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=238, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - Children[3] = PDEF_PTR(242); - Children[4] = PDEF_PTR(246); - Children[5] = PDEF_PTR(250); - Children[6] = PDEF_PTR(251); - Children[7] = PDEF_PTR(252); - Children[8] = PDEF_PTR(253); - Children[9] = PDEF_PTR(254); - Children[10] = PDEF_PTR(260); - - ParamDefTable[238].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(243); - Children[1] = PDEF_PTR(244); - Children[2] = PDEF_PTR(245); - - ParamDefTable[242].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(247); - Children[1] = PDEF_PTR(248); - Children[2] = PDEF_PTR(249); - - ParamDefTable[246].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=254, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(255); - Children[1] = PDEF_PTR(256); - Children[2] = PDEF_PTR(257); - Children[3] = PDEF_PTR(258); - Children[4] = PDEF_PTR(259); - - ParamDefTable[254].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=261, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(262); - - ParamDefTable[261].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=262, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(263); - Children[1] = PDEF_PTR(264); - Children[2] = PDEF_PTR(265); - Children[3] = PDEF_PTR(266); - Children[4] = PDEF_PTR(270); - Children[5] = PDEF_PTR(274); - Children[6] = PDEF_PTR(275); - Children[7] = PDEF_PTR(276); - Children[8] = PDEF_PTR(277); - Children[9] = PDEF_PTR(278); - Children[10] = PDEF_PTR(284); - - ParamDefTable[262].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=266, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(267); - Children[1] = PDEF_PTR(268); - Children[2] = PDEF_PTR(269); - - ParamDefTable[266].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=270, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(271); - Children[1] = PDEF_PTR(272); - Children[2] = PDEF_PTR(273); - - ParamDefTable[270].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=278, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(279); - Children[1] = PDEF_PTR(280); - Children[2] = PDEF_PTR(281); - Children[3] = PDEF_PTR(282); - Children[4] = PDEF_PTR(283); - - ParamDefTable[278].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p25::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p25::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p25::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p25::initReferences(void) -{ -} - -void DestructibleActorParam_0p25::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p25::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p25::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p25.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p25NS; + +const char* const DestructibleActorParam_0p25Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 285; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 81, 92, + 126, 155, 172, 195, 221, 234, 238, 261, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 39, 40, 41, 42, 43, 44, 45, 50, 51, + 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, 67, 69, 70, 71, 72, + 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 114, 115, 121, + 122, 123, 124, 125, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, 127, 135, 136, 137, 138, 151, + 152, 153, 154, 128, 129, 130, 131, 132, 133, 134, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 156, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 157, 158, 159, 160, 173, 180, 185, 190, 191, 192, 193, 194, 174, 175, 176, 177, 178, + 179, 181, 182, 183, 184, 186, 187, 188, 189, 196, 200, 201, 202, 203, 219, 220, 197, + 198, 199, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 222, 223, 226, 227, 228, 229, 230, 231, 232, 233, 224, 225, 235, 236, 237, 239, 240, + 241, 242, 246, 250, 251, 252, 253, 254, 260, 243, 244, 245, 247, 248, 249, 255, 256, + 257, 258, 259, 262, 263, 264, 265, 266, 270, 274, 275, 276, 277, 278, 284, 267, 268, + 269, 271, 272, 273, 279, 280, 281, 282, 283, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 31 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(31), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(32), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(66), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(75), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(80), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(84), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(90), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(91), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(100), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(108), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(128), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(133), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(142), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(149), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(161), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(173), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(177), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(185), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(191), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(195), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(199), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(206), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(209), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(224), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(234), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(236), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(239), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(250), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(253), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(256), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(261), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(262), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(273), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(276), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(279), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData +}; + + +bool DestructibleActorParam_0p25::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p25::mBuiltFlagMutex; + +DestructibleActorParam_0p25::DestructibleActorParam_0p25(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p25FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p25::~DestructibleActorParam_0p25() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p25::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p25(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p25::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p25::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p25* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p25::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p25::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p25::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p25::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p25::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[31]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(19); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(92); + Children[23] = PDEF_PTR(126); + Children[24] = PDEF_PTR(155); + Children[25] = PDEF_PTR(172); + Children[26] = PDEF_PTR(195); + Children[27] = PDEF_PTR(221); + Children[28] = PDEF_PTR(234); + Children[29] = PDEF_PTR(238); + Children[30] = PDEF_PTR(261); + + ParamDefTable[0].setChildren(Children, 31); + } + + // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(20); + + ParamDefTable[19].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(28); + Children[5] = PDEF_PTR(29); + Children[6] = PDEF_PTR(30); + Children[7] = PDEF_PTR(31); + Children[8] = PDEF_PTR(32); + Children[9] = PDEF_PTR(33); + Children[10] = PDEF_PTR(34); + Children[11] = PDEF_PTR(35); + Children[12] = PDEF_PTR(36); + Children[13] = PDEF_PTR(37); + Children[14] = PDEF_PTR(38); + Children[15] = PDEF_PTR(46); + Children[16] = PDEF_PTR(47); + Children[17] = PDEF_PTR(48); + Children[18] = PDEF_PTR(49); + Children[19] = PDEF_PTR(55); + Children[20] = PDEF_PTR(80); + + ParamDefTable[23].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(39); + Children[1] = PDEF_PTR(40); + Children[2] = PDEF_PTR(41); + Children[3] = PDEF_PTR(42); + Children[4] = PDEF_PTR(43); + Children[5] = PDEF_PTR(44); + Children[6] = PDEF_PTR(45); + + ParamDefTable[38].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(62); + Children[7] = PDEF_PTR(68); + Children[8] = PDEF_PTR(73); + + ParamDefTable[55].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(64); + Children[2] = PDEF_PTR(65); + Children[3] = PDEF_PTR(66); + Children[4] = PDEF_PTR(67); + + ParamDefTable[62].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + Children[3] = PDEF_PTR(72); + + ParamDefTable[68].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(74); + Children[1] = PDEF_PTR(75); + Children[2] = PDEF_PTR(76); + Children[3] = PDEF_PTR(77); + Children[4] = PDEF_PTR(78); + Children[5] = PDEF_PTR(79); + + ParamDefTable[73].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=81, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(82); + + ParamDefTable[81].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=82, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(83); + Children[1] = PDEF_PTR(84); + Children[2] = PDEF_PTR(85); + Children[3] = PDEF_PTR(86); + Children[4] = PDEF_PTR(87); + Children[5] = PDEF_PTR(88); + Children[6] = PDEF_PTR(89); + Children[7] = PDEF_PTR(90); + Children[8] = PDEF_PTR(91); + + ParamDefTable[82].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=92, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(93); + Children[1] = PDEF_PTR(114); + Children[2] = PDEF_PTR(115); + Children[3] = PDEF_PTR(121); + Children[4] = PDEF_PTR(122); + Children[5] = PDEF_PTR(123); + Children[6] = PDEF_PTR(124); + Children[7] = PDEF_PTR(125); + + ParamDefTable[92].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=93, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(94); + Children[1] = PDEF_PTR(95); + Children[2] = PDEF_PTR(96); + Children[3] = PDEF_PTR(97); + Children[4] = PDEF_PTR(98); + Children[5] = PDEF_PTR(99); + Children[6] = PDEF_PTR(100); + Children[7] = PDEF_PTR(101); + Children[8] = PDEF_PTR(102); + Children[9] = PDEF_PTR(103); + Children[10] = PDEF_PTR(104); + Children[11] = PDEF_PTR(105); + Children[12] = PDEF_PTR(106); + Children[13] = PDEF_PTR(107); + Children[14] = PDEF_PTR(108); + Children[15] = PDEF_PTR(109); + Children[16] = PDEF_PTR(110); + Children[17] = PDEF_PTR(111); + Children[18] = PDEF_PTR(112); + Children[19] = PDEF_PTR(113); + + ParamDefTable[93].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=115, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(116); + Children[1] = PDEF_PTR(117); + Children[2] = PDEF_PTR(118); + Children[3] = PDEF_PTR(119); + Children[4] = PDEF_PTR(120); + + ParamDefTable[115].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=126, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(135); + Children[2] = PDEF_PTR(136); + Children[3] = PDEF_PTR(137); + Children[4] = PDEF_PTR(138); + Children[5] = PDEF_PTR(151); + Children[6] = PDEF_PTR(152); + Children[7] = PDEF_PTR(153); + Children[8] = PDEF_PTR(154); + + ParamDefTable[126].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=127, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + Children[4] = PDEF_PTR(132); + Children[5] = PDEF_PTR(133); + Children[6] = PDEF_PTR(134); + + ParamDefTable[127].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(139); + Children[1] = PDEF_PTR(140); + Children[2] = PDEF_PTR(141); + Children[3] = PDEF_PTR(142); + Children[4] = PDEF_PTR(143); + Children[5] = PDEF_PTR(144); + Children[6] = PDEF_PTR(145); + Children[7] = PDEF_PTR(146); + Children[8] = PDEF_PTR(147); + Children[9] = PDEF_PTR(148); + Children[10] = PDEF_PTR(149); + Children[11] = PDEF_PTR(150); + + ParamDefTable[138].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=155, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(156); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + Children[4] = PDEF_PTR(164); + Children[5] = PDEF_PTR(165); + Children[6] = PDEF_PTR(166); + Children[7] = PDEF_PTR(167); + Children[8] = PDEF_PTR(168); + Children[9] = PDEF_PTR(169); + Children[10] = PDEF_PTR(170); + Children[11] = PDEF_PTR(171); + + ParamDefTable[155].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=156, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(157); + Children[1] = PDEF_PTR(158); + Children[2] = PDEF_PTR(159); + Children[3] = PDEF_PTR(160); + + ParamDefTable[156].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(173); + Children[1] = PDEF_PTR(180); + Children[2] = PDEF_PTR(185); + Children[3] = PDEF_PTR(190); + Children[4] = PDEF_PTR(191); + Children[5] = PDEF_PTR(192); + Children[6] = PDEF_PTR(193); + Children[7] = PDEF_PTR(194); + + ParamDefTable[172].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(174); + Children[1] = PDEF_PTR(175); + Children[2] = PDEF_PTR(176); + Children[3] = PDEF_PTR(177); + Children[4] = PDEF_PTR(178); + Children[5] = PDEF_PTR(179); + + ParamDefTable[173].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(181); + Children[1] = PDEF_PTR(182); + Children[2] = PDEF_PTR(183); + Children[3] = PDEF_PTR(184); + + ParamDefTable[180].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(186); + Children[1] = PDEF_PTR(187); + Children[2] = PDEF_PTR(188); + Children[3] = PDEF_PTR(189); + + ParamDefTable[185].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(200); + Children[2] = PDEF_PTR(201); + Children[3] = PDEF_PTR(202); + Children[4] = PDEF_PTR(203); + Children[5] = PDEF_PTR(219); + Children[6] = PDEF_PTR(220); + + ParamDefTable[195].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(197); + Children[1] = PDEF_PTR(198); + Children[2] = PDEF_PTR(199); + + ParamDefTable[196].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(204); + Children[1] = PDEF_PTR(205); + Children[2] = PDEF_PTR(206); + Children[3] = PDEF_PTR(207); + Children[4] = PDEF_PTR(208); + Children[5] = PDEF_PTR(209); + Children[6] = PDEF_PTR(210); + Children[7] = PDEF_PTR(211); + Children[8] = PDEF_PTR(212); + Children[9] = PDEF_PTR(213); + Children[10] = PDEF_PTR(214); + Children[11] = PDEF_PTR(215); + Children[12] = PDEF_PTR(216); + Children[13] = PDEF_PTR(217); + Children[14] = PDEF_PTR(218); + + ParamDefTable[203].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=221, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(222); + Children[1] = PDEF_PTR(223); + Children[2] = PDEF_PTR(226); + Children[3] = PDEF_PTR(227); + Children[4] = PDEF_PTR(228); + Children[5] = PDEF_PTR(229); + Children[6] = PDEF_PTR(230); + Children[7] = PDEF_PTR(231); + Children[8] = PDEF_PTR(232); + Children[9] = PDEF_PTR(233); + + ParamDefTable[221].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(224); + Children[1] = PDEF_PTR(225); + + ParamDefTable[223].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=234, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(235); + Children[1] = PDEF_PTR(236); + Children[2] = PDEF_PTR(237); + + ParamDefTable[234].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=238, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + Children[3] = PDEF_PTR(242); + Children[4] = PDEF_PTR(246); + Children[5] = PDEF_PTR(250); + Children[6] = PDEF_PTR(251); + Children[7] = PDEF_PTR(252); + Children[8] = PDEF_PTR(253); + Children[9] = PDEF_PTR(254); + Children[10] = PDEF_PTR(260); + + ParamDefTable[238].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(243); + Children[1] = PDEF_PTR(244); + Children[2] = PDEF_PTR(245); + + ParamDefTable[242].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(247); + Children[1] = PDEF_PTR(248); + Children[2] = PDEF_PTR(249); + + ParamDefTable[246].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=254, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(255); + Children[1] = PDEF_PTR(256); + Children[2] = PDEF_PTR(257); + Children[3] = PDEF_PTR(258); + Children[4] = PDEF_PTR(259); + + ParamDefTable[254].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=261, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(262); + + ParamDefTable[261].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=262, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(263); + Children[1] = PDEF_PTR(264); + Children[2] = PDEF_PTR(265); + Children[3] = PDEF_PTR(266); + Children[4] = PDEF_PTR(270); + Children[5] = PDEF_PTR(274); + Children[6] = PDEF_PTR(275); + Children[7] = PDEF_PTR(276); + Children[8] = PDEF_PTR(277); + Children[9] = PDEF_PTR(278); + Children[10] = PDEF_PTR(284); + + ParamDefTable[262].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=266, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(267); + Children[1] = PDEF_PTR(268); + Children[2] = PDEF_PTR(269); + + ParamDefTable[266].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=270, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(271); + Children[1] = PDEF_PTR(272); + Children[2] = PDEF_PTR(273); + + ParamDefTable[270].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=278, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(279); + Children[1] = PDEF_PTR(280); + Children[2] = PDEF_PTR(281); + Children[3] = PDEF_PTR(282); + Children[4] = PDEF_PTR(283); + + ParamDefTable[278].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p25::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p25::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p25::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p25::initReferences(void) +{ +} + +void DestructibleActorParam_0p25::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p25::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p25::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p26.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p26.cpp old mode 100644 new mode 100755 index 82c9969..0f2a61a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p26.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p26.cpp @@ -1,8061 +1,8061 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p26.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p26NS; - -const char* const DestructibleActorParam_0p26Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 287; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 81, 92, - 126, 155, 172, 195, 221, 234, 238, 262, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 39, 40, 41, 42, 43, 44, 45, 50, 51, - 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, 67, 69, 70, 71, 72, - 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 114, 115, 121, - 122, 123, 124, 125, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, 127, 135, 136, 137, 138, 151, - 152, 153, 154, 128, 129, 130, 131, 132, 133, 134, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 156, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 157, 158, 159, 160, 173, 180, 185, 190, 191, 192, 193, 194, 174, 175, 176, 177, 178, - 179, 181, 182, 183, 184, 186, 187, 188, 189, 196, 200, 201, 202, 203, 219, 220, 197, - 198, 199, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 222, 223, 226, 227, 228, 229, 230, 231, 232, 233, 224, 225, 235, 236, 237, 239, 240, - 241, 242, 246, 250, 251, 252, 253, 254, 255, 261, 243, 244, 245, 247, 248, 249, 256, - 257, 258, 259, 260, 263, 264, 265, 266, 267, 271, 275, 276, 277, 278, 279, 280, 286, - 268, 269, 270, 272, 273, 274, 281, 282, 283, 284, 285, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 31 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(31), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(32), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(66), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(75), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(80), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(84), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(90), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(91), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(100), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(108), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(128), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(133), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(142), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(149), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(161), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(173), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(177), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(185), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(191), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(195), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(199), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(206), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(209), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(224), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(234), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(236), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(239), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(251), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(254), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(257), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(262), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(263), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(275), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(278), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(281), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData -}; - - -bool DestructibleActorParam_0p26::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p26::mBuiltFlagMutex; - -DestructibleActorParam_0p26::DestructibleActorParam_0p26(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p26FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p26::~DestructibleActorParam_0p26() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p26::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p26(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p26::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p26::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p26* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p26::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p26::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p26::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p26::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p26::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[31]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(19); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(92); - Children[23] = PDEF_PTR(126); - Children[24] = PDEF_PTR(155); - Children[25] = PDEF_PTR(172); - Children[26] = PDEF_PTR(195); - Children[27] = PDEF_PTR(221); - Children[28] = PDEF_PTR(234); - Children[29] = PDEF_PTR(238); - Children[30] = PDEF_PTR(262); - - ParamDefTable[0].setChildren(Children, 31); - } - - // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(20); - - ParamDefTable[19].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(28); - Children[5] = PDEF_PTR(29); - Children[6] = PDEF_PTR(30); - Children[7] = PDEF_PTR(31); - Children[8] = PDEF_PTR(32); - Children[9] = PDEF_PTR(33); - Children[10] = PDEF_PTR(34); - Children[11] = PDEF_PTR(35); - Children[12] = PDEF_PTR(36); - Children[13] = PDEF_PTR(37); - Children[14] = PDEF_PTR(38); - Children[15] = PDEF_PTR(46); - Children[16] = PDEF_PTR(47); - Children[17] = PDEF_PTR(48); - Children[18] = PDEF_PTR(49); - Children[19] = PDEF_PTR(55); - Children[20] = PDEF_PTR(80); - - ParamDefTable[23].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(39); - Children[1] = PDEF_PTR(40); - Children[2] = PDEF_PTR(41); - Children[3] = PDEF_PTR(42); - Children[4] = PDEF_PTR(43); - Children[5] = PDEF_PTR(44); - Children[6] = PDEF_PTR(45); - - ParamDefTable[38].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(62); - Children[7] = PDEF_PTR(68); - Children[8] = PDEF_PTR(73); - - ParamDefTable[55].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(64); - Children[2] = PDEF_PTR(65); - Children[3] = PDEF_PTR(66); - Children[4] = PDEF_PTR(67); - - ParamDefTable[62].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - Children[3] = PDEF_PTR(72); - - ParamDefTable[68].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(74); - Children[1] = PDEF_PTR(75); - Children[2] = PDEF_PTR(76); - Children[3] = PDEF_PTR(77); - Children[4] = PDEF_PTR(78); - Children[5] = PDEF_PTR(79); - - ParamDefTable[73].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=81, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(82); - - ParamDefTable[81].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=82, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(83); - Children[1] = PDEF_PTR(84); - Children[2] = PDEF_PTR(85); - Children[3] = PDEF_PTR(86); - Children[4] = PDEF_PTR(87); - Children[5] = PDEF_PTR(88); - Children[6] = PDEF_PTR(89); - Children[7] = PDEF_PTR(90); - Children[8] = PDEF_PTR(91); - - ParamDefTable[82].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=92, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(93); - Children[1] = PDEF_PTR(114); - Children[2] = PDEF_PTR(115); - Children[3] = PDEF_PTR(121); - Children[4] = PDEF_PTR(122); - Children[5] = PDEF_PTR(123); - Children[6] = PDEF_PTR(124); - Children[7] = PDEF_PTR(125); - - ParamDefTable[92].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=93, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(94); - Children[1] = PDEF_PTR(95); - Children[2] = PDEF_PTR(96); - Children[3] = PDEF_PTR(97); - Children[4] = PDEF_PTR(98); - Children[5] = PDEF_PTR(99); - Children[6] = PDEF_PTR(100); - Children[7] = PDEF_PTR(101); - Children[8] = PDEF_PTR(102); - Children[9] = PDEF_PTR(103); - Children[10] = PDEF_PTR(104); - Children[11] = PDEF_PTR(105); - Children[12] = PDEF_PTR(106); - Children[13] = PDEF_PTR(107); - Children[14] = PDEF_PTR(108); - Children[15] = PDEF_PTR(109); - Children[16] = PDEF_PTR(110); - Children[17] = PDEF_PTR(111); - Children[18] = PDEF_PTR(112); - Children[19] = PDEF_PTR(113); - - ParamDefTable[93].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=115, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(116); - Children[1] = PDEF_PTR(117); - Children[2] = PDEF_PTR(118); - Children[3] = PDEF_PTR(119); - Children[4] = PDEF_PTR(120); - - ParamDefTable[115].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=126, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(135); - Children[2] = PDEF_PTR(136); - Children[3] = PDEF_PTR(137); - Children[4] = PDEF_PTR(138); - Children[5] = PDEF_PTR(151); - Children[6] = PDEF_PTR(152); - Children[7] = PDEF_PTR(153); - Children[8] = PDEF_PTR(154); - - ParamDefTable[126].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=127, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - Children[4] = PDEF_PTR(132); - Children[5] = PDEF_PTR(133); - Children[6] = PDEF_PTR(134); - - ParamDefTable[127].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(139); - Children[1] = PDEF_PTR(140); - Children[2] = PDEF_PTR(141); - Children[3] = PDEF_PTR(142); - Children[4] = PDEF_PTR(143); - Children[5] = PDEF_PTR(144); - Children[6] = PDEF_PTR(145); - Children[7] = PDEF_PTR(146); - Children[8] = PDEF_PTR(147); - Children[9] = PDEF_PTR(148); - Children[10] = PDEF_PTR(149); - Children[11] = PDEF_PTR(150); - - ParamDefTable[138].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=155, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(156); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - Children[4] = PDEF_PTR(164); - Children[5] = PDEF_PTR(165); - Children[6] = PDEF_PTR(166); - Children[7] = PDEF_PTR(167); - Children[8] = PDEF_PTR(168); - Children[9] = PDEF_PTR(169); - Children[10] = PDEF_PTR(170); - Children[11] = PDEF_PTR(171); - - ParamDefTable[155].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=156, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(157); - Children[1] = PDEF_PTR(158); - Children[2] = PDEF_PTR(159); - Children[3] = PDEF_PTR(160); - - ParamDefTable[156].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(173); - Children[1] = PDEF_PTR(180); - Children[2] = PDEF_PTR(185); - Children[3] = PDEF_PTR(190); - Children[4] = PDEF_PTR(191); - Children[5] = PDEF_PTR(192); - Children[6] = PDEF_PTR(193); - Children[7] = PDEF_PTR(194); - - ParamDefTable[172].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(174); - Children[1] = PDEF_PTR(175); - Children[2] = PDEF_PTR(176); - Children[3] = PDEF_PTR(177); - Children[4] = PDEF_PTR(178); - Children[5] = PDEF_PTR(179); - - ParamDefTable[173].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(181); - Children[1] = PDEF_PTR(182); - Children[2] = PDEF_PTR(183); - Children[3] = PDEF_PTR(184); - - ParamDefTable[180].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(186); - Children[1] = PDEF_PTR(187); - Children[2] = PDEF_PTR(188); - Children[3] = PDEF_PTR(189); - - ParamDefTable[185].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(200); - Children[2] = PDEF_PTR(201); - Children[3] = PDEF_PTR(202); - Children[4] = PDEF_PTR(203); - Children[5] = PDEF_PTR(219); - Children[6] = PDEF_PTR(220); - - ParamDefTable[195].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(197); - Children[1] = PDEF_PTR(198); - Children[2] = PDEF_PTR(199); - - ParamDefTable[196].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(204); - Children[1] = PDEF_PTR(205); - Children[2] = PDEF_PTR(206); - Children[3] = PDEF_PTR(207); - Children[4] = PDEF_PTR(208); - Children[5] = PDEF_PTR(209); - Children[6] = PDEF_PTR(210); - Children[7] = PDEF_PTR(211); - Children[8] = PDEF_PTR(212); - Children[9] = PDEF_PTR(213); - Children[10] = PDEF_PTR(214); - Children[11] = PDEF_PTR(215); - Children[12] = PDEF_PTR(216); - Children[13] = PDEF_PTR(217); - Children[14] = PDEF_PTR(218); - - ParamDefTable[203].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=221, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(222); - Children[1] = PDEF_PTR(223); - Children[2] = PDEF_PTR(226); - Children[3] = PDEF_PTR(227); - Children[4] = PDEF_PTR(228); - Children[5] = PDEF_PTR(229); - Children[6] = PDEF_PTR(230); - Children[7] = PDEF_PTR(231); - Children[8] = PDEF_PTR(232); - Children[9] = PDEF_PTR(233); - - ParamDefTable[221].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(224); - Children[1] = PDEF_PTR(225); - - ParamDefTable[223].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=234, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(235); - Children[1] = PDEF_PTR(236); - Children[2] = PDEF_PTR(237); - - ParamDefTable[234].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=238, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - Children[3] = PDEF_PTR(242); - Children[4] = PDEF_PTR(246); - Children[5] = PDEF_PTR(250); - Children[6] = PDEF_PTR(251); - Children[7] = PDEF_PTR(252); - Children[8] = PDEF_PTR(253); - Children[9] = PDEF_PTR(254); - Children[10] = PDEF_PTR(255); - Children[11] = PDEF_PTR(261); - - ParamDefTable[238].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(243); - Children[1] = PDEF_PTR(244); - Children[2] = PDEF_PTR(245); - - ParamDefTable[242].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(247); - Children[1] = PDEF_PTR(248); - Children[2] = PDEF_PTR(249); - - ParamDefTable[246].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=255, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(256); - Children[1] = PDEF_PTR(257); - Children[2] = PDEF_PTR(258); - Children[3] = PDEF_PTR(259); - Children[4] = PDEF_PTR(260); - - ParamDefTable[255].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=262, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(263); - - ParamDefTable[262].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=263, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(264); - Children[1] = PDEF_PTR(265); - Children[2] = PDEF_PTR(266); - Children[3] = PDEF_PTR(267); - Children[4] = PDEF_PTR(271); - Children[5] = PDEF_PTR(275); - Children[6] = PDEF_PTR(276); - Children[7] = PDEF_PTR(277); - Children[8] = PDEF_PTR(278); - Children[9] = PDEF_PTR(279); - Children[10] = PDEF_PTR(280); - Children[11] = PDEF_PTR(286); - - ParamDefTable[263].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=267, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(268); - Children[1] = PDEF_PTR(269); - Children[2] = PDEF_PTR(270); - - ParamDefTable[267].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(272); - Children[1] = PDEF_PTR(273); - Children[2] = PDEF_PTR(274); - - ParamDefTable[271].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=280, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(281); - Children[1] = PDEF_PTR(282); - Children[2] = PDEF_PTR(283); - Children[3] = PDEF_PTR(284); - Children[4] = PDEF_PTR(285); - - ParamDefTable[280].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p26::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p26::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p26::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p26::initReferences(void) -{ -} - -void DestructibleActorParam_0p26::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p26::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p26::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p26.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p26NS; + +const char* const DestructibleActorParam_0p26Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 287; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 81, 92, + 126, 155, 172, 195, 221, 234, 238, 262, 18, 20, 24, 25, 26, 27, 28, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 39, 40, 41, 42, 43, 44, 45, 50, 51, + 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, 67, 69, 70, 71, 72, + 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 114, 115, 121, + 122, 123, 124, 125, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, 127, 135, 136, 137, 138, 151, + 152, 153, 154, 128, 129, 130, 131, 132, 133, 134, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 156, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 157, 158, 159, 160, 173, 180, 185, 190, 191, 192, 193, 194, 174, 175, 176, 177, 178, + 179, 181, 182, 183, 184, 186, 187, 188, 189, 196, 200, 201, 202, 203, 219, 220, 197, + 198, 199, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 222, 223, 226, 227, 228, 229, 230, 231, 232, 233, 224, 225, 235, 236, 237, 239, 240, + 241, 242, 246, 250, 251, 252, 253, 254, 255, 261, 243, 244, 245, 247, 248, 249, 256, + 257, 258, 259, 260, 263, 264, 265, 266, 267, 271, 275, 276, 277, 278, 279, 280, 286, + 268, 269, 270, 272, 273, 274, 281, 282, 283, 284, 285, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 31 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(31), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(32), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(66), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(75), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(80), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(84), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(90), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(91), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(100), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(108), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(128), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(133), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(142), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(149), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(161), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(173), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(177), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(185), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(191), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(195), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(199), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(206), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(209), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(224), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(234), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(236), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(239), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(251), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(254), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(257), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(262), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(263), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(275), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(278), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(281), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData +}; + + +bool DestructibleActorParam_0p26::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p26::mBuiltFlagMutex; + +DestructibleActorParam_0p26::DestructibleActorParam_0p26(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p26FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p26::~DestructibleActorParam_0p26() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p26::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p26(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p26::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p26::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p26* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p26::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p26::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p26::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p26::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p26::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[31]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(19); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(92); + Children[23] = PDEF_PTR(126); + Children[24] = PDEF_PTR(155); + Children[25] = PDEF_PTR(172); + Children[26] = PDEF_PTR(195); + Children[27] = PDEF_PTR(221); + Children[28] = PDEF_PTR(234); + Children[29] = PDEF_PTR(238); + Children[30] = PDEF_PTR(262); + + ParamDefTable[0].setChildren(Children, 31); + } + + // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(20); + + ParamDefTable[19].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(28); + Children[5] = PDEF_PTR(29); + Children[6] = PDEF_PTR(30); + Children[7] = PDEF_PTR(31); + Children[8] = PDEF_PTR(32); + Children[9] = PDEF_PTR(33); + Children[10] = PDEF_PTR(34); + Children[11] = PDEF_PTR(35); + Children[12] = PDEF_PTR(36); + Children[13] = PDEF_PTR(37); + Children[14] = PDEF_PTR(38); + Children[15] = PDEF_PTR(46); + Children[16] = PDEF_PTR(47); + Children[17] = PDEF_PTR(48); + Children[18] = PDEF_PTR(49); + Children[19] = PDEF_PTR(55); + Children[20] = PDEF_PTR(80); + + ParamDefTable[23].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(39); + Children[1] = PDEF_PTR(40); + Children[2] = PDEF_PTR(41); + Children[3] = PDEF_PTR(42); + Children[4] = PDEF_PTR(43); + Children[5] = PDEF_PTR(44); + Children[6] = PDEF_PTR(45); + + ParamDefTable[38].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(62); + Children[7] = PDEF_PTR(68); + Children[8] = PDEF_PTR(73); + + ParamDefTable[55].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(64); + Children[2] = PDEF_PTR(65); + Children[3] = PDEF_PTR(66); + Children[4] = PDEF_PTR(67); + + ParamDefTable[62].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + Children[3] = PDEF_PTR(72); + + ParamDefTable[68].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(74); + Children[1] = PDEF_PTR(75); + Children[2] = PDEF_PTR(76); + Children[3] = PDEF_PTR(77); + Children[4] = PDEF_PTR(78); + Children[5] = PDEF_PTR(79); + + ParamDefTable[73].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=81, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(82); + + ParamDefTable[81].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=82, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(83); + Children[1] = PDEF_PTR(84); + Children[2] = PDEF_PTR(85); + Children[3] = PDEF_PTR(86); + Children[4] = PDEF_PTR(87); + Children[5] = PDEF_PTR(88); + Children[6] = PDEF_PTR(89); + Children[7] = PDEF_PTR(90); + Children[8] = PDEF_PTR(91); + + ParamDefTable[82].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=92, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(93); + Children[1] = PDEF_PTR(114); + Children[2] = PDEF_PTR(115); + Children[3] = PDEF_PTR(121); + Children[4] = PDEF_PTR(122); + Children[5] = PDEF_PTR(123); + Children[6] = PDEF_PTR(124); + Children[7] = PDEF_PTR(125); + + ParamDefTable[92].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=93, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(94); + Children[1] = PDEF_PTR(95); + Children[2] = PDEF_PTR(96); + Children[3] = PDEF_PTR(97); + Children[4] = PDEF_PTR(98); + Children[5] = PDEF_PTR(99); + Children[6] = PDEF_PTR(100); + Children[7] = PDEF_PTR(101); + Children[8] = PDEF_PTR(102); + Children[9] = PDEF_PTR(103); + Children[10] = PDEF_PTR(104); + Children[11] = PDEF_PTR(105); + Children[12] = PDEF_PTR(106); + Children[13] = PDEF_PTR(107); + Children[14] = PDEF_PTR(108); + Children[15] = PDEF_PTR(109); + Children[16] = PDEF_PTR(110); + Children[17] = PDEF_PTR(111); + Children[18] = PDEF_PTR(112); + Children[19] = PDEF_PTR(113); + + ParamDefTable[93].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=115, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(116); + Children[1] = PDEF_PTR(117); + Children[2] = PDEF_PTR(118); + Children[3] = PDEF_PTR(119); + Children[4] = PDEF_PTR(120); + + ParamDefTable[115].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=126, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(135); + Children[2] = PDEF_PTR(136); + Children[3] = PDEF_PTR(137); + Children[4] = PDEF_PTR(138); + Children[5] = PDEF_PTR(151); + Children[6] = PDEF_PTR(152); + Children[7] = PDEF_PTR(153); + Children[8] = PDEF_PTR(154); + + ParamDefTable[126].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=127, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + Children[4] = PDEF_PTR(132); + Children[5] = PDEF_PTR(133); + Children[6] = PDEF_PTR(134); + + ParamDefTable[127].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(139); + Children[1] = PDEF_PTR(140); + Children[2] = PDEF_PTR(141); + Children[3] = PDEF_PTR(142); + Children[4] = PDEF_PTR(143); + Children[5] = PDEF_PTR(144); + Children[6] = PDEF_PTR(145); + Children[7] = PDEF_PTR(146); + Children[8] = PDEF_PTR(147); + Children[9] = PDEF_PTR(148); + Children[10] = PDEF_PTR(149); + Children[11] = PDEF_PTR(150); + + ParamDefTable[138].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=155, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(156); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + Children[4] = PDEF_PTR(164); + Children[5] = PDEF_PTR(165); + Children[6] = PDEF_PTR(166); + Children[7] = PDEF_PTR(167); + Children[8] = PDEF_PTR(168); + Children[9] = PDEF_PTR(169); + Children[10] = PDEF_PTR(170); + Children[11] = PDEF_PTR(171); + + ParamDefTable[155].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=156, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(157); + Children[1] = PDEF_PTR(158); + Children[2] = PDEF_PTR(159); + Children[3] = PDEF_PTR(160); + + ParamDefTable[156].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(173); + Children[1] = PDEF_PTR(180); + Children[2] = PDEF_PTR(185); + Children[3] = PDEF_PTR(190); + Children[4] = PDEF_PTR(191); + Children[5] = PDEF_PTR(192); + Children[6] = PDEF_PTR(193); + Children[7] = PDEF_PTR(194); + + ParamDefTable[172].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(174); + Children[1] = PDEF_PTR(175); + Children[2] = PDEF_PTR(176); + Children[3] = PDEF_PTR(177); + Children[4] = PDEF_PTR(178); + Children[5] = PDEF_PTR(179); + + ParamDefTable[173].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(181); + Children[1] = PDEF_PTR(182); + Children[2] = PDEF_PTR(183); + Children[3] = PDEF_PTR(184); + + ParamDefTable[180].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(186); + Children[1] = PDEF_PTR(187); + Children[2] = PDEF_PTR(188); + Children[3] = PDEF_PTR(189); + + ParamDefTable[185].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(200); + Children[2] = PDEF_PTR(201); + Children[3] = PDEF_PTR(202); + Children[4] = PDEF_PTR(203); + Children[5] = PDEF_PTR(219); + Children[6] = PDEF_PTR(220); + + ParamDefTable[195].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(197); + Children[1] = PDEF_PTR(198); + Children[2] = PDEF_PTR(199); + + ParamDefTable[196].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(204); + Children[1] = PDEF_PTR(205); + Children[2] = PDEF_PTR(206); + Children[3] = PDEF_PTR(207); + Children[4] = PDEF_PTR(208); + Children[5] = PDEF_PTR(209); + Children[6] = PDEF_PTR(210); + Children[7] = PDEF_PTR(211); + Children[8] = PDEF_PTR(212); + Children[9] = PDEF_PTR(213); + Children[10] = PDEF_PTR(214); + Children[11] = PDEF_PTR(215); + Children[12] = PDEF_PTR(216); + Children[13] = PDEF_PTR(217); + Children[14] = PDEF_PTR(218); + + ParamDefTable[203].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=221, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(222); + Children[1] = PDEF_PTR(223); + Children[2] = PDEF_PTR(226); + Children[3] = PDEF_PTR(227); + Children[4] = PDEF_PTR(228); + Children[5] = PDEF_PTR(229); + Children[6] = PDEF_PTR(230); + Children[7] = PDEF_PTR(231); + Children[8] = PDEF_PTR(232); + Children[9] = PDEF_PTR(233); + + ParamDefTable[221].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(224); + Children[1] = PDEF_PTR(225); + + ParamDefTable[223].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=234, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(235); + Children[1] = PDEF_PTR(236); + Children[2] = PDEF_PTR(237); + + ParamDefTable[234].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=238, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + Children[3] = PDEF_PTR(242); + Children[4] = PDEF_PTR(246); + Children[5] = PDEF_PTR(250); + Children[6] = PDEF_PTR(251); + Children[7] = PDEF_PTR(252); + Children[8] = PDEF_PTR(253); + Children[9] = PDEF_PTR(254); + Children[10] = PDEF_PTR(255); + Children[11] = PDEF_PTR(261); + + ParamDefTable[238].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(243); + Children[1] = PDEF_PTR(244); + Children[2] = PDEF_PTR(245); + + ParamDefTable[242].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(247); + Children[1] = PDEF_PTR(248); + Children[2] = PDEF_PTR(249); + + ParamDefTable[246].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=255, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(256); + Children[1] = PDEF_PTR(257); + Children[2] = PDEF_PTR(258); + Children[3] = PDEF_PTR(259); + Children[4] = PDEF_PTR(260); + + ParamDefTable[255].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=262, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(263); + + ParamDefTable[262].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=263, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(264); + Children[1] = PDEF_PTR(265); + Children[2] = PDEF_PTR(266); + Children[3] = PDEF_PTR(267); + Children[4] = PDEF_PTR(271); + Children[5] = PDEF_PTR(275); + Children[6] = PDEF_PTR(276); + Children[7] = PDEF_PTR(277); + Children[8] = PDEF_PTR(278); + Children[9] = PDEF_PTR(279); + Children[10] = PDEF_PTR(280); + Children[11] = PDEF_PTR(286); + + ParamDefTable[263].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=267, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(268); + Children[1] = PDEF_PTR(269); + Children[2] = PDEF_PTR(270); + + ParamDefTable[267].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(272); + Children[1] = PDEF_PTR(273); + Children[2] = PDEF_PTR(274); + + ParamDefTable[271].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=280, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(281); + Children[1] = PDEF_PTR(282); + Children[2] = PDEF_PTR(283); + Children[3] = PDEF_PTR(284); + Children[4] = PDEF_PTR(285); + + ParamDefTable[280].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p26::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p26::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p26::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p26::initReferences(void) +{ +} + +void DestructibleActorParam_0p26::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p26::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p26::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p27.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p27.cpp old mode 100644 new mode 100755 index 109c8ef..2c32e61 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p27.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p27.cpp @@ -1,8139 +1,8139 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p27.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p27NS; - -const char* const DestructibleActorParam_0p27Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 290; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 81, 92, - 126, 155, 172, 195, 221, 235, 239, 263, 288, 289, 18, 20, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 39, 40, 41, 42, 43, 44, - 45, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, 67, 69, - 70, 71, 72, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 114, - 115, 121, 122, 123, 124, 125, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, 127, 135, 136, 137, - 138, 151, 152, 153, 154, 128, 129, 130, 131, 132, 133, 134, 139, 140, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 156, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 157, 158, 159, 160, 173, 180, 185, 190, 191, 192, 193, 194, 174, 175, 176, - 177, 178, 179, 181, 182, 183, 184, 186, 187, 188, 189, 196, 200, 201, 202, 203, 219, - 220, 197, 198, 199, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 222, 223, 226, 227, 228, 229, 230, 231, 232, 233, 234, 224, 225, 236, 237, - 238, 240, 241, 242, 243, 247, 251, 252, 253, 254, 255, 256, 262, 244, 245, 246, 248, - 249, 250, 257, 258, 259, 260, 261, 264, 265, 266, 267, 268, 272, 276, 277, 278, 279, - 280, 281, 287, 269, 270, 271, 273, 274, 275, 282, 283, 284, 285, 286, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 33 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(33), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(34), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(35), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(56), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(63), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(68), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(77), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(82), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(86), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(92), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(93), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(102), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(110), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(130), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(135), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(144), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(151), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(163), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(175), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(179), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(187), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(193), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(197), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(201), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(208), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(211), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(226), 11 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(237), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(239), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(242), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(254), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(260), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(265), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(266), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(278), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(284), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB -}; - - -bool DestructibleActorParam_0p27::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p27::mBuiltFlagMutex; - -DestructibleActorParam_0p27::DestructibleActorParam_0p27(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p27FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p27::~DestructibleActorParam_0p27() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p27::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p27(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p27::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p27::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p27* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p27::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p27::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p27::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p27::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p27::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.velocityIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=288, longName="deleteChunksLeavingUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; - ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); - ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=289, longName="deleteChunksEnteringUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; - ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); - ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[33]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(19); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(92); - Children[23] = PDEF_PTR(126); - Children[24] = PDEF_PTR(155); - Children[25] = PDEF_PTR(172); - Children[26] = PDEF_PTR(195); - Children[27] = PDEF_PTR(221); - Children[28] = PDEF_PTR(235); - Children[29] = PDEF_PTR(239); - Children[30] = PDEF_PTR(263); - Children[31] = PDEF_PTR(288); - Children[32] = PDEF_PTR(289); - - ParamDefTable[0].setChildren(Children, 33); - } - - // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(20); - - ParamDefTable[19].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(28); - Children[5] = PDEF_PTR(29); - Children[6] = PDEF_PTR(30); - Children[7] = PDEF_PTR(31); - Children[8] = PDEF_PTR(32); - Children[9] = PDEF_PTR(33); - Children[10] = PDEF_PTR(34); - Children[11] = PDEF_PTR(35); - Children[12] = PDEF_PTR(36); - Children[13] = PDEF_PTR(37); - Children[14] = PDEF_PTR(38); - Children[15] = PDEF_PTR(46); - Children[16] = PDEF_PTR(47); - Children[17] = PDEF_PTR(48); - Children[18] = PDEF_PTR(49); - Children[19] = PDEF_PTR(55); - Children[20] = PDEF_PTR(80); - - ParamDefTable[23].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(39); - Children[1] = PDEF_PTR(40); - Children[2] = PDEF_PTR(41); - Children[3] = PDEF_PTR(42); - Children[4] = PDEF_PTR(43); - Children[5] = PDEF_PTR(44); - Children[6] = PDEF_PTR(45); - - ParamDefTable[38].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(62); - Children[7] = PDEF_PTR(68); - Children[8] = PDEF_PTR(73); - - ParamDefTable[55].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(64); - Children[2] = PDEF_PTR(65); - Children[3] = PDEF_PTR(66); - Children[4] = PDEF_PTR(67); - - ParamDefTable[62].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - Children[3] = PDEF_PTR(72); - - ParamDefTable[68].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(74); - Children[1] = PDEF_PTR(75); - Children[2] = PDEF_PTR(76); - Children[3] = PDEF_PTR(77); - Children[4] = PDEF_PTR(78); - Children[5] = PDEF_PTR(79); - - ParamDefTable[73].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=81, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(82); - - ParamDefTable[81].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=82, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(83); - Children[1] = PDEF_PTR(84); - Children[2] = PDEF_PTR(85); - Children[3] = PDEF_PTR(86); - Children[4] = PDEF_PTR(87); - Children[5] = PDEF_PTR(88); - Children[6] = PDEF_PTR(89); - Children[7] = PDEF_PTR(90); - Children[8] = PDEF_PTR(91); - - ParamDefTable[82].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=92, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(93); - Children[1] = PDEF_PTR(114); - Children[2] = PDEF_PTR(115); - Children[3] = PDEF_PTR(121); - Children[4] = PDEF_PTR(122); - Children[5] = PDEF_PTR(123); - Children[6] = PDEF_PTR(124); - Children[7] = PDEF_PTR(125); - - ParamDefTable[92].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=93, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(94); - Children[1] = PDEF_PTR(95); - Children[2] = PDEF_PTR(96); - Children[3] = PDEF_PTR(97); - Children[4] = PDEF_PTR(98); - Children[5] = PDEF_PTR(99); - Children[6] = PDEF_PTR(100); - Children[7] = PDEF_PTR(101); - Children[8] = PDEF_PTR(102); - Children[9] = PDEF_PTR(103); - Children[10] = PDEF_PTR(104); - Children[11] = PDEF_PTR(105); - Children[12] = PDEF_PTR(106); - Children[13] = PDEF_PTR(107); - Children[14] = PDEF_PTR(108); - Children[15] = PDEF_PTR(109); - Children[16] = PDEF_PTR(110); - Children[17] = PDEF_PTR(111); - Children[18] = PDEF_PTR(112); - Children[19] = PDEF_PTR(113); - - ParamDefTable[93].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=115, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(116); - Children[1] = PDEF_PTR(117); - Children[2] = PDEF_PTR(118); - Children[3] = PDEF_PTR(119); - Children[4] = PDEF_PTR(120); - - ParamDefTable[115].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=126, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(135); - Children[2] = PDEF_PTR(136); - Children[3] = PDEF_PTR(137); - Children[4] = PDEF_PTR(138); - Children[5] = PDEF_PTR(151); - Children[6] = PDEF_PTR(152); - Children[7] = PDEF_PTR(153); - Children[8] = PDEF_PTR(154); - - ParamDefTable[126].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=127, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(128); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - Children[4] = PDEF_PTR(132); - Children[5] = PDEF_PTR(133); - Children[6] = PDEF_PTR(134); - - ParamDefTable[127].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(139); - Children[1] = PDEF_PTR(140); - Children[2] = PDEF_PTR(141); - Children[3] = PDEF_PTR(142); - Children[4] = PDEF_PTR(143); - Children[5] = PDEF_PTR(144); - Children[6] = PDEF_PTR(145); - Children[7] = PDEF_PTR(146); - Children[8] = PDEF_PTR(147); - Children[9] = PDEF_PTR(148); - Children[10] = PDEF_PTR(149); - Children[11] = PDEF_PTR(150); - - ParamDefTable[138].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=155, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(156); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - Children[4] = PDEF_PTR(164); - Children[5] = PDEF_PTR(165); - Children[6] = PDEF_PTR(166); - Children[7] = PDEF_PTR(167); - Children[8] = PDEF_PTR(168); - Children[9] = PDEF_PTR(169); - Children[10] = PDEF_PTR(170); - Children[11] = PDEF_PTR(171); - - ParamDefTable[155].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=156, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(157); - Children[1] = PDEF_PTR(158); - Children[2] = PDEF_PTR(159); - Children[3] = PDEF_PTR(160); - - ParamDefTable[156].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(173); - Children[1] = PDEF_PTR(180); - Children[2] = PDEF_PTR(185); - Children[3] = PDEF_PTR(190); - Children[4] = PDEF_PTR(191); - Children[5] = PDEF_PTR(192); - Children[6] = PDEF_PTR(193); - Children[7] = PDEF_PTR(194); - - ParamDefTable[172].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(174); - Children[1] = PDEF_PTR(175); - Children[2] = PDEF_PTR(176); - Children[3] = PDEF_PTR(177); - Children[4] = PDEF_PTR(178); - Children[5] = PDEF_PTR(179); - - ParamDefTable[173].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(181); - Children[1] = PDEF_PTR(182); - Children[2] = PDEF_PTR(183); - Children[3] = PDEF_PTR(184); - - ParamDefTable[180].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(186); - Children[1] = PDEF_PTR(187); - Children[2] = PDEF_PTR(188); - Children[3] = PDEF_PTR(189); - - ParamDefTable[185].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(196); - Children[1] = PDEF_PTR(200); - Children[2] = PDEF_PTR(201); - Children[3] = PDEF_PTR(202); - Children[4] = PDEF_PTR(203); - Children[5] = PDEF_PTR(219); - Children[6] = PDEF_PTR(220); - - ParamDefTable[195].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(197); - Children[1] = PDEF_PTR(198); - Children[2] = PDEF_PTR(199); - - ParamDefTable[196].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(204); - Children[1] = PDEF_PTR(205); - Children[2] = PDEF_PTR(206); - Children[3] = PDEF_PTR(207); - Children[4] = PDEF_PTR(208); - Children[5] = PDEF_PTR(209); - Children[6] = PDEF_PTR(210); - Children[7] = PDEF_PTR(211); - Children[8] = PDEF_PTR(212); - Children[9] = PDEF_PTR(213); - Children[10] = PDEF_PTR(214); - Children[11] = PDEF_PTR(215); - Children[12] = PDEF_PTR(216); - Children[13] = PDEF_PTR(217); - Children[14] = PDEF_PTR(218); - - ParamDefTable[203].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=221, longName="p3BodyDescTemplate" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(222); - Children[1] = PDEF_PTR(223); - Children[2] = PDEF_PTR(226); - Children[3] = PDEF_PTR(227); - Children[4] = PDEF_PTR(228); - Children[5] = PDEF_PTR(229); - Children[6] = PDEF_PTR(230); - Children[7] = PDEF_PTR(231); - Children[8] = PDEF_PTR(232); - Children[9] = PDEF_PTR(233); - Children[10] = PDEF_PTR(234); - - ParamDefTable[221].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(224); - Children[1] = PDEF_PTR(225); - - ParamDefTable[223].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=235, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(236); - Children[1] = PDEF_PTR(237); - Children[2] = PDEF_PTR(238); - - ParamDefTable[235].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=239, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(240); - Children[1] = PDEF_PTR(241); - Children[2] = PDEF_PTR(242); - Children[3] = PDEF_PTR(243); - Children[4] = PDEF_PTR(247); - Children[5] = PDEF_PTR(251); - Children[6] = PDEF_PTR(252); - Children[7] = PDEF_PTR(253); - Children[8] = PDEF_PTR(254); - Children[9] = PDEF_PTR(255); - Children[10] = PDEF_PTR(256); - Children[11] = PDEF_PTR(262); - - ParamDefTable[239].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(244); - Children[1] = PDEF_PTR(245); - Children[2] = PDEF_PTR(246); - - ParamDefTable[243].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(248); - Children[1] = PDEF_PTR(249); - Children[2] = PDEF_PTR(250); - - ParamDefTable[247].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(257); - Children[1] = PDEF_PTR(258); - Children[2] = PDEF_PTR(259); - Children[3] = PDEF_PTR(260); - Children[4] = PDEF_PTR(261); - - ParamDefTable[256].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=263, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(264); - - ParamDefTable[263].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=264, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(265); - Children[1] = PDEF_PTR(266); - Children[2] = PDEF_PTR(267); - Children[3] = PDEF_PTR(268); - Children[4] = PDEF_PTR(272); - Children[5] = PDEF_PTR(276); - Children[6] = PDEF_PTR(277); - Children[7] = PDEF_PTR(278); - Children[8] = PDEF_PTR(279); - Children[9] = PDEF_PTR(280); - Children[10] = PDEF_PTR(281); - Children[11] = PDEF_PTR(287); - - ParamDefTable[264].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=268, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(269); - Children[1] = PDEF_PTR(270); - Children[2] = PDEF_PTR(271); - - ParamDefTable[268].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=272, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(273); - Children[1] = PDEF_PTR(274); - Children[2] = PDEF_PTR(275); - - ParamDefTable[272].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=281, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(282); - Children[1] = PDEF_PTR(283); - Children[2] = PDEF_PTR(284); - Children[3] = PDEF_PTR(285); - Children[4] = PDEF_PTR(286); - - ParamDefTable[281].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p27::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p27::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p27::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.velocityIterationCount = uint32_t(1); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - deleteChunksLeavingUserDefinedBB = bool(false); - deleteChunksEnteringUserDefinedBB = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p27::initReferences(void) -{ -} - -void DestructibleActorParam_0p27::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p27::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p27::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p27.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p27NS; + +const char* const DestructibleActorParam_0p27Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 290; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 81, 92, + 126, 155, 172, 195, 221, 235, 239, 263, 288, 289, 18, 20, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 39, 40, 41, 42, 43, 44, + 45, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, 67, 69, + 70, 71, 72, 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 93, 114, + 115, 121, 122, 123, 124, 125, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, 127, 135, 136, 137, + 138, 151, 152, 153, 154, 128, 129, 130, 131, 132, 133, 134, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 156, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 157, 158, 159, 160, 173, 180, 185, 190, 191, 192, 193, 194, 174, 175, 176, + 177, 178, 179, 181, 182, 183, 184, 186, 187, 188, 189, 196, 200, 201, 202, 203, 219, + 220, 197, 198, 199, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 222, 223, 226, 227, 228, 229, 230, 231, 232, 233, 234, 224, 225, 236, 237, + 238, 240, 241, 242, 243, 247, 251, 252, 253, 254, 255, 256, 262, 244, 245, 246, 248, + 249, 250, 257, 258, 259, 260, 261, 264, 265, 266, 267, 268, 272, 276, 277, 278, 279, + 280, 281, 287, 269, 270, 271, 273, 274, 275, 282, 283, 284, 285, 286, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 33 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(33), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(34), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(35), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(56), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(63), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(68), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(77), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(82), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(86), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(92), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(93), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(102), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(110), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(130), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(135), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(144), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(151), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(163), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(175), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(179), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(187), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(193), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(197), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(201), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(208), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(211), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(226), 11 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(237), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(239), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(242), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(254), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(260), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(265), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(266), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(278), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(284), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB +}; + + +bool DestructibleActorParam_0p27::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p27::mBuiltFlagMutex; + +DestructibleActorParam_0p27::DestructibleActorParam_0p27(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p27FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p27::~DestructibleActorParam_0p27() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p27::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p27(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p27::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p27::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p27* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p27::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p27::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p27::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p27::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p27::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.velocityIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=288, longName="deleteChunksLeavingUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; + ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); + ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=289, longName="deleteChunksEnteringUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; + ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); + ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[33]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(19); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(92); + Children[23] = PDEF_PTR(126); + Children[24] = PDEF_PTR(155); + Children[25] = PDEF_PTR(172); + Children[26] = PDEF_PTR(195); + Children[27] = PDEF_PTR(221); + Children[28] = PDEF_PTR(235); + Children[29] = PDEF_PTR(239); + Children[30] = PDEF_PTR(263); + Children[31] = PDEF_PTR(288); + Children[32] = PDEF_PTR(289); + + ParamDefTable[0].setChildren(Children, 33); + } + + // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(20); + + ParamDefTable[19].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(28); + Children[5] = PDEF_PTR(29); + Children[6] = PDEF_PTR(30); + Children[7] = PDEF_PTR(31); + Children[8] = PDEF_PTR(32); + Children[9] = PDEF_PTR(33); + Children[10] = PDEF_PTR(34); + Children[11] = PDEF_PTR(35); + Children[12] = PDEF_PTR(36); + Children[13] = PDEF_PTR(37); + Children[14] = PDEF_PTR(38); + Children[15] = PDEF_PTR(46); + Children[16] = PDEF_PTR(47); + Children[17] = PDEF_PTR(48); + Children[18] = PDEF_PTR(49); + Children[19] = PDEF_PTR(55); + Children[20] = PDEF_PTR(80); + + ParamDefTable[23].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(39); + Children[1] = PDEF_PTR(40); + Children[2] = PDEF_PTR(41); + Children[3] = PDEF_PTR(42); + Children[4] = PDEF_PTR(43); + Children[5] = PDEF_PTR(44); + Children[6] = PDEF_PTR(45); + + ParamDefTable[38].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(62); + Children[7] = PDEF_PTR(68); + Children[8] = PDEF_PTR(73); + + ParamDefTable[55].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(64); + Children[2] = PDEF_PTR(65); + Children[3] = PDEF_PTR(66); + Children[4] = PDEF_PTR(67); + + ParamDefTable[62].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + Children[3] = PDEF_PTR(72); + + ParamDefTable[68].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(74); + Children[1] = PDEF_PTR(75); + Children[2] = PDEF_PTR(76); + Children[3] = PDEF_PTR(77); + Children[4] = PDEF_PTR(78); + Children[5] = PDEF_PTR(79); + + ParamDefTable[73].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=81, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(82); + + ParamDefTable[81].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=82, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(83); + Children[1] = PDEF_PTR(84); + Children[2] = PDEF_PTR(85); + Children[3] = PDEF_PTR(86); + Children[4] = PDEF_PTR(87); + Children[5] = PDEF_PTR(88); + Children[6] = PDEF_PTR(89); + Children[7] = PDEF_PTR(90); + Children[8] = PDEF_PTR(91); + + ParamDefTable[82].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=92, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(93); + Children[1] = PDEF_PTR(114); + Children[2] = PDEF_PTR(115); + Children[3] = PDEF_PTR(121); + Children[4] = PDEF_PTR(122); + Children[5] = PDEF_PTR(123); + Children[6] = PDEF_PTR(124); + Children[7] = PDEF_PTR(125); + + ParamDefTable[92].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=93, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(94); + Children[1] = PDEF_PTR(95); + Children[2] = PDEF_PTR(96); + Children[3] = PDEF_PTR(97); + Children[4] = PDEF_PTR(98); + Children[5] = PDEF_PTR(99); + Children[6] = PDEF_PTR(100); + Children[7] = PDEF_PTR(101); + Children[8] = PDEF_PTR(102); + Children[9] = PDEF_PTR(103); + Children[10] = PDEF_PTR(104); + Children[11] = PDEF_PTR(105); + Children[12] = PDEF_PTR(106); + Children[13] = PDEF_PTR(107); + Children[14] = PDEF_PTR(108); + Children[15] = PDEF_PTR(109); + Children[16] = PDEF_PTR(110); + Children[17] = PDEF_PTR(111); + Children[18] = PDEF_PTR(112); + Children[19] = PDEF_PTR(113); + + ParamDefTable[93].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=115, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(116); + Children[1] = PDEF_PTR(117); + Children[2] = PDEF_PTR(118); + Children[3] = PDEF_PTR(119); + Children[4] = PDEF_PTR(120); + + ParamDefTable[115].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=126, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(135); + Children[2] = PDEF_PTR(136); + Children[3] = PDEF_PTR(137); + Children[4] = PDEF_PTR(138); + Children[5] = PDEF_PTR(151); + Children[6] = PDEF_PTR(152); + Children[7] = PDEF_PTR(153); + Children[8] = PDEF_PTR(154); + + ParamDefTable[126].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=127, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(128); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + Children[4] = PDEF_PTR(132); + Children[5] = PDEF_PTR(133); + Children[6] = PDEF_PTR(134); + + ParamDefTable[127].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=138, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(139); + Children[1] = PDEF_PTR(140); + Children[2] = PDEF_PTR(141); + Children[3] = PDEF_PTR(142); + Children[4] = PDEF_PTR(143); + Children[5] = PDEF_PTR(144); + Children[6] = PDEF_PTR(145); + Children[7] = PDEF_PTR(146); + Children[8] = PDEF_PTR(147); + Children[9] = PDEF_PTR(148); + Children[10] = PDEF_PTR(149); + Children[11] = PDEF_PTR(150); + + ParamDefTable[138].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=155, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(156); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + Children[4] = PDEF_PTR(164); + Children[5] = PDEF_PTR(165); + Children[6] = PDEF_PTR(166); + Children[7] = PDEF_PTR(167); + Children[8] = PDEF_PTR(168); + Children[9] = PDEF_PTR(169); + Children[10] = PDEF_PTR(170); + Children[11] = PDEF_PTR(171); + + ParamDefTable[155].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=156, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(157); + Children[1] = PDEF_PTR(158); + Children[2] = PDEF_PTR(159); + Children[3] = PDEF_PTR(160); + + ParamDefTable[156].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=172, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(173); + Children[1] = PDEF_PTR(180); + Children[2] = PDEF_PTR(185); + Children[3] = PDEF_PTR(190); + Children[4] = PDEF_PTR(191); + Children[5] = PDEF_PTR(192); + Children[6] = PDEF_PTR(193); + Children[7] = PDEF_PTR(194); + + ParamDefTable[172].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=173, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(174); + Children[1] = PDEF_PTR(175); + Children[2] = PDEF_PTR(176); + Children[3] = PDEF_PTR(177); + Children[4] = PDEF_PTR(178); + Children[5] = PDEF_PTR(179); + + ParamDefTable[173].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=180, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(181); + Children[1] = PDEF_PTR(182); + Children[2] = PDEF_PTR(183); + Children[3] = PDEF_PTR(184); + + ParamDefTable[180].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=185, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(186); + Children[1] = PDEF_PTR(187); + Children[2] = PDEF_PTR(188); + Children[3] = PDEF_PTR(189); + + ParamDefTable[185].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=195, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(196); + Children[1] = PDEF_PTR(200); + Children[2] = PDEF_PTR(201); + Children[3] = PDEF_PTR(202); + Children[4] = PDEF_PTR(203); + Children[5] = PDEF_PTR(219); + Children[6] = PDEF_PTR(220); + + ParamDefTable[195].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=196, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(197); + Children[1] = PDEF_PTR(198); + Children[2] = PDEF_PTR(199); + + ParamDefTable[196].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=203, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(204); + Children[1] = PDEF_PTR(205); + Children[2] = PDEF_PTR(206); + Children[3] = PDEF_PTR(207); + Children[4] = PDEF_PTR(208); + Children[5] = PDEF_PTR(209); + Children[6] = PDEF_PTR(210); + Children[7] = PDEF_PTR(211); + Children[8] = PDEF_PTR(212); + Children[9] = PDEF_PTR(213); + Children[10] = PDEF_PTR(214); + Children[11] = PDEF_PTR(215); + Children[12] = PDEF_PTR(216); + Children[13] = PDEF_PTR(217); + Children[14] = PDEF_PTR(218); + + ParamDefTable[203].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=221, longName="p3BodyDescTemplate" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(222); + Children[1] = PDEF_PTR(223); + Children[2] = PDEF_PTR(226); + Children[3] = PDEF_PTR(227); + Children[4] = PDEF_PTR(228); + Children[5] = PDEF_PTR(229); + Children[6] = PDEF_PTR(230); + Children[7] = PDEF_PTR(231); + Children[8] = PDEF_PTR(232); + Children[9] = PDEF_PTR(233); + Children[10] = PDEF_PTR(234); + + ParamDefTable[221].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(224); + Children[1] = PDEF_PTR(225); + + ParamDefTable[223].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=235, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(236); + Children[1] = PDEF_PTR(237); + Children[2] = PDEF_PTR(238); + + ParamDefTable[235].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=239, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(240); + Children[1] = PDEF_PTR(241); + Children[2] = PDEF_PTR(242); + Children[3] = PDEF_PTR(243); + Children[4] = PDEF_PTR(247); + Children[5] = PDEF_PTR(251); + Children[6] = PDEF_PTR(252); + Children[7] = PDEF_PTR(253); + Children[8] = PDEF_PTR(254); + Children[9] = PDEF_PTR(255); + Children[10] = PDEF_PTR(256); + Children[11] = PDEF_PTR(262); + + ParamDefTable[239].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=243, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(244); + Children[1] = PDEF_PTR(245); + Children[2] = PDEF_PTR(246); + + ParamDefTable[243].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(248); + Children[1] = PDEF_PTR(249); + Children[2] = PDEF_PTR(250); + + ParamDefTable[247].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=256, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(257); + Children[1] = PDEF_PTR(258); + Children[2] = PDEF_PTR(259); + Children[3] = PDEF_PTR(260); + Children[4] = PDEF_PTR(261); + + ParamDefTable[256].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=263, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(264); + + ParamDefTable[263].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=264, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(265); + Children[1] = PDEF_PTR(266); + Children[2] = PDEF_PTR(267); + Children[3] = PDEF_PTR(268); + Children[4] = PDEF_PTR(272); + Children[5] = PDEF_PTR(276); + Children[6] = PDEF_PTR(277); + Children[7] = PDEF_PTR(278); + Children[8] = PDEF_PTR(279); + Children[9] = PDEF_PTR(280); + Children[10] = PDEF_PTR(281); + Children[11] = PDEF_PTR(287); + + ParamDefTable[264].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=268, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(269); + Children[1] = PDEF_PTR(270); + Children[2] = PDEF_PTR(271); + + ParamDefTable[268].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=272, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(273); + Children[1] = PDEF_PTR(274); + Children[2] = PDEF_PTR(275); + + ParamDefTable[272].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=281, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(282); + Children[1] = PDEF_PTR(283); + Children[2] = PDEF_PTR(284); + Children[3] = PDEF_PTR(285); + Children[4] = PDEF_PTR(286); + + ParamDefTable[281].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p27::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p27::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p27::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.velocityIterationCount = uint32_t(1); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + deleteChunksLeavingUserDefinedBB = bool(false); + deleteChunksEnteringUserDefinedBB = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p27::initReferences(void) +{ +} + +void DestructibleActorParam_0p27::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p27::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p27::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p28.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p28.cpp old mode 100644 new mode 100755 index 9f6f784..b5d62d4 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p28.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p28.cpp @@ -1,8197 +1,8197 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p28.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p28NS; - -const char* const DestructibleActorParam_0p28Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 292; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 83, 94, - 128, 157, 174, 197, 223, 237, 241, 265, 290, 291, 18, 20, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 81, 82, 39, 40, 41, 42, - 43, 44, 45, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, - 67, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 95, 116, 117, 123, 124, 125, 126, 127, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 118, 119, 120, 121, 122, 129, 137, - 138, 139, 140, 153, 154, 155, 156, 130, 131, 132, 133, 134, 135, 136, 141, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 158, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 159, 160, 161, 162, 175, 182, 187, 192, 193, 194, 195, 196, 176, - 177, 178, 179, 180, 181, 183, 184, 185, 186, 188, 189, 190, 191, 198, 202, 203, 204, - 205, 221, 222, 199, 200, 201, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 224, 225, 228, 229, 230, 231, 232, 233, 234, 235, 236, 226, 227, - 238, 239, 240, 242, 243, 244, 245, 249, 253, 254, 255, 256, 257, 258, 264, 246, 247, - 248, 250, 251, 252, 259, 260, 261, 262, 263, 266, 267, 268, 269, 270, 274, 278, 279, - 280, 281, 282, 283, 289, 271, 272, 273, 275, 276, 277, 284, 285, 286, 287, 288, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 33 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(33), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(34), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(35), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(58), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(65), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(70), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(79), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(84), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(88), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(94), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(95), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(104), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(112), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(132), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(137), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(146), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(153), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(165), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(177), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(181), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(189), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(195), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(199), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(203), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(210), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(213), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(228), 11 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(239), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(241), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(244), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(256), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(259), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(262), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(267), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(268), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(280), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(283), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(286), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB -}; - - -bool DestructibleActorParam_0p28::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p28::mBuiltFlagMutex; - -DestructibleActorParam_0p28::DestructibleActorParam_0p28(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p28FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p28::~DestructibleActorParam_0p28() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p28::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p28(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p28::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p28::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p28* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p28::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p28::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p28::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p28::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p28::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.velocityIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=290, longName="deleteChunksLeavingUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; - ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); - ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksEnteringUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; - ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); - ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[33]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(19); - Children[18] = PDEF_PTR(21); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(83); - Children[22] = PDEF_PTR(94); - Children[23] = PDEF_PTR(128); - Children[24] = PDEF_PTR(157); - Children[25] = PDEF_PTR(174); - Children[26] = PDEF_PTR(197); - Children[27] = PDEF_PTR(223); - Children[28] = PDEF_PTR(237); - Children[29] = PDEF_PTR(241); - Children[30] = PDEF_PTR(265); - Children[31] = PDEF_PTR(290); - Children[32] = PDEF_PTR(291); - - ParamDefTable[0].setChildren(Children, 33); - } - - // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(20); - - ParamDefTable[19].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(28); - Children[5] = PDEF_PTR(29); - Children[6] = PDEF_PTR(30); - Children[7] = PDEF_PTR(31); - Children[8] = PDEF_PTR(32); - Children[9] = PDEF_PTR(33); - Children[10] = PDEF_PTR(34); - Children[11] = PDEF_PTR(35); - Children[12] = PDEF_PTR(36); - Children[13] = PDEF_PTR(37); - Children[14] = PDEF_PTR(38); - Children[15] = PDEF_PTR(46); - Children[16] = PDEF_PTR(47); - Children[17] = PDEF_PTR(48); - Children[18] = PDEF_PTR(49); - Children[19] = PDEF_PTR(55); - Children[20] = PDEF_PTR(80); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(82); - - ParamDefTable[23].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(39); - Children[1] = PDEF_PTR(40); - Children[2] = PDEF_PTR(41); - Children[3] = PDEF_PTR(42); - Children[4] = PDEF_PTR(43); - Children[5] = PDEF_PTR(44); - Children[6] = PDEF_PTR(45); - - ParamDefTable[38].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(62); - Children[7] = PDEF_PTR(68); - Children[8] = PDEF_PTR(73); - - ParamDefTable[55].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(64); - Children[2] = PDEF_PTR(65); - Children[3] = PDEF_PTR(66); - Children[4] = PDEF_PTR(67); - - ParamDefTable[62].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - Children[3] = PDEF_PTR(72); - - ParamDefTable[68].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(74); - Children[1] = PDEF_PTR(75); - Children[2] = PDEF_PTR(76); - Children[3] = PDEF_PTR(77); - Children[4] = PDEF_PTR(78); - Children[5] = PDEF_PTR(79); - - ParamDefTable[73].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=83, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(84); - - ParamDefTable[83].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=84, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(85); - Children[1] = PDEF_PTR(86); - Children[2] = PDEF_PTR(87); - Children[3] = PDEF_PTR(88); - Children[4] = PDEF_PTR(89); - Children[5] = PDEF_PTR(90); - Children[6] = PDEF_PTR(91); - Children[7] = PDEF_PTR(92); - Children[8] = PDEF_PTR(93); - - ParamDefTable[84].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=94, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(95); - Children[1] = PDEF_PTR(116); - Children[2] = PDEF_PTR(117); - Children[3] = PDEF_PTR(123); - Children[4] = PDEF_PTR(124); - Children[5] = PDEF_PTR(125); - Children[6] = PDEF_PTR(126); - Children[7] = PDEF_PTR(127); - - ParamDefTable[94].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=95, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(97); - Children[2] = PDEF_PTR(98); - Children[3] = PDEF_PTR(99); - Children[4] = PDEF_PTR(100); - Children[5] = PDEF_PTR(101); - Children[6] = PDEF_PTR(102); - Children[7] = PDEF_PTR(103); - Children[8] = PDEF_PTR(104); - Children[9] = PDEF_PTR(105); - Children[10] = PDEF_PTR(106); - Children[11] = PDEF_PTR(107); - Children[12] = PDEF_PTR(108); - Children[13] = PDEF_PTR(109); - Children[14] = PDEF_PTR(110); - Children[15] = PDEF_PTR(111); - Children[16] = PDEF_PTR(112); - Children[17] = PDEF_PTR(113); - Children[18] = PDEF_PTR(114); - Children[19] = PDEF_PTR(115); - - ParamDefTable[95].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=117, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(118); - Children[1] = PDEF_PTR(119); - Children[2] = PDEF_PTR(120); - Children[3] = PDEF_PTR(121); - Children[4] = PDEF_PTR(122); - - ParamDefTable[117].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=128, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(137); - Children[2] = PDEF_PTR(138); - Children[3] = PDEF_PTR(139); - Children[4] = PDEF_PTR(140); - Children[5] = PDEF_PTR(153); - Children[6] = PDEF_PTR(154); - Children[7] = PDEF_PTR(155); - Children[8] = PDEF_PTR(156); - - ParamDefTable[128].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=129, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(131); - Children[2] = PDEF_PTR(132); - Children[3] = PDEF_PTR(133); - Children[4] = PDEF_PTR(134); - Children[5] = PDEF_PTR(135); - Children[6] = PDEF_PTR(136); - - ParamDefTable[129].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=140, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(141); - Children[1] = PDEF_PTR(142); - Children[2] = PDEF_PTR(143); - Children[3] = PDEF_PTR(144); - Children[4] = PDEF_PTR(145); - Children[5] = PDEF_PTR(146); - Children[6] = PDEF_PTR(147); - Children[7] = PDEF_PTR(148); - Children[8] = PDEF_PTR(149); - Children[9] = PDEF_PTR(150); - Children[10] = PDEF_PTR(151); - Children[11] = PDEF_PTR(152); - - ParamDefTable[140].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=157, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(158); - Children[1] = PDEF_PTR(163); - Children[2] = PDEF_PTR(164); - Children[3] = PDEF_PTR(165); - Children[4] = PDEF_PTR(166); - Children[5] = PDEF_PTR(167); - Children[6] = PDEF_PTR(168); - Children[7] = PDEF_PTR(169); - Children[8] = PDEF_PTR(170); - Children[9] = PDEF_PTR(171); - Children[10] = PDEF_PTR(172); - Children[11] = PDEF_PTR(173); - - ParamDefTable[157].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=158, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(159); - Children[1] = PDEF_PTR(160); - Children[2] = PDEF_PTR(161); - Children[3] = PDEF_PTR(162); - - ParamDefTable[158].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=174, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(175); - Children[1] = PDEF_PTR(182); - Children[2] = PDEF_PTR(187); - Children[3] = PDEF_PTR(192); - Children[4] = PDEF_PTR(193); - Children[5] = PDEF_PTR(194); - Children[6] = PDEF_PTR(195); - Children[7] = PDEF_PTR(196); - - ParamDefTable[174].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(177); - Children[2] = PDEF_PTR(178); - Children[3] = PDEF_PTR(179); - Children[4] = PDEF_PTR(180); - Children[5] = PDEF_PTR(181); - - ParamDefTable[175].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(183); - Children[1] = PDEF_PTR(184); - Children[2] = PDEF_PTR(185); - Children[3] = PDEF_PTR(186); - - ParamDefTable[182].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(188); - Children[1] = PDEF_PTR(189); - Children[2] = PDEF_PTR(190); - Children[3] = PDEF_PTR(191); - - ParamDefTable[187].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=197, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(198); - Children[1] = PDEF_PTR(202); - Children[2] = PDEF_PTR(203); - Children[3] = PDEF_PTR(204); - Children[4] = PDEF_PTR(205); - Children[5] = PDEF_PTR(221); - Children[6] = PDEF_PTR(222); - - ParamDefTable[197].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(199); - Children[1] = PDEF_PTR(200); - Children[2] = PDEF_PTR(201); - - ParamDefTable[198].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(206); - Children[1] = PDEF_PTR(207); - Children[2] = PDEF_PTR(208); - Children[3] = PDEF_PTR(209); - Children[4] = PDEF_PTR(210); - Children[5] = PDEF_PTR(211); - Children[6] = PDEF_PTR(212); - Children[7] = PDEF_PTR(213); - Children[8] = PDEF_PTR(214); - Children[9] = PDEF_PTR(215); - Children[10] = PDEF_PTR(216); - Children[11] = PDEF_PTR(217); - Children[12] = PDEF_PTR(218); - Children[13] = PDEF_PTR(219); - Children[14] = PDEF_PTR(220); - - ParamDefTable[205].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(224); - Children[1] = PDEF_PTR(225); - Children[2] = PDEF_PTR(228); - Children[3] = PDEF_PTR(229); - Children[4] = PDEF_PTR(230); - Children[5] = PDEF_PTR(231); - Children[6] = PDEF_PTR(232); - Children[7] = PDEF_PTR(233); - Children[8] = PDEF_PTR(234); - Children[9] = PDEF_PTR(235); - Children[10] = PDEF_PTR(236); - - ParamDefTable[223].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=225, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(226); - Children[1] = PDEF_PTR(227); - - ParamDefTable[225].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=237, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(238); - Children[1] = PDEF_PTR(239); - Children[2] = PDEF_PTR(240); - - ParamDefTable[237].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=241, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(242); - Children[1] = PDEF_PTR(243); - Children[2] = PDEF_PTR(244); - Children[3] = PDEF_PTR(245); - Children[4] = PDEF_PTR(249); - Children[5] = PDEF_PTR(253); - Children[6] = PDEF_PTR(254); - Children[7] = PDEF_PTR(255); - Children[8] = PDEF_PTR(256); - Children[9] = PDEF_PTR(257); - Children[10] = PDEF_PTR(258); - Children[11] = PDEF_PTR(264); - - ParamDefTable[241].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(246); - Children[1] = PDEF_PTR(247); - Children[2] = PDEF_PTR(248); - - ParamDefTable[245].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(250); - Children[1] = PDEF_PTR(251); - Children[2] = PDEF_PTR(252); - - ParamDefTable[249].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(259); - Children[1] = PDEF_PTR(260); - Children[2] = PDEF_PTR(261); - Children[3] = PDEF_PTR(262); - Children[4] = PDEF_PTR(263); - - ParamDefTable[258].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=265, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(266); - - ParamDefTable[265].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=266, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(267); - Children[1] = PDEF_PTR(268); - Children[2] = PDEF_PTR(269); - Children[3] = PDEF_PTR(270); - Children[4] = PDEF_PTR(274); - Children[5] = PDEF_PTR(278); - Children[6] = PDEF_PTR(279); - Children[7] = PDEF_PTR(280); - Children[8] = PDEF_PTR(281); - Children[9] = PDEF_PTR(282); - Children[10] = PDEF_PTR(283); - Children[11] = PDEF_PTR(289); - - ParamDefTable[266].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=270, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(271); - Children[1] = PDEF_PTR(272); - Children[2] = PDEF_PTR(273); - - ParamDefTable[270].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=274, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(275); - Children[1] = PDEF_PTR(276); - Children[2] = PDEF_PTR(277); - - ParamDefTable[274].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=283, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(284); - Children[1] = PDEF_PTR(285); - Children[2] = PDEF_PTR(286); - Children[3] = PDEF_PTR(287); - Children[4] = PDEF_PTR(288); - - ParamDefTable[283].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p28::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p28::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p28::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.velocityIterationCount = uint32_t(1); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - deleteChunksLeavingUserDefinedBB = bool(false); - deleteChunksEnteringUserDefinedBB = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p28::initReferences(void) -{ -} - -void DestructibleActorParam_0p28::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p28::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p28::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p28.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p28NS; + +const char* const DestructibleActorParam_0p28Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 292; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 19, 21, 22, 23, 83, 94, + 128, 157, 174, 197, 223, 237, 241, 265, 290, 291, 18, 20, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 46, 47, 48, 49, 55, 80, 81, 82, 39, 40, 41, 42, + 43, 44, 45, 50, 51, 52, 53, 54, 56, 57, 58, 59, 60, 61, 62, 68, 73, 63, 64, 65, 66, + 67, 69, 70, 71, 72, 74, 75, 76, 77, 78, 79, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 95, 116, 117, 123, 124, 125, 126, 127, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 118, 119, 120, 121, 122, 129, 137, + 138, 139, 140, 153, 154, 155, 156, 130, 131, 132, 133, 134, 135, 136, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 158, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 159, 160, 161, 162, 175, 182, 187, 192, 193, 194, 195, 196, 176, + 177, 178, 179, 180, 181, 183, 184, 185, 186, 188, 189, 190, 191, 198, 202, 203, 204, + 205, 221, 222, 199, 200, 201, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 224, 225, 228, 229, 230, 231, 232, 233, 234, 235, 236, 226, 227, + 238, 239, 240, 242, 243, 244, 245, 249, 253, 254, 255, 256, 257, 258, 264, 246, 247, + 248, 250, 251, 252, 259, 260, 261, 262, 263, 266, 267, 268, 269, 270, 274, 278, 279, + 280, 281, 282, 283, 289, 271, 272, 273, 275, 276, 277, 284, 285, 286, 287, 288, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 33 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(33), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(34), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(35), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(58), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(65), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(70), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(79), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(84), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(88), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(94), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(95), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(104), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(112), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(132), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(137), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(146), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(153), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(165), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(177), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(181), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(189), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(195), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(199), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(203), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(210), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(213), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(228), 11 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(239), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(241), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(244), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(256), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(259), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(262), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(267), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(268), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(280), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(283), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(286), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB +}; + + +bool DestructibleActorParam_0p28::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p28::mBuiltFlagMutex; + +DestructibleActorParam_0p28::DestructibleActorParam_0p28(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p28FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p28::~DestructibleActorParam_0p28() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p28::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p28(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p28::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p28::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p28* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p28::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p28::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p28::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p28::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p28::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[56].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.velocityIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=290, longName="deleteChunksLeavingUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; + ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); + ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksEnteringUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; + ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); + ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[33]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(19); + Children[18] = PDEF_PTR(21); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(83); + Children[22] = PDEF_PTR(94); + Children[23] = PDEF_PTR(128); + Children[24] = PDEF_PTR(157); + Children[25] = PDEF_PTR(174); + Children[26] = PDEF_PTR(197); + Children[27] = PDEF_PTR(223); + Children[28] = PDEF_PTR(237); + Children[29] = PDEF_PTR(241); + Children[30] = PDEF_PTR(265); + Children[31] = PDEF_PTR(290); + Children[32] = PDEF_PTR(291); + + ParamDefTable[0].setChildren(Children, 33); + } + + // SetChildren for: nodeIndex=17, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(20); + + ParamDefTable[19].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(28); + Children[5] = PDEF_PTR(29); + Children[6] = PDEF_PTR(30); + Children[7] = PDEF_PTR(31); + Children[8] = PDEF_PTR(32); + Children[9] = PDEF_PTR(33); + Children[10] = PDEF_PTR(34); + Children[11] = PDEF_PTR(35); + Children[12] = PDEF_PTR(36); + Children[13] = PDEF_PTR(37); + Children[14] = PDEF_PTR(38); + Children[15] = PDEF_PTR(46); + Children[16] = PDEF_PTR(47); + Children[17] = PDEF_PTR(48); + Children[18] = PDEF_PTR(49); + Children[19] = PDEF_PTR(55); + Children[20] = PDEF_PTR(80); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(82); + + ParamDefTable[23].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=38, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(39); + Children[1] = PDEF_PTR(40); + Children[2] = PDEF_PTR(41); + Children[3] = PDEF_PTR(42); + Children[4] = PDEF_PTR(43); + Children[5] = PDEF_PTR(44); + Children[6] = PDEF_PTR(45); + + ParamDefTable[38].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(62); + Children[7] = PDEF_PTR(68); + Children[8] = PDEF_PTR(73); + + ParamDefTable[55].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=62, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(64); + Children[2] = PDEF_PTR(65); + Children[3] = PDEF_PTR(66); + Children[4] = PDEF_PTR(67); + + ParamDefTable[62].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=68, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + Children[3] = PDEF_PTR(72); + + ParamDefTable[68].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=73, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(74); + Children[1] = PDEF_PTR(75); + Children[2] = PDEF_PTR(76); + Children[3] = PDEF_PTR(77); + Children[4] = PDEF_PTR(78); + Children[5] = PDEF_PTR(79); + + ParamDefTable[73].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=83, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(84); + + ParamDefTable[83].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=84, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(85); + Children[1] = PDEF_PTR(86); + Children[2] = PDEF_PTR(87); + Children[3] = PDEF_PTR(88); + Children[4] = PDEF_PTR(89); + Children[5] = PDEF_PTR(90); + Children[6] = PDEF_PTR(91); + Children[7] = PDEF_PTR(92); + Children[8] = PDEF_PTR(93); + + ParamDefTable[84].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=94, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(95); + Children[1] = PDEF_PTR(116); + Children[2] = PDEF_PTR(117); + Children[3] = PDEF_PTR(123); + Children[4] = PDEF_PTR(124); + Children[5] = PDEF_PTR(125); + Children[6] = PDEF_PTR(126); + Children[7] = PDEF_PTR(127); + + ParamDefTable[94].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=95, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(97); + Children[2] = PDEF_PTR(98); + Children[3] = PDEF_PTR(99); + Children[4] = PDEF_PTR(100); + Children[5] = PDEF_PTR(101); + Children[6] = PDEF_PTR(102); + Children[7] = PDEF_PTR(103); + Children[8] = PDEF_PTR(104); + Children[9] = PDEF_PTR(105); + Children[10] = PDEF_PTR(106); + Children[11] = PDEF_PTR(107); + Children[12] = PDEF_PTR(108); + Children[13] = PDEF_PTR(109); + Children[14] = PDEF_PTR(110); + Children[15] = PDEF_PTR(111); + Children[16] = PDEF_PTR(112); + Children[17] = PDEF_PTR(113); + Children[18] = PDEF_PTR(114); + Children[19] = PDEF_PTR(115); + + ParamDefTable[95].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=117, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(118); + Children[1] = PDEF_PTR(119); + Children[2] = PDEF_PTR(120); + Children[3] = PDEF_PTR(121); + Children[4] = PDEF_PTR(122); + + ParamDefTable[117].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=128, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(137); + Children[2] = PDEF_PTR(138); + Children[3] = PDEF_PTR(139); + Children[4] = PDEF_PTR(140); + Children[5] = PDEF_PTR(153); + Children[6] = PDEF_PTR(154); + Children[7] = PDEF_PTR(155); + Children[8] = PDEF_PTR(156); + + ParamDefTable[128].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=129, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(131); + Children[2] = PDEF_PTR(132); + Children[3] = PDEF_PTR(133); + Children[4] = PDEF_PTR(134); + Children[5] = PDEF_PTR(135); + Children[6] = PDEF_PTR(136); + + ParamDefTable[129].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=140, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(141); + Children[1] = PDEF_PTR(142); + Children[2] = PDEF_PTR(143); + Children[3] = PDEF_PTR(144); + Children[4] = PDEF_PTR(145); + Children[5] = PDEF_PTR(146); + Children[6] = PDEF_PTR(147); + Children[7] = PDEF_PTR(148); + Children[8] = PDEF_PTR(149); + Children[9] = PDEF_PTR(150); + Children[10] = PDEF_PTR(151); + Children[11] = PDEF_PTR(152); + + ParamDefTable[140].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=157, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(158); + Children[1] = PDEF_PTR(163); + Children[2] = PDEF_PTR(164); + Children[3] = PDEF_PTR(165); + Children[4] = PDEF_PTR(166); + Children[5] = PDEF_PTR(167); + Children[6] = PDEF_PTR(168); + Children[7] = PDEF_PTR(169); + Children[8] = PDEF_PTR(170); + Children[9] = PDEF_PTR(171); + Children[10] = PDEF_PTR(172); + Children[11] = PDEF_PTR(173); + + ParamDefTable[157].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=158, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(159); + Children[1] = PDEF_PTR(160); + Children[2] = PDEF_PTR(161); + Children[3] = PDEF_PTR(162); + + ParamDefTable[158].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=174, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(175); + Children[1] = PDEF_PTR(182); + Children[2] = PDEF_PTR(187); + Children[3] = PDEF_PTR(192); + Children[4] = PDEF_PTR(193); + Children[5] = PDEF_PTR(194); + Children[6] = PDEF_PTR(195); + Children[7] = PDEF_PTR(196); + + ParamDefTable[174].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(177); + Children[2] = PDEF_PTR(178); + Children[3] = PDEF_PTR(179); + Children[4] = PDEF_PTR(180); + Children[5] = PDEF_PTR(181); + + ParamDefTable[175].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=182, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(183); + Children[1] = PDEF_PTR(184); + Children[2] = PDEF_PTR(185); + Children[3] = PDEF_PTR(186); + + ParamDefTable[182].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=187, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(188); + Children[1] = PDEF_PTR(189); + Children[2] = PDEF_PTR(190); + Children[3] = PDEF_PTR(191); + + ParamDefTable[187].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=197, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(198); + Children[1] = PDEF_PTR(202); + Children[2] = PDEF_PTR(203); + Children[3] = PDEF_PTR(204); + Children[4] = PDEF_PTR(205); + Children[5] = PDEF_PTR(221); + Children[6] = PDEF_PTR(222); + + ParamDefTable[197].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(199); + Children[1] = PDEF_PTR(200); + Children[2] = PDEF_PTR(201); + + ParamDefTable[198].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=205, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(206); + Children[1] = PDEF_PTR(207); + Children[2] = PDEF_PTR(208); + Children[3] = PDEF_PTR(209); + Children[4] = PDEF_PTR(210); + Children[5] = PDEF_PTR(211); + Children[6] = PDEF_PTR(212); + Children[7] = PDEF_PTR(213); + Children[8] = PDEF_PTR(214); + Children[9] = PDEF_PTR(215); + Children[10] = PDEF_PTR(216); + Children[11] = PDEF_PTR(217); + Children[12] = PDEF_PTR(218); + Children[13] = PDEF_PTR(219); + Children[14] = PDEF_PTR(220); + + ParamDefTable[205].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=223, longName="p3BodyDescTemplate" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(224); + Children[1] = PDEF_PTR(225); + Children[2] = PDEF_PTR(228); + Children[3] = PDEF_PTR(229); + Children[4] = PDEF_PTR(230); + Children[5] = PDEF_PTR(231); + Children[6] = PDEF_PTR(232); + Children[7] = PDEF_PTR(233); + Children[8] = PDEF_PTR(234); + Children[9] = PDEF_PTR(235); + Children[10] = PDEF_PTR(236); + + ParamDefTable[223].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=225, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(226); + Children[1] = PDEF_PTR(227); + + ParamDefTable[225].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=237, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(238); + Children[1] = PDEF_PTR(239); + Children[2] = PDEF_PTR(240); + + ParamDefTable[237].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=241, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(242); + Children[1] = PDEF_PTR(243); + Children[2] = PDEF_PTR(244); + Children[3] = PDEF_PTR(245); + Children[4] = PDEF_PTR(249); + Children[5] = PDEF_PTR(253); + Children[6] = PDEF_PTR(254); + Children[7] = PDEF_PTR(255); + Children[8] = PDEF_PTR(256); + Children[9] = PDEF_PTR(257); + Children[10] = PDEF_PTR(258); + Children[11] = PDEF_PTR(264); + + ParamDefTable[241].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=245, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(246); + Children[1] = PDEF_PTR(247); + Children[2] = PDEF_PTR(248); + + ParamDefTable[245].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=249, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(250); + Children[1] = PDEF_PTR(251); + Children[2] = PDEF_PTR(252); + + ParamDefTable[249].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=258, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(259); + Children[1] = PDEF_PTR(260); + Children[2] = PDEF_PTR(261); + Children[3] = PDEF_PTR(262); + Children[4] = PDEF_PTR(263); + + ParamDefTable[258].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=265, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(266); + + ParamDefTable[265].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=266, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(267); + Children[1] = PDEF_PTR(268); + Children[2] = PDEF_PTR(269); + Children[3] = PDEF_PTR(270); + Children[4] = PDEF_PTR(274); + Children[5] = PDEF_PTR(278); + Children[6] = PDEF_PTR(279); + Children[7] = PDEF_PTR(280); + Children[8] = PDEF_PTR(281); + Children[9] = PDEF_PTR(282); + Children[10] = PDEF_PTR(283); + Children[11] = PDEF_PTR(289); + + ParamDefTable[266].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=270, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(271); + Children[1] = PDEF_PTR(272); + Children[2] = PDEF_PTR(273); + + ParamDefTable[270].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=274, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(275); + Children[1] = PDEF_PTR(276); + Children[2] = PDEF_PTR(277); + + ParamDefTable[274].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=283, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(284); + Children[1] = PDEF_PTR(285); + Children[2] = PDEF_PTR(286); + Children[3] = PDEF_PTR(287); + Children[4] = PDEF_PTR(288); + + ParamDefTable[283].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p28::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p28::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p28::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.velocityIterationCount = uint32_t(1); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + deleteChunksLeavingUserDefinedBB = bool(false); + deleteChunksEnteringUserDefinedBB = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p28::initReferences(void) +{ +} + +void DestructibleActorParam_0p28::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p28::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p28::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p29.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p29.cpp old mode 100644 new mode 100755 index f2f1a7d..45d6a75 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p29.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p29.cpp @@ -1,8223 +1,8223 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p29.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p29NS; - -const char* const DestructibleActorParam_0p29Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 293; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 84, - 95, 129, 158, 175, 198, 224, 238, 242, 266, 291, 292, 19, 21, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 40, 41, 42, - 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, 66, - 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 96, 117, 118, 124, 125, 126, 127, 128, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 119, 120, 121, 122, 123, 130, - 138, 139, 140, 141, 154, 155, 156, 157, 131, 132, 133, 134, 135, 136, 137, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 159, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 160, 161, 162, 163, 176, 183, 188, 193, 194, 195, 196, 197, - 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 199, 203, 204, - 205, 206, 222, 223, 200, 201, 202, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 227, - 228, 239, 240, 241, 243, 244, 245, 246, 250, 254, 255, 256, 257, 258, 259, 265, 247, - 248, 249, 251, 252, 253, 260, 261, 262, 263, 264, 267, 268, 269, 270, 271, 275, 279, - 280, 281, 282, 283, 284, 290, 272, 273, 274, 276, 277, 278, 285, 286, 287, 288, 289, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(59), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(66), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(71), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(80), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(85), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(89), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(95), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(96), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(105), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(113), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(133), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(138), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(147), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(154), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(166), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(178), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(182), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(190), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(196), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(200), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(204), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(211), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(214), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(229), 11 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(240), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(242), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(245), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(260), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(263), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(268), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(269), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(284), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(287), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB -}; - - -bool DestructibleActorParam_0p29::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p29::mBuiltFlagMutex; - -DestructibleActorParam_0p29::DestructibleActorParam_0p29(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p29FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p29::~DestructibleActorParam_0p29() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p29::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p29(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p29::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p29::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p29* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p29::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p29::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p29::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p29::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p29::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); - HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.velocityIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksLeavingUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; - ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); - ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksEnteringUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; - ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); - ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[34]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(18); - Children[18] = PDEF_PTR(20); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(24); - Children[22] = PDEF_PTR(84); - Children[23] = PDEF_PTR(95); - Children[24] = PDEF_PTR(129); - Children[25] = PDEF_PTR(158); - Children[26] = PDEF_PTR(175); - Children[27] = PDEF_PTR(198); - Children[28] = PDEF_PTR(224); - Children[29] = PDEF_PTR(238); - Children[30] = PDEF_PTR(242); - Children[31] = PDEF_PTR(266); - Children[32] = PDEF_PTR(291); - Children[33] = PDEF_PTR(292); - - ParamDefTable[0].setChildren(Children, 34); - } - - // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(19); - - ParamDefTable[18].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(21); - - ParamDefTable[20].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(29); - Children[5] = PDEF_PTR(30); - Children[6] = PDEF_PTR(31); - Children[7] = PDEF_PTR(32); - Children[8] = PDEF_PTR(33); - Children[9] = PDEF_PTR(34); - Children[10] = PDEF_PTR(35); - Children[11] = PDEF_PTR(36); - Children[12] = PDEF_PTR(37); - Children[13] = PDEF_PTR(38); - Children[14] = PDEF_PTR(39); - Children[15] = PDEF_PTR(47); - Children[16] = PDEF_PTR(48); - Children[17] = PDEF_PTR(49); - Children[18] = PDEF_PTR(50); - Children[19] = PDEF_PTR(56); - Children[20] = PDEF_PTR(81); - Children[21] = PDEF_PTR(82); - Children[22] = PDEF_PTR(83); - - ParamDefTable[24].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - Children[6] = PDEF_PTR(46); - - ParamDefTable[39].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - - ParamDefTable[50].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(69); - Children[8] = PDEF_PTR(74); - - ParamDefTable[56].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(65); - Children[2] = PDEF_PTR(66); - Children[3] = PDEF_PTR(67); - Children[4] = PDEF_PTR(68); - - ParamDefTable[63].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(70); - Children[1] = PDEF_PTR(71); - Children[2] = PDEF_PTR(72); - Children[3] = PDEF_PTR(73); - - ParamDefTable[69].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - - ParamDefTable[74].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=84, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(85); - - ParamDefTable[84].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=85, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - Children[5] = PDEF_PTR(91); - Children[6] = PDEF_PTR(92); - Children[7] = PDEF_PTR(93); - Children[8] = PDEF_PTR(94); - - ParamDefTable[85].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=95, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(117); - Children[2] = PDEF_PTR(118); - Children[3] = PDEF_PTR(124); - Children[4] = PDEF_PTR(125); - Children[5] = PDEF_PTR(126); - Children[6] = PDEF_PTR(127); - Children[7] = PDEF_PTR(128); - - ParamDefTable[95].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=96, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(98); - Children[2] = PDEF_PTR(99); - Children[3] = PDEF_PTR(100); - Children[4] = PDEF_PTR(101); - Children[5] = PDEF_PTR(102); - Children[6] = PDEF_PTR(103); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(105); - Children[9] = PDEF_PTR(106); - Children[10] = PDEF_PTR(107); - Children[11] = PDEF_PTR(108); - Children[12] = PDEF_PTR(109); - Children[13] = PDEF_PTR(110); - Children[14] = PDEF_PTR(111); - Children[15] = PDEF_PTR(112); - Children[16] = PDEF_PTR(113); - Children[17] = PDEF_PTR(114); - Children[18] = PDEF_PTR(115); - Children[19] = PDEF_PTR(116); - - ParamDefTable[96].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=118, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(119); - Children[1] = PDEF_PTR(120); - Children[2] = PDEF_PTR(121); - Children[3] = PDEF_PTR(122); - Children[4] = PDEF_PTR(123); - - ParamDefTable[118].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=129, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(138); - Children[2] = PDEF_PTR(139); - Children[3] = PDEF_PTR(140); - Children[4] = PDEF_PTR(141); - Children[5] = PDEF_PTR(154); - Children[6] = PDEF_PTR(155); - Children[7] = PDEF_PTR(156); - Children[8] = PDEF_PTR(157); - - ParamDefTable[129].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=130, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(131); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - - ParamDefTable[130].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(142); - Children[1] = PDEF_PTR(143); - Children[2] = PDEF_PTR(144); - Children[3] = PDEF_PTR(145); - Children[4] = PDEF_PTR(146); - Children[5] = PDEF_PTR(147); - Children[6] = PDEF_PTR(148); - Children[7] = PDEF_PTR(149); - Children[8] = PDEF_PTR(150); - Children[9] = PDEF_PTR(151); - Children[10] = PDEF_PTR(152); - Children[11] = PDEF_PTR(153); - - ParamDefTable[141].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=158, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(159); - Children[1] = PDEF_PTR(164); - Children[2] = PDEF_PTR(165); - Children[3] = PDEF_PTR(166); - Children[4] = PDEF_PTR(167); - Children[5] = PDEF_PTR(168); - Children[6] = PDEF_PTR(169); - Children[7] = PDEF_PTR(170); - Children[8] = PDEF_PTR(171); - Children[9] = PDEF_PTR(172); - Children[10] = PDEF_PTR(173); - Children[11] = PDEF_PTR(174); - - ParamDefTable[158].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=159, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(160); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - - ParamDefTable[159].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(183); - Children[2] = PDEF_PTR(188); - Children[3] = PDEF_PTR(193); - Children[4] = PDEF_PTR(194); - Children[5] = PDEF_PTR(195); - Children[6] = PDEF_PTR(196); - Children[7] = PDEF_PTR(197); - - ParamDefTable[175].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(178); - Children[2] = PDEF_PTR(179); - Children[3] = PDEF_PTR(180); - Children[4] = PDEF_PTR(181); - Children[5] = PDEF_PTR(182); - - ParamDefTable[176].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(184); - Children[1] = PDEF_PTR(185); - Children[2] = PDEF_PTR(186); - Children[3] = PDEF_PTR(187); - - ParamDefTable[183].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(189); - Children[1] = PDEF_PTR(190); - Children[2] = PDEF_PTR(191); - Children[3] = PDEF_PTR(192); - - ParamDefTable[188].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(199); - Children[1] = PDEF_PTR(203); - Children[2] = PDEF_PTR(204); - Children[3] = PDEF_PTR(205); - Children[4] = PDEF_PTR(206); - Children[5] = PDEF_PTR(222); - Children[6] = PDEF_PTR(223); - - ParamDefTable[198].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(200); - Children[1] = PDEF_PTR(201); - Children[2] = PDEF_PTR(202); - - ParamDefTable[199].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(207); - Children[1] = PDEF_PTR(208); - Children[2] = PDEF_PTR(209); - Children[3] = PDEF_PTR(210); - Children[4] = PDEF_PTR(211); - Children[5] = PDEF_PTR(212); - Children[6] = PDEF_PTR(213); - Children[7] = PDEF_PTR(214); - Children[8] = PDEF_PTR(215); - Children[9] = PDEF_PTR(216); - Children[10] = PDEF_PTR(217); - Children[11] = PDEF_PTR(218); - Children[12] = PDEF_PTR(219); - Children[13] = PDEF_PTR(220); - Children[14] = PDEF_PTR(221); - - ParamDefTable[206].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=224, longName="p3BodyDescTemplate" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(225); - Children[1] = PDEF_PTR(226); - Children[2] = PDEF_PTR(229); - Children[3] = PDEF_PTR(230); - Children[4] = PDEF_PTR(231); - Children[5] = PDEF_PTR(232); - Children[6] = PDEF_PTR(233); - Children[7] = PDEF_PTR(234); - Children[8] = PDEF_PTR(235); - Children[9] = PDEF_PTR(236); - Children[10] = PDEF_PTR(237); - - ParamDefTable[224].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=226, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(227); - Children[1] = PDEF_PTR(228); - - ParamDefTable[226].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=238, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - - ParamDefTable[238].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(243); - Children[1] = PDEF_PTR(244); - Children[2] = PDEF_PTR(245); - Children[3] = PDEF_PTR(246); - Children[4] = PDEF_PTR(250); - Children[5] = PDEF_PTR(254); - Children[6] = PDEF_PTR(255); - Children[7] = PDEF_PTR(256); - Children[8] = PDEF_PTR(257); - Children[9] = PDEF_PTR(258); - Children[10] = PDEF_PTR(259); - Children[11] = PDEF_PTR(265); - - ParamDefTable[242].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(247); - Children[1] = PDEF_PTR(248); - Children[2] = PDEF_PTR(249); - - ParamDefTable[246].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(251); - Children[1] = PDEF_PTR(252); - Children[2] = PDEF_PTR(253); - - ParamDefTable[250].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(260); - Children[1] = PDEF_PTR(261); - Children[2] = PDEF_PTR(262); - Children[3] = PDEF_PTR(263); - Children[4] = PDEF_PTR(264); - - ParamDefTable[259].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=266, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(267); - - ParamDefTable[266].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=267, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(268); - Children[1] = PDEF_PTR(269); - Children[2] = PDEF_PTR(270); - Children[3] = PDEF_PTR(271); - Children[4] = PDEF_PTR(275); - Children[5] = PDEF_PTR(279); - Children[6] = PDEF_PTR(280); - Children[7] = PDEF_PTR(281); - Children[8] = PDEF_PTR(282); - Children[9] = PDEF_PTR(283); - Children[10] = PDEF_PTR(284); - Children[11] = PDEF_PTR(290); - - ParamDefTable[267].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(272); - Children[1] = PDEF_PTR(273); - Children[2] = PDEF_PTR(274); - - ParamDefTable[271].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(276); - Children[1] = PDEF_PTR(277); - Children[2] = PDEF_PTR(278); - - ParamDefTable[275].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=284, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(285); - Children[1] = PDEF_PTR(286); - Children[2] = PDEF_PTR(287); - Children[3] = PDEF_PTR(288); - Children[4] = PDEF_PTR(289); - - ParamDefTable[284].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p29::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p29::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p29::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - performDetailedOverlapTestForExtendedStructures = bool(true); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.velocityIterationCount = uint32_t(1); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - deleteChunksLeavingUserDefinedBB = bool(false); - deleteChunksEnteringUserDefinedBB = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p29::initReferences(void) -{ -} - -void DestructibleActorParam_0p29::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p29::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p29::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p29.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p29NS; + +const char* const DestructibleActorParam_0p29Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 293; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 84, + 95, 129, 158, 175, 198, 224, 238, 242, 266, 291, 292, 19, 21, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 40, 41, 42, + 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, 66, + 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 96, 117, 118, 124, 125, 126, 127, 128, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 119, 120, 121, 122, 123, 130, + 138, 139, 140, 141, 154, 155, 156, 157, 131, 132, 133, 134, 135, 136, 137, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 159, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 160, 161, 162, 163, 176, 183, 188, 193, 194, 195, 196, 197, + 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 199, 203, 204, + 205, 206, 222, 223, 200, 201, 202, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 227, + 228, 239, 240, 241, 243, 244, 245, 246, 250, 254, 255, 256, 257, 258, 259, 265, 247, + 248, 249, 251, 252, 253, 260, 261, 262, 263, 264, 267, 268, 269, 270, 271, 275, 279, + 280, 281, 282, 283, 284, 290, 272, 273, 274, 276, 277, 278, 285, 286, 287, 288, 289, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(59), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(66), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(71), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(80), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(85), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(89), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(95), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(96), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(105), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(113), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(133), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(138), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(147), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(154), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(166), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(178), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(182), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(190), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(196), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(200), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(204), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(211), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(214), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCCD_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(229), 11 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(240), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(242), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(245), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(260), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(263), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(268), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(269), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(284), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(287), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB +}; + + +bool DestructibleActorParam_0p29::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p29::mBuiltFlagMutex; + +DestructibleActorParam_0p29::DestructibleActorParam_0p29(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p29FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p29::~DestructibleActorParam_0p29() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p29::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p29(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p29::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p29::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p29* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p29::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p29::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p29::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p29::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p29::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); + HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("eCCD_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eCCD_LINEAR in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.velocityIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksLeavingUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; + ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); + ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksEnteringUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; + ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); + ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[34]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(18); + Children[18] = PDEF_PTR(20); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(24); + Children[22] = PDEF_PTR(84); + Children[23] = PDEF_PTR(95); + Children[24] = PDEF_PTR(129); + Children[25] = PDEF_PTR(158); + Children[26] = PDEF_PTR(175); + Children[27] = PDEF_PTR(198); + Children[28] = PDEF_PTR(224); + Children[29] = PDEF_PTR(238); + Children[30] = PDEF_PTR(242); + Children[31] = PDEF_PTR(266); + Children[32] = PDEF_PTR(291); + Children[33] = PDEF_PTR(292); + + ParamDefTable[0].setChildren(Children, 34); + } + + // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(19); + + ParamDefTable[18].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(21); + + ParamDefTable[20].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(29); + Children[5] = PDEF_PTR(30); + Children[6] = PDEF_PTR(31); + Children[7] = PDEF_PTR(32); + Children[8] = PDEF_PTR(33); + Children[9] = PDEF_PTR(34); + Children[10] = PDEF_PTR(35); + Children[11] = PDEF_PTR(36); + Children[12] = PDEF_PTR(37); + Children[13] = PDEF_PTR(38); + Children[14] = PDEF_PTR(39); + Children[15] = PDEF_PTR(47); + Children[16] = PDEF_PTR(48); + Children[17] = PDEF_PTR(49); + Children[18] = PDEF_PTR(50); + Children[19] = PDEF_PTR(56); + Children[20] = PDEF_PTR(81); + Children[21] = PDEF_PTR(82); + Children[22] = PDEF_PTR(83); + + ParamDefTable[24].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + Children[6] = PDEF_PTR(46); + + ParamDefTable[39].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + + ParamDefTable[50].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(69); + Children[8] = PDEF_PTR(74); + + ParamDefTable[56].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(65); + Children[2] = PDEF_PTR(66); + Children[3] = PDEF_PTR(67); + Children[4] = PDEF_PTR(68); + + ParamDefTable[63].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(70); + Children[1] = PDEF_PTR(71); + Children[2] = PDEF_PTR(72); + Children[3] = PDEF_PTR(73); + + ParamDefTable[69].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + + ParamDefTable[74].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=84, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(85); + + ParamDefTable[84].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=85, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + Children[5] = PDEF_PTR(91); + Children[6] = PDEF_PTR(92); + Children[7] = PDEF_PTR(93); + Children[8] = PDEF_PTR(94); + + ParamDefTable[85].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=95, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(117); + Children[2] = PDEF_PTR(118); + Children[3] = PDEF_PTR(124); + Children[4] = PDEF_PTR(125); + Children[5] = PDEF_PTR(126); + Children[6] = PDEF_PTR(127); + Children[7] = PDEF_PTR(128); + + ParamDefTable[95].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=96, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(98); + Children[2] = PDEF_PTR(99); + Children[3] = PDEF_PTR(100); + Children[4] = PDEF_PTR(101); + Children[5] = PDEF_PTR(102); + Children[6] = PDEF_PTR(103); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(105); + Children[9] = PDEF_PTR(106); + Children[10] = PDEF_PTR(107); + Children[11] = PDEF_PTR(108); + Children[12] = PDEF_PTR(109); + Children[13] = PDEF_PTR(110); + Children[14] = PDEF_PTR(111); + Children[15] = PDEF_PTR(112); + Children[16] = PDEF_PTR(113); + Children[17] = PDEF_PTR(114); + Children[18] = PDEF_PTR(115); + Children[19] = PDEF_PTR(116); + + ParamDefTable[96].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=118, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(119); + Children[1] = PDEF_PTR(120); + Children[2] = PDEF_PTR(121); + Children[3] = PDEF_PTR(122); + Children[4] = PDEF_PTR(123); + + ParamDefTable[118].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=129, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(138); + Children[2] = PDEF_PTR(139); + Children[3] = PDEF_PTR(140); + Children[4] = PDEF_PTR(141); + Children[5] = PDEF_PTR(154); + Children[6] = PDEF_PTR(155); + Children[7] = PDEF_PTR(156); + Children[8] = PDEF_PTR(157); + + ParamDefTable[129].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=130, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(131); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + + ParamDefTable[130].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(142); + Children[1] = PDEF_PTR(143); + Children[2] = PDEF_PTR(144); + Children[3] = PDEF_PTR(145); + Children[4] = PDEF_PTR(146); + Children[5] = PDEF_PTR(147); + Children[6] = PDEF_PTR(148); + Children[7] = PDEF_PTR(149); + Children[8] = PDEF_PTR(150); + Children[9] = PDEF_PTR(151); + Children[10] = PDEF_PTR(152); + Children[11] = PDEF_PTR(153); + + ParamDefTable[141].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=158, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(159); + Children[1] = PDEF_PTR(164); + Children[2] = PDEF_PTR(165); + Children[3] = PDEF_PTR(166); + Children[4] = PDEF_PTR(167); + Children[5] = PDEF_PTR(168); + Children[6] = PDEF_PTR(169); + Children[7] = PDEF_PTR(170); + Children[8] = PDEF_PTR(171); + Children[9] = PDEF_PTR(172); + Children[10] = PDEF_PTR(173); + Children[11] = PDEF_PTR(174); + + ParamDefTable[158].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=159, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(160); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + + ParamDefTable[159].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(183); + Children[2] = PDEF_PTR(188); + Children[3] = PDEF_PTR(193); + Children[4] = PDEF_PTR(194); + Children[5] = PDEF_PTR(195); + Children[6] = PDEF_PTR(196); + Children[7] = PDEF_PTR(197); + + ParamDefTable[175].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(178); + Children[2] = PDEF_PTR(179); + Children[3] = PDEF_PTR(180); + Children[4] = PDEF_PTR(181); + Children[5] = PDEF_PTR(182); + + ParamDefTable[176].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(184); + Children[1] = PDEF_PTR(185); + Children[2] = PDEF_PTR(186); + Children[3] = PDEF_PTR(187); + + ParamDefTable[183].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(189); + Children[1] = PDEF_PTR(190); + Children[2] = PDEF_PTR(191); + Children[3] = PDEF_PTR(192); + + ParamDefTable[188].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(199); + Children[1] = PDEF_PTR(203); + Children[2] = PDEF_PTR(204); + Children[3] = PDEF_PTR(205); + Children[4] = PDEF_PTR(206); + Children[5] = PDEF_PTR(222); + Children[6] = PDEF_PTR(223); + + ParamDefTable[198].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(200); + Children[1] = PDEF_PTR(201); + Children[2] = PDEF_PTR(202); + + ParamDefTable[199].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(207); + Children[1] = PDEF_PTR(208); + Children[2] = PDEF_PTR(209); + Children[3] = PDEF_PTR(210); + Children[4] = PDEF_PTR(211); + Children[5] = PDEF_PTR(212); + Children[6] = PDEF_PTR(213); + Children[7] = PDEF_PTR(214); + Children[8] = PDEF_PTR(215); + Children[9] = PDEF_PTR(216); + Children[10] = PDEF_PTR(217); + Children[11] = PDEF_PTR(218); + Children[12] = PDEF_PTR(219); + Children[13] = PDEF_PTR(220); + Children[14] = PDEF_PTR(221); + + ParamDefTable[206].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=224, longName="p3BodyDescTemplate" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(225); + Children[1] = PDEF_PTR(226); + Children[2] = PDEF_PTR(229); + Children[3] = PDEF_PTR(230); + Children[4] = PDEF_PTR(231); + Children[5] = PDEF_PTR(232); + Children[6] = PDEF_PTR(233); + Children[7] = PDEF_PTR(234); + Children[8] = PDEF_PTR(235); + Children[9] = PDEF_PTR(236); + Children[10] = PDEF_PTR(237); + + ParamDefTable[224].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=226, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(227); + Children[1] = PDEF_PTR(228); + + ParamDefTable[226].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=238, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + + ParamDefTable[238].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(243); + Children[1] = PDEF_PTR(244); + Children[2] = PDEF_PTR(245); + Children[3] = PDEF_PTR(246); + Children[4] = PDEF_PTR(250); + Children[5] = PDEF_PTR(254); + Children[6] = PDEF_PTR(255); + Children[7] = PDEF_PTR(256); + Children[8] = PDEF_PTR(257); + Children[9] = PDEF_PTR(258); + Children[10] = PDEF_PTR(259); + Children[11] = PDEF_PTR(265); + + ParamDefTable[242].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(247); + Children[1] = PDEF_PTR(248); + Children[2] = PDEF_PTR(249); + + ParamDefTable[246].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(251); + Children[1] = PDEF_PTR(252); + Children[2] = PDEF_PTR(253); + + ParamDefTable[250].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(260); + Children[1] = PDEF_PTR(261); + Children[2] = PDEF_PTR(262); + Children[3] = PDEF_PTR(263); + Children[4] = PDEF_PTR(264); + + ParamDefTable[259].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=266, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(267); + + ParamDefTable[266].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=267, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(268); + Children[1] = PDEF_PTR(269); + Children[2] = PDEF_PTR(270); + Children[3] = PDEF_PTR(271); + Children[4] = PDEF_PTR(275); + Children[5] = PDEF_PTR(279); + Children[6] = PDEF_PTR(280); + Children[7] = PDEF_PTR(281); + Children[8] = PDEF_PTR(282); + Children[9] = PDEF_PTR(283); + Children[10] = PDEF_PTR(284); + Children[11] = PDEF_PTR(290); + + ParamDefTable[267].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(272); + Children[1] = PDEF_PTR(273); + Children[2] = PDEF_PTR(274); + + ParamDefTable[271].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(276); + Children[1] = PDEF_PTR(277); + Children[2] = PDEF_PTR(278); + + ParamDefTable[275].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=284, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(285); + Children[1] = PDEF_PTR(286); + Children[2] = PDEF_PTR(287); + Children[3] = PDEF_PTR(288); + Children[4] = PDEF_PTR(289); + + ParamDefTable[284].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p29::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p29::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p29::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + performDetailedOverlapTestForExtendedStructures = bool(true); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCCD_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.velocityIterationCount = uint32_t(1); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + deleteChunksLeavingUserDefinedBB = bool(false); + deleteChunksEnteringUserDefinedBB = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p29::initReferences(void) +{ +} + +void DestructibleActorParam_0p29::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p29::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p29::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p3.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p3.cpp old mode 100644 new mode 100755 index dbb22ee..6ec4a0d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p3.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p3.cpp @@ -1,4049 +1,4049 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p3NS; - -const char* const DestructibleActorParam_0p3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 139; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 49, 59, 93, 122, 13, 15, 17, 18, 19, - 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, - 38, 39, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 81, 82, 88, - 89, 90, 91, 92, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, - 78, 79, 80, 83, 84, 85, 86, 87, 94, 102, 103, 104, 105, 118, 119, 120, 121, 95, 96, - 97, 98, 99, 100, 101, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, - 123, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 124, 125, 126, 127, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 18 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(18), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(19), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(20), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(41), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(47), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(52), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(53), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(61), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(69), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(89), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(94), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(103), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(110), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(122), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(134), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold -}; - - -bool DestructibleActorParam_0p3::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p3::mBuiltFlagMutex; - -DestructibleActorParam_0p3::DestructibleActorParam_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p3::~DestructibleActorParam_0p3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p3::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[18]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(14); - Children[13] = PDEF_PTR(16); - Children[14] = PDEF_PTR(49); - Children[15] = PDEF_PTR(59); - Children[16] = PDEF_PTR(93); - Children[17] = PDEF_PTR(122); - - ParamDefTable[0].setChildren(Children, 18); - } - - // SetChildren for: nodeIndex=12, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(13); - - ParamDefTable[12].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=14, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(17); - Children[1] = PDEF_PTR(18); - Children[2] = PDEF_PTR(19); - Children[3] = PDEF_PTR(20); - Children[4] = PDEF_PTR(21); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(23); - Children[7] = PDEF_PTR(24); - Children[8] = PDEF_PTR(25); - Children[9] = PDEF_PTR(26); - Children[10] = PDEF_PTR(27); - Children[11] = PDEF_PTR(28); - Children[12] = PDEF_PTR(29); - Children[13] = PDEF_PTR(30); - Children[14] = PDEF_PTR(31); - Children[15] = PDEF_PTR(32); - Children[16] = PDEF_PTR(33); - Children[17] = PDEF_PTR(34); - Children[18] = PDEF_PTR(41); - Children[19] = PDEF_PTR(42); - Children[20] = PDEF_PTR(43); - - ParamDefTable[16].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(35); - Children[1] = PDEF_PTR(36); - Children[2] = PDEF_PTR(37); - Children[3] = PDEF_PTR(38); - Children[4] = PDEF_PTR(39); - Children[5] = PDEF_PTR(40); - - ParamDefTable[34].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(44); - Children[1] = PDEF_PTR(45); - Children[2] = PDEF_PTR(46); - Children[3] = PDEF_PTR(47); - Children[4] = PDEF_PTR(48); - - ParamDefTable[43].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=49, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - Children[5] = PDEF_PTR(56); - Children[6] = PDEF_PTR(57); - Children[7] = PDEF_PTR(58); - - ParamDefTable[50].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=59, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(81); - Children[2] = PDEF_PTR(82); - Children[3] = PDEF_PTR(88); - Children[4] = PDEF_PTR(89); - Children[5] = PDEF_PTR(90); - Children[6] = PDEF_PTR(91); - Children[7] = PDEF_PTR(92); - - ParamDefTable[59].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=60, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(61); - Children[1] = PDEF_PTR(62); - Children[2] = PDEF_PTR(63); - Children[3] = PDEF_PTR(64); - Children[4] = PDEF_PTR(65); - Children[5] = PDEF_PTR(66); - Children[6] = PDEF_PTR(67); - Children[7] = PDEF_PTR(68); - Children[8] = PDEF_PTR(69); - Children[9] = PDEF_PTR(70); - Children[10] = PDEF_PTR(71); - Children[11] = PDEF_PTR(72); - Children[12] = PDEF_PTR(73); - Children[13] = PDEF_PTR(74); - Children[14] = PDEF_PTR(75); - Children[15] = PDEF_PTR(76); - Children[16] = PDEF_PTR(77); - Children[17] = PDEF_PTR(78); - Children[18] = PDEF_PTR(79); - Children[19] = PDEF_PTR(80); - - ParamDefTable[60].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=82, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(83); - Children[1] = PDEF_PTR(84); - Children[2] = PDEF_PTR(85); - Children[3] = PDEF_PTR(86); - Children[4] = PDEF_PTR(87); - - ParamDefTable[82].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=93, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(94); - Children[1] = PDEF_PTR(102); - Children[2] = PDEF_PTR(103); - Children[3] = PDEF_PTR(104); - Children[4] = PDEF_PTR(105); - Children[5] = PDEF_PTR(118); - Children[6] = PDEF_PTR(119); - Children[7] = PDEF_PTR(120); - Children[8] = PDEF_PTR(121); - - ParamDefTable[93].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=94, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(95); - Children[1] = PDEF_PTR(96); - Children[2] = PDEF_PTR(97); - Children[3] = PDEF_PTR(98); - Children[4] = PDEF_PTR(99); - Children[5] = PDEF_PTR(100); - Children[6] = PDEF_PTR(101); - - ParamDefTable[94].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(106); - Children[1] = PDEF_PTR(107); - Children[2] = PDEF_PTR(108); - Children[3] = PDEF_PTR(109); - Children[4] = PDEF_PTR(110); - Children[5] = PDEF_PTR(111); - Children[6] = PDEF_PTR(112); - Children[7] = PDEF_PTR(113); - Children[8] = PDEF_PTR(114); - Children[9] = PDEF_PTR(115); - Children[10] = PDEF_PTR(116); - Children[11] = PDEF_PTR(117); - - ParamDefTable[105].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=122, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(123); - Children[1] = PDEF_PTR(128); - Children[2] = PDEF_PTR(129); - Children[3] = PDEF_PTR(130); - Children[4] = PDEF_PTR(131); - Children[5] = PDEF_PTR(132); - Children[6] = PDEF_PTR(133); - Children[7] = PDEF_PTR(134); - Children[8] = PDEF_PTR(135); - Children[9] = PDEF_PTR(136); - Children[10] = PDEF_PTR(137); - Children[11] = PDEF_PTR(138); - - ParamDefTable[122].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=123, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(124); - Children[1] = PDEF_PTR(125); - Children[2] = PDEF_PTR(126); - Children[3] = PDEF_PTR(127); - - ParamDefTable[123].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p3::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p3::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - massScaleExponent = float(0.5); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p3::initReferences(void) -{ -} - -void DestructibleActorParam_0p3::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p3::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p3::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p3NS; + +const char* const DestructibleActorParam_0p3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 139; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 49, 59, 93, 122, 13, 15, 17, 18, 19, + 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, + 38, 39, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 60, 81, 82, 88, + 89, 90, 91, 92, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 83, 84, 85, 86, 87, 94, 102, 103, 104, 105, 118, 119, 120, 121, 95, 96, + 97, 98, 99, 100, 101, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 123, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 124, 125, 126, 127, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 18 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(18), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(19), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(20), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(41), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(47), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(52), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(53), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(61), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(69), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(89), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(94), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(103), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(110), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(122), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(134), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold +}; + + +bool DestructibleActorParam_0p3::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p3::mBuiltFlagMutex; + +DestructibleActorParam_0p3::DestructibleActorParam_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p3::~DestructibleActorParam_0p3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p3::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[18]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(14); + Children[13] = PDEF_PTR(16); + Children[14] = PDEF_PTR(49); + Children[15] = PDEF_PTR(59); + Children[16] = PDEF_PTR(93); + Children[17] = PDEF_PTR(122); + + ParamDefTable[0].setChildren(Children, 18); + } + + // SetChildren for: nodeIndex=12, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(13); + + ParamDefTable[12].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=14, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(17); + Children[1] = PDEF_PTR(18); + Children[2] = PDEF_PTR(19); + Children[3] = PDEF_PTR(20); + Children[4] = PDEF_PTR(21); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(23); + Children[7] = PDEF_PTR(24); + Children[8] = PDEF_PTR(25); + Children[9] = PDEF_PTR(26); + Children[10] = PDEF_PTR(27); + Children[11] = PDEF_PTR(28); + Children[12] = PDEF_PTR(29); + Children[13] = PDEF_PTR(30); + Children[14] = PDEF_PTR(31); + Children[15] = PDEF_PTR(32); + Children[16] = PDEF_PTR(33); + Children[17] = PDEF_PTR(34); + Children[18] = PDEF_PTR(41); + Children[19] = PDEF_PTR(42); + Children[20] = PDEF_PTR(43); + + ParamDefTable[16].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(35); + Children[1] = PDEF_PTR(36); + Children[2] = PDEF_PTR(37); + Children[3] = PDEF_PTR(38); + Children[4] = PDEF_PTR(39); + Children[5] = PDEF_PTR(40); + + ParamDefTable[34].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(44); + Children[1] = PDEF_PTR(45); + Children[2] = PDEF_PTR(46); + Children[3] = PDEF_PTR(47); + Children[4] = PDEF_PTR(48); + + ParamDefTable[43].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=49, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + Children[5] = PDEF_PTR(56); + Children[6] = PDEF_PTR(57); + Children[7] = PDEF_PTR(58); + + ParamDefTable[50].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=59, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(81); + Children[2] = PDEF_PTR(82); + Children[3] = PDEF_PTR(88); + Children[4] = PDEF_PTR(89); + Children[5] = PDEF_PTR(90); + Children[6] = PDEF_PTR(91); + Children[7] = PDEF_PTR(92); + + ParamDefTable[59].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=60, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(61); + Children[1] = PDEF_PTR(62); + Children[2] = PDEF_PTR(63); + Children[3] = PDEF_PTR(64); + Children[4] = PDEF_PTR(65); + Children[5] = PDEF_PTR(66); + Children[6] = PDEF_PTR(67); + Children[7] = PDEF_PTR(68); + Children[8] = PDEF_PTR(69); + Children[9] = PDEF_PTR(70); + Children[10] = PDEF_PTR(71); + Children[11] = PDEF_PTR(72); + Children[12] = PDEF_PTR(73); + Children[13] = PDEF_PTR(74); + Children[14] = PDEF_PTR(75); + Children[15] = PDEF_PTR(76); + Children[16] = PDEF_PTR(77); + Children[17] = PDEF_PTR(78); + Children[18] = PDEF_PTR(79); + Children[19] = PDEF_PTR(80); + + ParamDefTable[60].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=82, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(83); + Children[1] = PDEF_PTR(84); + Children[2] = PDEF_PTR(85); + Children[3] = PDEF_PTR(86); + Children[4] = PDEF_PTR(87); + + ParamDefTable[82].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=93, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(94); + Children[1] = PDEF_PTR(102); + Children[2] = PDEF_PTR(103); + Children[3] = PDEF_PTR(104); + Children[4] = PDEF_PTR(105); + Children[5] = PDEF_PTR(118); + Children[6] = PDEF_PTR(119); + Children[7] = PDEF_PTR(120); + Children[8] = PDEF_PTR(121); + + ParamDefTable[93].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=94, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(95); + Children[1] = PDEF_PTR(96); + Children[2] = PDEF_PTR(97); + Children[3] = PDEF_PTR(98); + Children[4] = PDEF_PTR(99); + Children[5] = PDEF_PTR(100); + Children[6] = PDEF_PTR(101); + + ParamDefTable[94].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(106); + Children[1] = PDEF_PTR(107); + Children[2] = PDEF_PTR(108); + Children[3] = PDEF_PTR(109); + Children[4] = PDEF_PTR(110); + Children[5] = PDEF_PTR(111); + Children[6] = PDEF_PTR(112); + Children[7] = PDEF_PTR(113); + Children[8] = PDEF_PTR(114); + Children[9] = PDEF_PTR(115); + Children[10] = PDEF_PTR(116); + Children[11] = PDEF_PTR(117); + + ParamDefTable[105].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=122, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(123); + Children[1] = PDEF_PTR(128); + Children[2] = PDEF_PTR(129); + Children[3] = PDEF_PTR(130); + Children[4] = PDEF_PTR(131); + Children[5] = PDEF_PTR(132); + Children[6] = PDEF_PTR(133); + Children[7] = PDEF_PTR(134); + Children[8] = PDEF_PTR(135); + Children[9] = PDEF_PTR(136); + Children[10] = PDEF_PTR(137); + Children[11] = PDEF_PTR(138); + + ParamDefTable[122].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=123, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(124); + Children[1] = PDEF_PTR(125); + Children[2] = PDEF_PTR(126); + Children[3] = PDEF_PTR(127); + + ParamDefTable[123].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p3::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p3::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + massScaleExponent = float(0.5); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p3::initReferences(void) +{ +} + +void DestructibleActorParam_0p3::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p3::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p3::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p30.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p30.cpp old mode 100644 new mode 100755 index 90ef0f7..3dd919f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p30.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p30.cpp @@ -1,8223 +1,8223 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p30.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p30NS; - -const char* const DestructibleActorParam_0p30Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 293; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 84, - 95, 129, 158, 175, 198, 224, 238, 242, 266, 291, 292, 19, 21, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 40, 41, 42, - 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, 66, - 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 96, 117, 118, 124, 125, 126, 127, 128, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 119, 120, 121, 122, 123, 130, - 138, 139, 140, 141, 154, 155, 156, 157, 131, 132, 133, 134, 135, 136, 137, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 159, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 160, 161, 162, 163, 176, 183, 188, 193, 194, 195, 196, 197, - 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 199, 203, 204, - 205, 206, 222, 223, 200, 201, 202, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 227, - 228, 239, 240, 241, 243, 244, 245, 246, 250, 254, 255, 256, 257, 258, 259, 265, 247, - 248, 249, 251, 252, 253, 260, 261, 262, 263, 264, 267, 268, 269, 270, 271, 275, 279, - 280, 281, 282, 283, 284, 290, 272, 273, 274, 276, 277, 278, 285, 286, 287, 288, 289, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(59), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(66), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(71), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(80), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(85), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(89), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(95), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(96), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(105), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(113), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(133), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(138), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(147), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(154), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(166), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(178), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(182), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(190), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(196), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(200), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(204), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(211), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(214), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(229), 11 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(240), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(242), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(245), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(260), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(263), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(268), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(269), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(284), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(287), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB -}; - - -bool DestructibleActorParam_0p30::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p30::mBuiltFlagMutex; - -DestructibleActorParam_0p30::DestructibleActorParam_0p30(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p30FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p30::~DestructibleActorParam_0p30() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p30::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p30(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p30::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p30::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p30* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p30::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p30::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p30::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p30::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p30::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); - HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); - HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.velocityIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksLeavingUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; - ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); - ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksEnteringUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; - ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); - ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[34]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(18); - Children[18] = PDEF_PTR(20); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(24); - Children[22] = PDEF_PTR(84); - Children[23] = PDEF_PTR(95); - Children[24] = PDEF_PTR(129); - Children[25] = PDEF_PTR(158); - Children[26] = PDEF_PTR(175); - Children[27] = PDEF_PTR(198); - Children[28] = PDEF_PTR(224); - Children[29] = PDEF_PTR(238); - Children[30] = PDEF_PTR(242); - Children[31] = PDEF_PTR(266); - Children[32] = PDEF_PTR(291); - Children[33] = PDEF_PTR(292); - - ParamDefTable[0].setChildren(Children, 34); - } - - // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(19); - - ParamDefTable[18].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(21); - - ParamDefTable[20].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(29); - Children[5] = PDEF_PTR(30); - Children[6] = PDEF_PTR(31); - Children[7] = PDEF_PTR(32); - Children[8] = PDEF_PTR(33); - Children[9] = PDEF_PTR(34); - Children[10] = PDEF_PTR(35); - Children[11] = PDEF_PTR(36); - Children[12] = PDEF_PTR(37); - Children[13] = PDEF_PTR(38); - Children[14] = PDEF_PTR(39); - Children[15] = PDEF_PTR(47); - Children[16] = PDEF_PTR(48); - Children[17] = PDEF_PTR(49); - Children[18] = PDEF_PTR(50); - Children[19] = PDEF_PTR(56); - Children[20] = PDEF_PTR(81); - Children[21] = PDEF_PTR(82); - Children[22] = PDEF_PTR(83); - - ParamDefTable[24].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - Children[6] = PDEF_PTR(46); - - ParamDefTable[39].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - - ParamDefTable[50].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(69); - Children[8] = PDEF_PTR(74); - - ParamDefTable[56].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(65); - Children[2] = PDEF_PTR(66); - Children[3] = PDEF_PTR(67); - Children[4] = PDEF_PTR(68); - - ParamDefTable[63].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(70); - Children[1] = PDEF_PTR(71); - Children[2] = PDEF_PTR(72); - Children[3] = PDEF_PTR(73); - - ParamDefTable[69].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - - ParamDefTable[74].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=84, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(85); - - ParamDefTable[84].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=85, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - Children[5] = PDEF_PTR(91); - Children[6] = PDEF_PTR(92); - Children[7] = PDEF_PTR(93); - Children[8] = PDEF_PTR(94); - - ParamDefTable[85].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=95, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(117); - Children[2] = PDEF_PTR(118); - Children[3] = PDEF_PTR(124); - Children[4] = PDEF_PTR(125); - Children[5] = PDEF_PTR(126); - Children[6] = PDEF_PTR(127); - Children[7] = PDEF_PTR(128); - - ParamDefTable[95].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=96, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(98); - Children[2] = PDEF_PTR(99); - Children[3] = PDEF_PTR(100); - Children[4] = PDEF_PTR(101); - Children[5] = PDEF_PTR(102); - Children[6] = PDEF_PTR(103); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(105); - Children[9] = PDEF_PTR(106); - Children[10] = PDEF_PTR(107); - Children[11] = PDEF_PTR(108); - Children[12] = PDEF_PTR(109); - Children[13] = PDEF_PTR(110); - Children[14] = PDEF_PTR(111); - Children[15] = PDEF_PTR(112); - Children[16] = PDEF_PTR(113); - Children[17] = PDEF_PTR(114); - Children[18] = PDEF_PTR(115); - Children[19] = PDEF_PTR(116); - - ParamDefTable[96].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=118, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(119); - Children[1] = PDEF_PTR(120); - Children[2] = PDEF_PTR(121); - Children[3] = PDEF_PTR(122); - Children[4] = PDEF_PTR(123); - - ParamDefTable[118].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=129, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(138); - Children[2] = PDEF_PTR(139); - Children[3] = PDEF_PTR(140); - Children[4] = PDEF_PTR(141); - Children[5] = PDEF_PTR(154); - Children[6] = PDEF_PTR(155); - Children[7] = PDEF_PTR(156); - Children[8] = PDEF_PTR(157); - - ParamDefTable[129].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=130, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(131); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - - ParamDefTable[130].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(142); - Children[1] = PDEF_PTR(143); - Children[2] = PDEF_PTR(144); - Children[3] = PDEF_PTR(145); - Children[4] = PDEF_PTR(146); - Children[5] = PDEF_PTR(147); - Children[6] = PDEF_PTR(148); - Children[7] = PDEF_PTR(149); - Children[8] = PDEF_PTR(150); - Children[9] = PDEF_PTR(151); - Children[10] = PDEF_PTR(152); - Children[11] = PDEF_PTR(153); - - ParamDefTable[141].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=158, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(159); - Children[1] = PDEF_PTR(164); - Children[2] = PDEF_PTR(165); - Children[3] = PDEF_PTR(166); - Children[4] = PDEF_PTR(167); - Children[5] = PDEF_PTR(168); - Children[6] = PDEF_PTR(169); - Children[7] = PDEF_PTR(170); - Children[8] = PDEF_PTR(171); - Children[9] = PDEF_PTR(172); - Children[10] = PDEF_PTR(173); - Children[11] = PDEF_PTR(174); - - ParamDefTable[158].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=159, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(160); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - - ParamDefTable[159].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(183); - Children[2] = PDEF_PTR(188); - Children[3] = PDEF_PTR(193); - Children[4] = PDEF_PTR(194); - Children[5] = PDEF_PTR(195); - Children[6] = PDEF_PTR(196); - Children[7] = PDEF_PTR(197); - - ParamDefTable[175].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(178); - Children[2] = PDEF_PTR(179); - Children[3] = PDEF_PTR(180); - Children[4] = PDEF_PTR(181); - Children[5] = PDEF_PTR(182); - - ParamDefTable[176].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(184); - Children[1] = PDEF_PTR(185); - Children[2] = PDEF_PTR(186); - Children[3] = PDEF_PTR(187); - - ParamDefTable[183].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(189); - Children[1] = PDEF_PTR(190); - Children[2] = PDEF_PTR(191); - Children[3] = PDEF_PTR(192); - - ParamDefTable[188].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(199); - Children[1] = PDEF_PTR(203); - Children[2] = PDEF_PTR(204); - Children[3] = PDEF_PTR(205); - Children[4] = PDEF_PTR(206); - Children[5] = PDEF_PTR(222); - Children[6] = PDEF_PTR(223); - - ParamDefTable[198].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(200); - Children[1] = PDEF_PTR(201); - Children[2] = PDEF_PTR(202); - - ParamDefTable[199].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(207); - Children[1] = PDEF_PTR(208); - Children[2] = PDEF_PTR(209); - Children[3] = PDEF_PTR(210); - Children[4] = PDEF_PTR(211); - Children[5] = PDEF_PTR(212); - Children[6] = PDEF_PTR(213); - Children[7] = PDEF_PTR(214); - Children[8] = PDEF_PTR(215); - Children[9] = PDEF_PTR(216); - Children[10] = PDEF_PTR(217); - Children[11] = PDEF_PTR(218); - Children[12] = PDEF_PTR(219); - Children[13] = PDEF_PTR(220); - Children[14] = PDEF_PTR(221); - - ParamDefTable[206].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=224, longName="p3BodyDescTemplate" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(225); - Children[1] = PDEF_PTR(226); - Children[2] = PDEF_PTR(229); - Children[3] = PDEF_PTR(230); - Children[4] = PDEF_PTR(231); - Children[5] = PDEF_PTR(232); - Children[6] = PDEF_PTR(233); - Children[7] = PDEF_PTR(234); - Children[8] = PDEF_PTR(235); - Children[9] = PDEF_PTR(236); - Children[10] = PDEF_PTR(237); - - ParamDefTable[224].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=226, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(227); - Children[1] = PDEF_PTR(228); - - ParamDefTable[226].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=238, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - - ParamDefTable[238].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(243); - Children[1] = PDEF_PTR(244); - Children[2] = PDEF_PTR(245); - Children[3] = PDEF_PTR(246); - Children[4] = PDEF_PTR(250); - Children[5] = PDEF_PTR(254); - Children[6] = PDEF_PTR(255); - Children[7] = PDEF_PTR(256); - Children[8] = PDEF_PTR(257); - Children[9] = PDEF_PTR(258); - Children[10] = PDEF_PTR(259); - Children[11] = PDEF_PTR(265); - - ParamDefTable[242].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(247); - Children[1] = PDEF_PTR(248); - Children[2] = PDEF_PTR(249); - - ParamDefTable[246].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(251); - Children[1] = PDEF_PTR(252); - Children[2] = PDEF_PTR(253); - - ParamDefTable[250].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(260); - Children[1] = PDEF_PTR(261); - Children[2] = PDEF_PTR(262); - Children[3] = PDEF_PTR(263); - Children[4] = PDEF_PTR(264); - - ParamDefTable[259].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=266, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(267); - - ParamDefTable[266].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=267, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(268); - Children[1] = PDEF_PTR(269); - Children[2] = PDEF_PTR(270); - Children[3] = PDEF_PTR(271); - Children[4] = PDEF_PTR(275); - Children[5] = PDEF_PTR(279); - Children[6] = PDEF_PTR(280); - Children[7] = PDEF_PTR(281); - Children[8] = PDEF_PTR(282); - Children[9] = PDEF_PTR(283); - Children[10] = PDEF_PTR(284); - Children[11] = PDEF_PTR(290); - - ParamDefTable[267].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(272); - Children[1] = PDEF_PTR(273); - Children[2] = PDEF_PTR(274); - - ParamDefTable[271].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(276); - Children[1] = PDEF_PTR(277); - Children[2] = PDEF_PTR(278); - - ParamDefTable[275].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=284, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(285); - Children[1] = PDEF_PTR(286); - Children[2] = PDEF_PTR(287); - Children[3] = PDEF_PTR(288); - Children[4] = PDEF_PTR(289); - - ParamDefTable[284].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p30::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p30::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p30::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - performDetailedOverlapTestForExtendedStructures = bool(true); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.velocityIterationCount = uint32_t(1); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - deleteChunksLeavingUserDefinedBB = bool(false); - deleteChunksEnteringUserDefinedBB = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p30::initReferences(void) -{ -} - -void DestructibleActorParam_0p30::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p30::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p30::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p30.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p30NS; + +const char* const DestructibleActorParam_0p30Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 293; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 84, + 95, 129, 158, 175, 198, 224, 238, 242, 266, 291, 292, 19, 21, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 40, 41, 42, + 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, 66, + 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 96, 117, 118, 124, 125, 126, 127, 128, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 119, 120, 121, 122, 123, 130, + 138, 139, 140, 141, 154, 155, 156, 157, 131, 132, 133, 134, 135, 136, 137, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 159, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 160, 161, 162, 163, 176, 183, 188, 193, 194, 195, 196, 197, + 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 199, 203, 204, + 205, 206, 222, 223, 200, 201, 202, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 227, + 228, 239, 240, 241, 243, 244, 245, 246, 250, 254, 255, 256, 257, 258, 259, 265, 247, + 248, 249, 251, 252, 253, 260, 261, 262, 263, 264, 267, 268, 269, 270, 271, 275, 279, + 280, 281, 282, 283, 284, 290, 272, 273, 274, 276, 277, 278, 285, 286, 287, 288, 289, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(59), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(66), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(71), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(80), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(85), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(89), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(95), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(96), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(105), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(113), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(133), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(138), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(147), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(154), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(166), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(178), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(182), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(190), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(196), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(200), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(204), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(211), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(214), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(229), 11 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(240), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(242), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(245), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(260), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(263), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(268), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(269), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(284), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(287), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB +}; + + +bool DestructibleActorParam_0p30::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p30::mBuiltFlagMutex; + +DestructibleActorParam_0p30::DestructibleActorParam_0p30(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p30FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p30::~DestructibleActorParam_0p30() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p30::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p30(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p30::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p30::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p30* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p30::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p30::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p30::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p30::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p30::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); + HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); + HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.velocityIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksLeavingUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; + ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); + ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksEnteringUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; + ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using NxApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); + ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[34]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(18); + Children[18] = PDEF_PTR(20); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(24); + Children[22] = PDEF_PTR(84); + Children[23] = PDEF_PTR(95); + Children[24] = PDEF_PTR(129); + Children[25] = PDEF_PTR(158); + Children[26] = PDEF_PTR(175); + Children[27] = PDEF_PTR(198); + Children[28] = PDEF_PTR(224); + Children[29] = PDEF_PTR(238); + Children[30] = PDEF_PTR(242); + Children[31] = PDEF_PTR(266); + Children[32] = PDEF_PTR(291); + Children[33] = PDEF_PTR(292); + + ParamDefTable[0].setChildren(Children, 34); + } + + // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(19); + + ParamDefTable[18].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(21); + + ParamDefTable[20].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(29); + Children[5] = PDEF_PTR(30); + Children[6] = PDEF_PTR(31); + Children[7] = PDEF_PTR(32); + Children[8] = PDEF_PTR(33); + Children[9] = PDEF_PTR(34); + Children[10] = PDEF_PTR(35); + Children[11] = PDEF_PTR(36); + Children[12] = PDEF_PTR(37); + Children[13] = PDEF_PTR(38); + Children[14] = PDEF_PTR(39); + Children[15] = PDEF_PTR(47); + Children[16] = PDEF_PTR(48); + Children[17] = PDEF_PTR(49); + Children[18] = PDEF_PTR(50); + Children[19] = PDEF_PTR(56); + Children[20] = PDEF_PTR(81); + Children[21] = PDEF_PTR(82); + Children[22] = PDEF_PTR(83); + + ParamDefTable[24].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + Children[6] = PDEF_PTR(46); + + ParamDefTable[39].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + + ParamDefTable[50].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(69); + Children[8] = PDEF_PTR(74); + + ParamDefTable[56].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(65); + Children[2] = PDEF_PTR(66); + Children[3] = PDEF_PTR(67); + Children[4] = PDEF_PTR(68); + + ParamDefTable[63].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(70); + Children[1] = PDEF_PTR(71); + Children[2] = PDEF_PTR(72); + Children[3] = PDEF_PTR(73); + + ParamDefTable[69].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + + ParamDefTable[74].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=84, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(85); + + ParamDefTable[84].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=85, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + Children[5] = PDEF_PTR(91); + Children[6] = PDEF_PTR(92); + Children[7] = PDEF_PTR(93); + Children[8] = PDEF_PTR(94); + + ParamDefTable[85].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=95, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(117); + Children[2] = PDEF_PTR(118); + Children[3] = PDEF_PTR(124); + Children[4] = PDEF_PTR(125); + Children[5] = PDEF_PTR(126); + Children[6] = PDEF_PTR(127); + Children[7] = PDEF_PTR(128); + + ParamDefTable[95].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=96, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(98); + Children[2] = PDEF_PTR(99); + Children[3] = PDEF_PTR(100); + Children[4] = PDEF_PTR(101); + Children[5] = PDEF_PTR(102); + Children[6] = PDEF_PTR(103); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(105); + Children[9] = PDEF_PTR(106); + Children[10] = PDEF_PTR(107); + Children[11] = PDEF_PTR(108); + Children[12] = PDEF_PTR(109); + Children[13] = PDEF_PTR(110); + Children[14] = PDEF_PTR(111); + Children[15] = PDEF_PTR(112); + Children[16] = PDEF_PTR(113); + Children[17] = PDEF_PTR(114); + Children[18] = PDEF_PTR(115); + Children[19] = PDEF_PTR(116); + + ParamDefTable[96].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=118, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(119); + Children[1] = PDEF_PTR(120); + Children[2] = PDEF_PTR(121); + Children[3] = PDEF_PTR(122); + Children[4] = PDEF_PTR(123); + + ParamDefTable[118].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=129, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(138); + Children[2] = PDEF_PTR(139); + Children[3] = PDEF_PTR(140); + Children[4] = PDEF_PTR(141); + Children[5] = PDEF_PTR(154); + Children[6] = PDEF_PTR(155); + Children[7] = PDEF_PTR(156); + Children[8] = PDEF_PTR(157); + + ParamDefTable[129].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=130, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(131); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + + ParamDefTable[130].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(142); + Children[1] = PDEF_PTR(143); + Children[2] = PDEF_PTR(144); + Children[3] = PDEF_PTR(145); + Children[4] = PDEF_PTR(146); + Children[5] = PDEF_PTR(147); + Children[6] = PDEF_PTR(148); + Children[7] = PDEF_PTR(149); + Children[8] = PDEF_PTR(150); + Children[9] = PDEF_PTR(151); + Children[10] = PDEF_PTR(152); + Children[11] = PDEF_PTR(153); + + ParamDefTable[141].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=158, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(159); + Children[1] = PDEF_PTR(164); + Children[2] = PDEF_PTR(165); + Children[3] = PDEF_PTR(166); + Children[4] = PDEF_PTR(167); + Children[5] = PDEF_PTR(168); + Children[6] = PDEF_PTR(169); + Children[7] = PDEF_PTR(170); + Children[8] = PDEF_PTR(171); + Children[9] = PDEF_PTR(172); + Children[10] = PDEF_PTR(173); + Children[11] = PDEF_PTR(174); + + ParamDefTable[158].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=159, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(160); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + + ParamDefTable[159].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(183); + Children[2] = PDEF_PTR(188); + Children[3] = PDEF_PTR(193); + Children[4] = PDEF_PTR(194); + Children[5] = PDEF_PTR(195); + Children[6] = PDEF_PTR(196); + Children[7] = PDEF_PTR(197); + + ParamDefTable[175].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(178); + Children[2] = PDEF_PTR(179); + Children[3] = PDEF_PTR(180); + Children[4] = PDEF_PTR(181); + Children[5] = PDEF_PTR(182); + + ParamDefTable[176].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(184); + Children[1] = PDEF_PTR(185); + Children[2] = PDEF_PTR(186); + Children[3] = PDEF_PTR(187); + + ParamDefTable[183].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(189); + Children[1] = PDEF_PTR(190); + Children[2] = PDEF_PTR(191); + Children[3] = PDEF_PTR(192); + + ParamDefTable[188].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(199); + Children[1] = PDEF_PTR(203); + Children[2] = PDEF_PTR(204); + Children[3] = PDEF_PTR(205); + Children[4] = PDEF_PTR(206); + Children[5] = PDEF_PTR(222); + Children[6] = PDEF_PTR(223); + + ParamDefTable[198].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(200); + Children[1] = PDEF_PTR(201); + Children[2] = PDEF_PTR(202); + + ParamDefTable[199].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(207); + Children[1] = PDEF_PTR(208); + Children[2] = PDEF_PTR(209); + Children[3] = PDEF_PTR(210); + Children[4] = PDEF_PTR(211); + Children[5] = PDEF_PTR(212); + Children[6] = PDEF_PTR(213); + Children[7] = PDEF_PTR(214); + Children[8] = PDEF_PTR(215); + Children[9] = PDEF_PTR(216); + Children[10] = PDEF_PTR(217); + Children[11] = PDEF_PTR(218); + Children[12] = PDEF_PTR(219); + Children[13] = PDEF_PTR(220); + Children[14] = PDEF_PTR(221); + + ParamDefTable[206].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=224, longName="p3BodyDescTemplate" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(225); + Children[1] = PDEF_PTR(226); + Children[2] = PDEF_PTR(229); + Children[3] = PDEF_PTR(230); + Children[4] = PDEF_PTR(231); + Children[5] = PDEF_PTR(232); + Children[6] = PDEF_PTR(233); + Children[7] = PDEF_PTR(234); + Children[8] = PDEF_PTR(235); + Children[9] = PDEF_PTR(236); + Children[10] = PDEF_PTR(237); + + ParamDefTable[224].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=226, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(227); + Children[1] = PDEF_PTR(228); + + ParamDefTable[226].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=238, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + + ParamDefTable[238].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(243); + Children[1] = PDEF_PTR(244); + Children[2] = PDEF_PTR(245); + Children[3] = PDEF_PTR(246); + Children[4] = PDEF_PTR(250); + Children[5] = PDEF_PTR(254); + Children[6] = PDEF_PTR(255); + Children[7] = PDEF_PTR(256); + Children[8] = PDEF_PTR(257); + Children[9] = PDEF_PTR(258); + Children[10] = PDEF_PTR(259); + Children[11] = PDEF_PTR(265); + + ParamDefTable[242].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(247); + Children[1] = PDEF_PTR(248); + Children[2] = PDEF_PTR(249); + + ParamDefTable[246].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(251); + Children[1] = PDEF_PTR(252); + Children[2] = PDEF_PTR(253); + + ParamDefTable[250].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(260); + Children[1] = PDEF_PTR(261); + Children[2] = PDEF_PTR(262); + Children[3] = PDEF_PTR(263); + Children[4] = PDEF_PTR(264); + + ParamDefTable[259].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=266, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(267); + + ParamDefTable[266].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=267, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(268); + Children[1] = PDEF_PTR(269); + Children[2] = PDEF_PTR(270); + Children[3] = PDEF_PTR(271); + Children[4] = PDEF_PTR(275); + Children[5] = PDEF_PTR(279); + Children[6] = PDEF_PTR(280); + Children[7] = PDEF_PTR(281); + Children[8] = PDEF_PTR(282); + Children[9] = PDEF_PTR(283); + Children[10] = PDEF_PTR(284); + Children[11] = PDEF_PTR(290); + + ParamDefTable[267].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(272); + Children[1] = PDEF_PTR(273); + Children[2] = PDEF_PTR(274); + + ParamDefTable[271].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(276); + Children[1] = PDEF_PTR(277); + Children[2] = PDEF_PTR(278); + + ParamDefTable[275].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=284, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(285); + Children[1] = PDEF_PTR(286); + Children[2] = PDEF_PTR(287); + Children[3] = PDEF_PTR(288); + Children[4] = PDEF_PTR(289); + + ParamDefTable[284].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p30::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p30::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p30::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + performDetailedOverlapTestForExtendedStructures = bool(true); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.velocityIterationCount = uint32_t(1); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + deleteChunksLeavingUserDefinedBB = bool(false); + deleteChunksEnteringUserDefinedBB = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p30::initReferences(void) +{ +} + +void DestructibleActorParam_0p30::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p30::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p30::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p31.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p31.cpp old mode 100644 new mode 100755 index b00694e..8d9c939 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p31.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p31.cpp @@ -1,8217 +1,8217 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p31.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p31NS; - -const char* const DestructibleActorParam_0p31Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 293; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 84, - 95, 129, 158, 175, 198, 224, 238, 242, 266, 291, 292, 19, 21, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 40, 41, 42, - 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, 66, - 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 96, 117, 118, 124, 125, 126, 127, 128, 97, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 119, 120, 121, 122, 123, 130, - 138, 139, 140, 141, 154, 155, 156, 157, 131, 132, 133, 134, 135, 136, 137, 142, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 159, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 160, 161, 162, 163, 176, 183, 188, 193, 194, 195, 196, 197, - 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 199, 203, 204, - 205, 206, 222, 223, 200, 201, 202, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 227, - 228, 239, 240, 241, 243, 244, 245, 246, 250, 254, 255, 256, 257, 258, 259, 265, 247, - 248, 249, 251, 252, 253, 260, 261, 262, 263, 264, 267, 268, 269, 270, 271, 275, 279, - 280, 281, 282, 283, 284, 290, 272, 273, 274, 276, 277, 278, 285, 286, 287, 288, 289, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_TRANSFORM, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(59), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(66), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(71), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(80), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(85), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(89), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(95), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(96), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(105), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(113), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(133), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(138), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(147), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(154), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(166), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(178), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(182), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(190), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(196), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(200), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(204), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(211), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(214), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(229), 11 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(240), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(242), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(245), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(260), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(263), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(268), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(269), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(284), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(287), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB -}; - - -bool DestructibleActorParam_0p31::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p31::mBuiltFlagMutex; - -DestructibleActorParam_0p31::DestructibleActorParam_0p31(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p31FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p31::~DestructibleActorParam_0p31() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p31::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p31(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p31::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p31::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p31* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p31::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p31::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p31::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p31::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p31::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the DestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the DestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); - HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); - HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.velocityIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksLeavingUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; - ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); - ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksEnteringUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; - ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); - ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[34]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(18); - Children[18] = PDEF_PTR(20); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(24); - Children[22] = PDEF_PTR(84); - Children[23] = PDEF_PTR(95); - Children[24] = PDEF_PTR(129); - Children[25] = PDEF_PTR(158); - Children[26] = PDEF_PTR(175); - Children[27] = PDEF_PTR(198); - Children[28] = PDEF_PTR(224); - Children[29] = PDEF_PTR(238); - Children[30] = PDEF_PTR(242); - Children[31] = PDEF_PTR(266); - Children[32] = PDEF_PTR(291); - Children[33] = PDEF_PTR(292); - - ParamDefTable[0].setChildren(Children, 34); - } - - // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(19); - - ParamDefTable[18].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(21); - - ParamDefTable[20].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(29); - Children[5] = PDEF_PTR(30); - Children[6] = PDEF_PTR(31); - Children[7] = PDEF_PTR(32); - Children[8] = PDEF_PTR(33); - Children[9] = PDEF_PTR(34); - Children[10] = PDEF_PTR(35); - Children[11] = PDEF_PTR(36); - Children[12] = PDEF_PTR(37); - Children[13] = PDEF_PTR(38); - Children[14] = PDEF_PTR(39); - Children[15] = PDEF_PTR(47); - Children[16] = PDEF_PTR(48); - Children[17] = PDEF_PTR(49); - Children[18] = PDEF_PTR(50); - Children[19] = PDEF_PTR(56); - Children[20] = PDEF_PTR(81); - Children[21] = PDEF_PTR(82); - Children[22] = PDEF_PTR(83); - - ParamDefTable[24].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - Children[6] = PDEF_PTR(46); - - ParamDefTable[39].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - - ParamDefTable[50].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(69); - Children[8] = PDEF_PTR(74); - - ParamDefTable[56].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(65); - Children[2] = PDEF_PTR(66); - Children[3] = PDEF_PTR(67); - Children[4] = PDEF_PTR(68); - - ParamDefTable[63].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(70); - Children[1] = PDEF_PTR(71); - Children[2] = PDEF_PTR(72); - Children[3] = PDEF_PTR(73); - - ParamDefTable[69].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - - ParamDefTable[74].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=84, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(85); - - ParamDefTable[84].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=85, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - Children[5] = PDEF_PTR(91); - Children[6] = PDEF_PTR(92); - Children[7] = PDEF_PTR(93); - Children[8] = PDEF_PTR(94); - - ParamDefTable[85].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=95, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(117); - Children[2] = PDEF_PTR(118); - Children[3] = PDEF_PTR(124); - Children[4] = PDEF_PTR(125); - Children[5] = PDEF_PTR(126); - Children[6] = PDEF_PTR(127); - Children[7] = PDEF_PTR(128); - - ParamDefTable[95].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=96, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(98); - Children[2] = PDEF_PTR(99); - Children[3] = PDEF_PTR(100); - Children[4] = PDEF_PTR(101); - Children[5] = PDEF_PTR(102); - Children[6] = PDEF_PTR(103); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(105); - Children[9] = PDEF_PTR(106); - Children[10] = PDEF_PTR(107); - Children[11] = PDEF_PTR(108); - Children[12] = PDEF_PTR(109); - Children[13] = PDEF_PTR(110); - Children[14] = PDEF_PTR(111); - Children[15] = PDEF_PTR(112); - Children[16] = PDEF_PTR(113); - Children[17] = PDEF_PTR(114); - Children[18] = PDEF_PTR(115); - Children[19] = PDEF_PTR(116); - - ParamDefTable[96].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=118, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(119); - Children[1] = PDEF_PTR(120); - Children[2] = PDEF_PTR(121); - Children[3] = PDEF_PTR(122); - Children[4] = PDEF_PTR(123); - - ParamDefTable[118].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=129, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(130); - Children[1] = PDEF_PTR(138); - Children[2] = PDEF_PTR(139); - Children[3] = PDEF_PTR(140); - Children[4] = PDEF_PTR(141); - Children[5] = PDEF_PTR(154); - Children[6] = PDEF_PTR(155); - Children[7] = PDEF_PTR(156); - Children[8] = PDEF_PTR(157); - - ParamDefTable[129].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=130, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(131); - Children[1] = PDEF_PTR(132); - Children[2] = PDEF_PTR(133); - Children[3] = PDEF_PTR(134); - Children[4] = PDEF_PTR(135); - Children[5] = PDEF_PTR(136); - Children[6] = PDEF_PTR(137); - - ParamDefTable[130].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(142); - Children[1] = PDEF_PTR(143); - Children[2] = PDEF_PTR(144); - Children[3] = PDEF_PTR(145); - Children[4] = PDEF_PTR(146); - Children[5] = PDEF_PTR(147); - Children[6] = PDEF_PTR(148); - Children[7] = PDEF_PTR(149); - Children[8] = PDEF_PTR(150); - Children[9] = PDEF_PTR(151); - Children[10] = PDEF_PTR(152); - Children[11] = PDEF_PTR(153); - - ParamDefTable[141].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=158, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(159); - Children[1] = PDEF_PTR(164); - Children[2] = PDEF_PTR(165); - Children[3] = PDEF_PTR(166); - Children[4] = PDEF_PTR(167); - Children[5] = PDEF_PTR(168); - Children[6] = PDEF_PTR(169); - Children[7] = PDEF_PTR(170); - Children[8] = PDEF_PTR(171); - Children[9] = PDEF_PTR(172); - Children[10] = PDEF_PTR(173); - Children[11] = PDEF_PTR(174); - - ParamDefTable[158].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=159, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(160); - Children[1] = PDEF_PTR(161); - Children[2] = PDEF_PTR(162); - Children[3] = PDEF_PTR(163); - - ParamDefTable[159].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(176); - Children[1] = PDEF_PTR(183); - Children[2] = PDEF_PTR(188); - Children[3] = PDEF_PTR(193); - Children[4] = PDEF_PTR(194); - Children[5] = PDEF_PTR(195); - Children[6] = PDEF_PTR(196); - Children[7] = PDEF_PTR(197); - - ParamDefTable[175].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(178); - Children[2] = PDEF_PTR(179); - Children[3] = PDEF_PTR(180); - Children[4] = PDEF_PTR(181); - Children[5] = PDEF_PTR(182); - - ParamDefTable[176].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(184); - Children[1] = PDEF_PTR(185); - Children[2] = PDEF_PTR(186); - Children[3] = PDEF_PTR(187); - - ParamDefTable[183].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(189); - Children[1] = PDEF_PTR(190); - Children[2] = PDEF_PTR(191); - Children[3] = PDEF_PTR(192); - - ParamDefTable[188].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(199); - Children[1] = PDEF_PTR(203); - Children[2] = PDEF_PTR(204); - Children[3] = PDEF_PTR(205); - Children[4] = PDEF_PTR(206); - Children[5] = PDEF_PTR(222); - Children[6] = PDEF_PTR(223); - - ParamDefTable[198].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(200); - Children[1] = PDEF_PTR(201); - Children[2] = PDEF_PTR(202); - - ParamDefTable[199].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(207); - Children[1] = PDEF_PTR(208); - Children[2] = PDEF_PTR(209); - Children[3] = PDEF_PTR(210); - Children[4] = PDEF_PTR(211); - Children[5] = PDEF_PTR(212); - Children[6] = PDEF_PTR(213); - Children[7] = PDEF_PTR(214); - Children[8] = PDEF_PTR(215); - Children[9] = PDEF_PTR(216); - Children[10] = PDEF_PTR(217); - Children[11] = PDEF_PTR(218); - Children[12] = PDEF_PTR(219); - Children[13] = PDEF_PTR(220); - Children[14] = PDEF_PTR(221); - - ParamDefTable[206].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=224, longName="p3BodyDescTemplate" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(225); - Children[1] = PDEF_PTR(226); - Children[2] = PDEF_PTR(229); - Children[3] = PDEF_PTR(230); - Children[4] = PDEF_PTR(231); - Children[5] = PDEF_PTR(232); - Children[6] = PDEF_PTR(233); - Children[7] = PDEF_PTR(234); - Children[8] = PDEF_PTR(235); - Children[9] = PDEF_PTR(236); - Children[10] = PDEF_PTR(237); - - ParamDefTable[224].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=226, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(227); - Children[1] = PDEF_PTR(228); - - ParamDefTable[226].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=238, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(239); - Children[1] = PDEF_PTR(240); - Children[2] = PDEF_PTR(241); - - ParamDefTable[238].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(243); - Children[1] = PDEF_PTR(244); - Children[2] = PDEF_PTR(245); - Children[3] = PDEF_PTR(246); - Children[4] = PDEF_PTR(250); - Children[5] = PDEF_PTR(254); - Children[6] = PDEF_PTR(255); - Children[7] = PDEF_PTR(256); - Children[8] = PDEF_PTR(257); - Children[9] = PDEF_PTR(258); - Children[10] = PDEF_PTR(259); - Children[11] = PDEF_PTR(265); - - ParamDefTable[242].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(247); - Children[1] = PDEF_PTR(248); - Children[2] = PDEF_PTR(249); - - ParamDefTable[246].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(251); - Children[1] = PDEF_PTR(252); - Children[2] = PDEF_PTR(253); - - ParamDefTable[250].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(260); - Children[1] = PDEF_PTR(261); - Children[2] = PDEF_PTR(262); - Children[3] = PDEF_PTR(263); - Children[4] = PDEF_PTR(264); - - ParamDefTable[259].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=266, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(267); - - ParamDefTable[266].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=267, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(268); - Children[1] = PDEF_PTR(269); - Children[2] = PDEF_PTR(270); - Children[3] = PDEF_PTR(271); - Children[4] = PDEF_PTR(275); - Children[5] = PDEF_PTR(279); - Children[6] = PDEF_PTR(280); - Children[7] = PDEF_PTR(281); - Children[8] = PDEF_PTR(282); - Children[9] = PDEF_PTR(283); - Children[10] = PDEF_PTR(284); - Children[11] = PDEF_PTR(290); - - ParamDefTable[267].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(272); - Children[1] = PDEF_PTR(273); - Children[2] = PDEF_PTR(274); - - ParamDefTable[271].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(276); - Children[1] = PDEF_PTR(277); - Children[2] = PDEF_PTR(278); - - ParamDefTable[275].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=284, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(285); - Children[1] = PDEF_PTR(286); - Children[2] = PDEF_PTR(287); - Children[3] = PDEF_PTR(288); - Children[4] = PDEF_PTR(289); - - ParamDefTable[284].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p31::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p31::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p31::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - globalPose = physx::PxTransform(physx::PxIdentity); - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - performDetailedOverlapTestForExtendedStructures = bool(true); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.velocityIterationCount = uint32_t(1); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - deleteChunksLeavingUserDefinedBB = bool(false); - deleteChunksEnteringUserDefinedBB = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p31::initReferences(void) -{ -} - -void DestructibleActorParam_0p31::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p31::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p31::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p31.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p31NS; + +const char* const DestructibleActorParam_0p31Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 293; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 84, + 95, 129, 158, 175, 198, 224, 238, 242, 266, 291, 292, 19, 21, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 40, 41, 42, + 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, 66, + 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 85, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 96, 117, 118, 124, 125, 126, 127, 128, 97, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 119, 120, 121, 122, 123, 130, + 138, 139, 140, 141, 154, 155, 156, 157, 131, 132, 133, 134, 135, 136, 137, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 159, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 160, 161, 162, 163, 176, 183, 188, 193, 194, 195, 196, 197, + 177, 178, 179, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 199, 203, 204, + 205, 206, 222, 223, 200, 201, 202, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 225, 226, 229, 230, 231, 232, 233, 234, 235, 236, 237, 227, + 228, 239, 240, 241, 243, 244, 245, 246, 250, 254, 255, 256, 257, 258, 259, 265, 247, + 248, 249, 251, 252, 253, 260, 261, 262, 263, 264, 267, 268, 269, 270, 271, 275, 279, + 280, 281, 282, 283, 284, 290, 272, 273, 274, 276, 277, 278, 285, 286, 287, 288, 289, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_TRANSFORM, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(59), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(66), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(71), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(80), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(85), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(89), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(95), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(96), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(105), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(113), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(133), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(138), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(147), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(154), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(166), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(178), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(182), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(190), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(196), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(200), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(204), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(211), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(214), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(229), 11 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(240), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(242), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(245), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(257), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(260), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(263), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(268), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(269), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(281), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(284), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(287), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB +}; + + +bool DestructibleActorParam_0p31::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p31::mBuiltFlagMutex; + +DestructibleActorParam_0p31::DestructibleActorParam_0p31(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p31FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p31::~DestructibleActorParam_0p31() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p31::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p31(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p31::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p31::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p31* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p31::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p31::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p31::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p31::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p31::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the DestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the DestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); + HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); + HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.velocityIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=291, longName="deleteChunksLeavingUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; + ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); + ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksEnteringUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; + ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); + ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[34]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(18); + Children[18] = PDEF_PTR(20); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(24); + Children[22] = PDEF_PTR(84); + Children[23] = PDEF_PTR(95); + Children[24] = PDEF_PTR(129); + Children[25] = PDEF_PTR(158); + Children[26] = PDEF_PTR(175); + Children[27] = PDEF_PTR(198); + Children[28] = PDEF_PTR(224); + Children[29] = PDEF_PTR(238); + Children[30] = PDEF_PTR(242); + Children[31] = PDEF_PTR(266); + Children[32] = PDEF_PTR(291); + Children[33] = PDEF_PTR(292); + + ParamDefTable[0].setChildren(Children, 34); + } + + // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(19); + + ParamDefTable[18].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(21); + + ParamDefTable[20].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(29); + Children[5] = PDEF_PTR(30); + Children[6] = PDEF_PTR(31); + Children[7] = PDEF_PTR(32); + Children[8] = PDEF_PTR(33); + Children[9] = PDEF_PTR(34); + Children[10] = PDEF_PTR(35); + Children[11] = PDEF_PTR(36); + Children[12] = PDEF_PTR(37); + Children[13] = PDEF_PTR(38); + Children[14] = PDEF_PTR(39); + Children[15] = PDEF_PTR(47); + Children[16] = PDEF_PTR(48); + Children[17] = PDEF_PTR(49); + Children[18] = PDEF_PTR(50); + Children[19] = PDEF_PTR(56); + Children[20] = PDEF_PTR(81); + Children[21] = PDEF_PTR(82); + Children[22] = PDEF_PTR(83); + + ParamDefTable[24].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + Children[6] = PDEF_PTR(46); + + ParamDefTable[39].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + + ParamDefTable[50].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(69); + Children[8] = PDEF_PTR(74); + + ParamDefTable[56].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(65); + Children[2] = PDEF_PTR(66); + Children[3] = PDEF_PTR(67); + Children[4] = PDEF_PTR(68); + + ParamDefTable[63].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(70); + Children[1] = PDEF_PTR(71); + Children[2] = PDEF_PTR(72); + Children[3] = PDEF_PTR(73); + + ParamDefTable[69].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + + ParamDefTable[74].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=84, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(85); + + ParamDefTable[84].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=85, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + Children[5] = PDEF_PTR(91); + Children[6] = PDEF_PTR(92); + Children[7] = PDEF_PTR(93); + Children[8] = PDEF_PTR(94); + + ParamDefTable[85].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=95, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(117); + Children[2] = PDEF_PTR(118); + Children[3] = PDEF_PTR(124); + Children[4] = PDEF_PTR(125); + Children[5] = PDEF_PTR(126); + Children[6] = PDEF_PTR(127); + Children[7] = PDEF_PTR(128); + + ParamDefTable[95].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=96, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(98); + Children[2] = PDEF_PTR(99); + Children[3] = PDEF_PTR(100); + Children[4] = PDEF_PTR(101); + Children[5] = PDEF_PTR(102); + Children[6] = PDEF_PTR(103); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(105); + Children[9] = PDEF_PTR(106); + Children[10] = PDEF_PTR(107); + Children[11] = PDEF_PTR(108); + Children[12] = PDEF_PTR(109); + Children[13] = PDEF_PTR(110); + Children[14] = PDEF_PTR(111); + Children[15] = PDEF_PTR(112); + Children[16] = PDEF_PTR(113); + Children[17] = PDEF_PTR(114); + Children[18] = PDEF_PTR(115); + Children[19] = PDEF_PTR(116); + + ParamDefTable[96].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=118, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(119); + Children[1] = PDEF_PTR(120); + Children[2] = PDEF_PTR(121); + Children[3] = PDEF_PTR(122); + Children[4] = PDEF_PTR(123); + + ParamDefTable[118].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=129, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(130); + Children[1] = PDEF_PTR(138); + Children[2] = PDEF_PTR(139); + Children[3] = PDEF_PTR(140); + Children[4] = PDEF_PTR(141); + Children[5] = PDEF_PTR(154); + Children[6] = PDEF_PTR(155); + Children[7] = PDEF_PTR(156); + Children[8] = PDEF_PTR(157); + + ParamDefTable[129].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=130, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(131); + Children[1] = PDEF_PTR(132); + Children[2] = PDEF_PTR(133); + Children[3] = PDEF_PTR(134); + Children[4] = PDEF_PTR(135); + Children[5] = PDEF_PTR(136); + Children[6] = PDEF_PTR(137); + + ParamDefTable[130].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=141, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(142); + Children[1] = PDEF_PTR(143); + Children[2] = PDEF_PTR(144); + Children[3] = PDEF_PTR(145); + Children[4] = PDEF_PTR(146); + Children[5] = PDEF_PTR(147); + Children[6] = PDEF_PTR(148); + Children[7] = PDEF_PTR(149); + Children[8] = PDEF_PTR(150); + Children[9] = PDEF_PTR(151); + Children[10] = PDEF_PTR(152); + Children[11] = PDEF_PTR(153); + + ParamDefTable[141].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=158, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(159); + Children[1] = PDEF_PTR(164); + Children[2] = PDEF_PTR(165); + Children[3] = PDEF_PTR(166); + Children[4] = PDEF_PTR(167); + Children[5] = PDEF_PTR(168); + Children[6] = PDEF_PTR(169); + Children[7] = PDEF_PTR(170); + Children[8] = PDEF_PTR(171); + Children[9] = PDEF_PTR(172); + Children[10] = PDEF_PTR(173); + Children[11] = PDEF_PTR(174); + + ParamDefTable[158].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=159, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(160); + Children[1] = PDEF_PTR(161); + Children[2] = PDEF_PTR(162); + Children[3] = PDEF_PTR(163); + + ParamDefTable[159].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=175, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(176); + Children[1] = PDEF_PTR(183); + Children[2] = PDEF_PTR(188); + Children[3] = PDEF_PTR(193); + Children[4] = PDEF_PTR(194); + Children[5] = PDEF_PTR(195); + Children[6] = PDEF_PTR(196); + Children[7] = PDEF_PTR(197); + + ParamDefTable[175].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(178); + Children[2] = PDEF_PTR(179); + Children[3] = PDEF_PTR(180); + Children[4] = PDEF_PTR(181); + Children[5] = PDEF_PTR(182); + + ParamDefTable[176].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=183, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(184); + Children[1] = PDEF_PTR(185); + Children[2] = PDEF_PTR(186); + Children[3] = PDEF_PTR(187); + + ParamDefTable[183].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=188, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(189); + Children[1] = PDEF_PTR(190); + Children[2] = PDEF_PTR(191); + Children[3] = PDEF_PTR(192); + + ParamDefTable[188].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=198, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(199); + Children[1] = PDEF_PTR(203); + Children[2] = PDEF_PTR(204); + Children[3] = PDEF_PTR(205); + Children[4] = PDEF_PTR(206); + Children[5] = PDEF_PTR(222); + Children[6] = PDEF_PTR(223); + + ParamDefTable[198].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(200); + Children[1] = PDEF_PTR(201); + Children[2] = PDEF_PTR(202); + + ParamDefTable[199].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=206, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(207); + Children[1] = PDEF_PTR(208); + Children[2] = PDEF_PTR(209); + Children[3] = PDEF_PTR(210); + Children[4] = PDEF_PTR(211); + Children[5] = PDEF_PTR(212); + Children[6] = PDEF_PTR(213); + Children[7] = PDEF_PTR(214); + Children[8] = PDEF_PTR(215); + Children[9] = PDEF_PTR(216); + Children[10] = PDEF_PTR(217); + Children[11] = PDEF_PTR(218); + Children[12] = PDEF_PTR(219); + Children[13] = PDEF_PTR(220); + Children[14] = PDEF_PTR(221); + + ParamDefTable[206].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=224, longName="p3BodyDescTemplate" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(225); + Children[1] = PDEF_PTR(226); + Children[2] = PDEF_PTR(229); + Children[3] = PDEF_PTR(230); + Children[4] = PDEF_PTR(231); + Children[5] = PDEF_PTR(232); + Children[6] = PDEF_PTR(233); + Children[7] = PDEF_PTR(234); + Children[8] = PDEF_PTR(235); + Children[9] = PDEF_PTR(236); + Children[10] = PDEF_PTR(237); + + ParamDefTable[224].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=226, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(227); + Children[1] = PDEF_PTR(228); + + ParamDefTable[226].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=238, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(239); + Children[1] = PDEF_PTR(240); + Children[2] = PDEF_PTR(241); + + ParamDefTable[238].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=242, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(243); + Children[1] = PDEF_PTR(244); + Children[2] = PDEF_PTR(245); + Children[3] = PDEF_PTR(246); + Children[4] = PDEF_PTR(250); + Children[5] = PDEF_PTR(254); + Children[6] = PDEF_PTR(255); + Children[7] = PDEF_PTR(256); + Children[8] = PDEF_PTR(257); + Children[9] = PDEF_PTR(258); + Children[10] = PDEF_PTR(259); + Children[11] = PDEF_PTR(265); + + ParamDefTable[242].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=246, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(247); + Children[1] = PDEF_PTR(248); + Children[2] = PDEF_PTR(249); + + ParamDefTable[246].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=250, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(251); + Children[1] = PDEF_PTR(252); + Children[2] = PDEF_PTR(253); + + ParamDefTable[250].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=259, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(260); + Children[1] = PDEF_PTR(261); + Children[2] = PDEF_PTR(262); + Children[3] = PDEF_PTR(263); + Children[4] = PDEF_PTR(264); + + ParamDefTable[259].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=266, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(267); + + ParamDefTable[266].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=267, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(268); + Children[1] = PDEF_PTR(269); + Children[2] = PDEF_PTR(270); + Children[3] = PDEF_PTR(271); + Children[4] = PDEF_PTR(275); + Children[5] = PDEF_PTR(279); + Children[6] = PDEF_PTR(280); + Children[7] = PDEF_PTR(281); + Children[8] = PDEF_PTR(282); + Children[9] = PDEF_PTR(283); + Children[10] = PDEF_PTR(284); + Children[11] = PDEF_PTR(290); + + ParamDefTable[267].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=271, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(272); + Children[1] = PDEF_PTR(273); + Children[2] = PDEF_PTR(274); + + ParamDefTable[271].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=275, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(276); + Children[1] = PDEF_PTR(277); + Children[2] = PDEF_PTR(278); + + ParamDefTable[275].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=284, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(285); + Children[1] = PDEF_PTR(286); + Children[2] = PDEF_PTR(287); + Children[3] = PDEF_PTR(288); + Children[4] = PDEF_PTR(289); + + ParamDefTable[284].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p31::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p31::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p31::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + globalPose = physx::PxTransform(physx::PxIdentity); + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + performDetailedOverlapTestForExtendedStructures = bool(true); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.velocityIterationCount = uint32_t(1); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + deleteChunksLeavingUserDefinedBB = bool(false); + deleteChunksEnteringUserDefinedBB = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p31::initReferences(void) +{ +} + +void DestructibleActorParam_0p31::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p31::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p31::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p32.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p32.cpp old mode 100644 new mode 100755 index fef0e16..a3a23ed --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p32.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p32.cpp @@ -1,8244 +1,8244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p32.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p32NS; - -const char* const DestructibleActorParam_0p32Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 294; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 85, - 96, 130, 159, 176, 199, 225, 239, 243, 267, 292, 293, 19, 21, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 84, 40, 41, - 42, 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, - 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 86, 87, 88, 89, 90, 91, 92, 93, - 94, 95, 97, 118, 119, 125, 126, 127, 128, 129, 98, 99, 100, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, - 131, 139, 140, 141, 142, 155, 156, 157, 158, 132, 133, 134, 135, 136, 137, 138, 143, - 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 160, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 161, 162, 163, 164, 177, 184, 189, 194, 195, 196, 197, - 198, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 190, 191, 192, 193, 200, 204, - 205, 206, 207, 223, 224, 201, 202, 203, 208, 209, 210, 211, 212, 213, 214, 215, 216, - 217, 218, 219, 220, 221, 222, 226, 227, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 228, 229, 240, 241, 242, 244, 245, 246, 247, 251, 255, 256, 257, 258, 259, 260, 266, - 248, 249, 250, 252, 253, 254, 261, 262, 263, 264, 265, 268, 269, 270, 271, 272, 276, - 280, 281, 282, 283, 284, 285, 291, 273, 274, 275, 277, 278, 279, 286, 287, 288, 289, - 290, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_TRANSFORM, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 24 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(60), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(67), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(72), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(81), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(86), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(90), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(96), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(97), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(106), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(114), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(134), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(139), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(155), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(167), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(179), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(183), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(191), 6 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(197), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(201), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(205), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(212), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(215), 15 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(230), 11 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(241), 2 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(243), 3 }, // structureSettings - { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay - { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(246), 12 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(258), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(261), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(264), 5 }, // defaultBehaviorGroup.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(269), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(270), 12 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(282), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(285), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(288), 5 }, // behaviorGroups[].groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB -}; - - -bool DestructibleActorParam_0p32::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p32::mBuiltFlagMutex; - -DestructibleActorParam_0p32::DestructibleActorParam_0p32(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p32FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p32::~DestructibleActorParam_0p32() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p32::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p32(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p32::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p32::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p32* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p32::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p32::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p32::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ -/* [1,0] - behaviorGroups.name */ - -void DestructibleActorParam_0p32::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p32::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the DestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the DestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); - HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); - HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); - HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); - HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); - HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.alwaysDrawScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); - HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; - ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); - ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; - ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); - HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); - ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=224, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.flags.eENABLE_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; - ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); - HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); - ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.velocityIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; - ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); - ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=238, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; - ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); - HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); - ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.useStressSolver" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; - ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); - HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); - ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverTimeDelay" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; - ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); - ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=242, longName="structureSettings.stressSolverMassThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; - ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); - HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); - ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=266, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); - ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=291, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksLeavingUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; - ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); - ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=293, longName="deleteChunksEnteringUserDefinedBB" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[293]; - ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); - HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); - ParamDefTable[293].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[34]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(16); - Children[16] = PDEF_PTR(17); - Children[17] = PDEF_PTR(18); - Children[18] = PDEF_PTR(20); - Children[19] = PDEF_PTR(22); - Children[20] = PDEF_PTR(23); - Children[21] = PDEF_PTR(24); - Children[22] = PDEF_PTR(85); - Children[23] = PDEF_PTR(96); - Children[24] = PDEF_PTR(130); - Children[25] = PDEF_PTR(159); - Children[26] = PDEF_PTR(176); - Children[27] = PDEF_PTR(199); - Children[28] = PDEF_PTR(225); - Children[29] = PDEF_PTR(239); - Children[30] = PDEF_PTR(243); - Children[31] = PDEF_PTR(267); - Children[32] = PDEF_PTR(292); - Children[33] = PDEF_PTR(293); - - ParamDefTable[0].setChildren(Children, 34); - } - - // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(19); - - ParamDefTable[18].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(21); - - ParamDefTable[20].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="destructibleParameters" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(29); - Children[5] = PDEF_PTR(30); - Children[6] = PDEF_PTR(31); - Children[7] = PDEF_PTR(32); - Children[8] = PDEF_PTR(33); - Children[9] = PDEF_PTR(34); - Children[10] = PDEF_PTR(35); - Children[11] = PDEF_PTR(36); - Children[12] = PDEF_PTR(37); - Children[13] = PDEF_PTR(38); - Children[14] = PDEF_PTR(39); - Children[15] = PDEF_PTR(47); - Children[16] = PDEF_PTR(48); - Children[17] = PDEF_PTR(49); - Children[18] = PDEF_PTR(50); - Children[19] = PDEF_PTR(56); - Children[20] = PDEF_PTR(81); - Children[21] = PDEF_PTR(82); - Children[22] = PDEF_PTR(83); - Children[23] = PDEF_PTR(84); - - ParamDefTable[24].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - Children[5] = PDEF_PTR(45); - Children[6] = PDEF_PTR(46); - - ParamDefTable[39].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - - ParamDefTable[50].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(69); - Children[8] = PDEF_PTR(74); - - ParamDefTable[56].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(65); - Children[2] = PDEF_PTR(66); - Children[3] = PDEF_PTR(67); - Children[4] = PDEF_PTR(68); - - ParamDefTable[63].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(70); - Children[1] = PDEF_PTR(71); - Children[2] = PDEF_PTR(72); - Children[3] = PDEF_PTR(73); - - ParamDefTable[69].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - - ParamDefTable[74].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=85, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(86); - - ParamDefTable[85].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=86, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - Children[5] = PDEF_PTR(92); - Children[6] = PDEF_PTR(93); - Children[7] = PDEF_PTR(94); - Children[8] = PDEF_PTR(95); - - ParamDefTable[86].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=96, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(118); - Children[2] = PDEF_PTR(119); - Children[3] = PDEF_PTR(125); - Children[4] = PDEF_PTR(126); - Children[5] = PDEF_PTR(127); - Children[6] = PDEF_PTR(128); - Children[7] = PDEF_PTR(129); - - ParamDefTable[96].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=97, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(99); - Children[2] = PDEF_PTR(100); - Children[3] = PDEF_PTR(101); - Children[4] = PDEF_PTR(102); - Children[5] = PDEF_PTR(103); - Children[6] = PDEF_PTR(104); - Children[7] = PDEF_PTR(105); - Children[8] = PDEF_PTR(106); - Children[9] = PDEF_PTR(107); - Children[10] = PDEF_PTR(108); - Children[11] = PDEF_PTR(109); - Children[12] = PDEF_PTR(110); - Children[13] = PDEF_PTR(111); - Children[14] = PDEF_PTR(112); - Children[15] = PDEF_PTR(113); - Children[16] = PDEF_PTR(114); - Children[17] = PDEF_PTR(115); - Children[18] = PDEF_PTR(116); - Children[19] = PDEF_PTR(117); - - ParamDefTable[97].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=119, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(120); - Children[1] = PDEF_PTR(121); - Children[2] = PDEF_PTR(122); - Children[3] = PDEF_PTR(123); - Children[4] = PDEF_PTR(124); - - ParamDefTable[119].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=130, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(131); - Children[1] = PDEF_PTR(139); - Children[2] = PDEF_PTR(140); - Children[3] = PDEF_PTR(141); - Children[4] = PDEF_PTR(142); - Children[5] = PDEF_PTR(155); - Children[6] = PDEF_PTR(156); - Children[7] = PDEF_PTR(157); - Children[8] = PDEF_PTR(158); - - ParamDefTable[130].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=131, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(132); - Children[1] = PDEF_PTR(133); - Children[2] = PDEF_PTR(134); - Children[3] = PDEF_PTR(135); - Children[4] = PDEF_PTR(136); - Children[5] = PDEF_PTR(137); - Children[6] = PDEF_PTR(138); - - ParamDefTable[131].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(143); - Children[1] = PDEF_PTR(144); - Children[2] = PDEF_PTR(145); - Children[3] = PDEF_PTR(146); - Children[4] = PDEF_PTR(147); - Children[5] = PDEF_PTR(148); - Children[6] = PDEF_PTR(149); - Children[7] = PDEF_PTR(150); - Children[8] = PDEF_PTR(151); - Children[9] = PDEF_PTR(152); - Children[10] = PDEF_PTR(153); - Children[11] = PDEF_PTR(154); - - ParamDefTable[142].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=159, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(160); - Children[1] = PDEF_PTR(165); - Children[2] = PDEF_PTR(166); - Children[3] = PDEF_PTR(167); - Children[4] = PDEF_PTR(168); - Children[5] = PDEF_PTR(169); - Children[6] = PDEF_PTR(170); - Children[7] = PDEF_PTR(171); - Children[8] = PDEF_PTR(172); - Children[9] = PDEF_PTR(173); - Children[10] = PDEF_PTR(174); - Children[11] = PDEF_PTR(175); - - ParamDefTable[159].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=160, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(161); - Children[1] = PDEF_PTR(162); - Children[2] = PDEF_PTR(163); - Children[3] = PDEF_PTR(164); - - ParamDefTable[160].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(177); - Children[1] = PDEF_PTR(184); - Children[2] = PDEF_PTR(189); - Children[3] = PDEF_PTR(194); - Children[4] = PDEF_PTR(195); - Children[5] = PDEF_PTR(196); - Children[6] = PDEF_PTR(197); - Children[7] = PDEF_PTR(198); - - ParamDefTable[176].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=177, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(178); - Children[1] = PDEF_PTR(179); - Children[2] = PDEF_PTR(180); - Children[3] = PDEF_PTR(181); - Children[4] = PDEF_PTR(182); - Children[5] = PDEF_PTR(183); - - ParamDefTable[177].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(185); - Children[1] = PDEF_PTR(186); - Children[2] = PDEF_PTR(187); - Children[3] = PDEF_PTR(188); - - ParamDefTable[184].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(190); - Children[1] = PDEF_PTR(191); - Children[2] = PDEF_PTR(192); - Children[3] = PDEF_PTR(193); - - ParamDefTable[189].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(200); - Children[1] = PDEF_PTR(204); - Children[2] = PDEF_PTR(205); - Children[3] = PDEF_PTR(206); - Children[4] = PDEF_PTR(207); - Children[5] = PDEF_PTR(223); - Children[6] = PDEF_PTR(224); - - ParamDefTable[199].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=200, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(201); - Children[1] = PDEF_PTR(202); - Children[2] = PDEF_PTR(203); - - ParamDefTable[200].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[15]; - Children[0] = PDEF_PTR(208); - Children[1] = PDEF_PTR(209); - Children[2] = PDEF_PTR(210); - Children[3] = PDEF_PTR(211); - Children[4] = PDEF_PTR(212); - Children[5] = PDEF_PTR(213); - Children[6] = PDEF_PTR(214); - Children[7] = PDEF_PTR(215); - Children[8] = PDEF_PTR(216); - Children[9] = PDEF_PTR(217); - Children[10] = PDEF_PTR(218); - Children[11] = PDEF_PTR(219); - Children[12] = PDEF_PTR(220); - Children[13] = PDEF_PTR(221); - Children[14] = PDEF_PTR(222); - - ParamDefTable[207].setChildren(Children, 15); - } - - // SetChildren for: nodeIndex=225, longName="p3BodyDescTemplate" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(226); - Children[1] = PDEF_PTR(227); - Children[2] = PDEF_PTR(230); - Children[3] = PDEF_PTR(231); - Children[4] = PDEF_PTR(232); - Children[5] = PDEF_PTR(233); - Children[6] = PDEF_PTR(234); - Children[7] = PDEF_PTR(235); - Children[8] = PDEF_PTR(236); - Children[9] = PDEF_PTR(237); - Children[10] = PDEF_PTR(238); - - ParamDefTable[225].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=227, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(228); - Children[1] = PDEF_PTR(229); - - ParamDefTable[227].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=239, longName="structureSettings" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(240); - Children[1] = PDEF_PTR(241); - Children[2] = PDEF_PTR(242); - - ParamDefTable[239].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=243, longName="defaultBehaviorGroup" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(244); - Children[1] = PDEF_PTR(245); - Children[2] = PDEF_PTR(246); - Children[3] = PDEF_PTR(247); - Children[4] = PDEF_PTR(251); - Children[5] = PDEF_PTR(255); - Children[6] = PDEF_PTR(256); - Children[7] = PDEF_PTR(257); - Children[8] = PDEF_PTR(258); - Children[9] = PDEF_PTR(259); - Children[10] = PDEF_PTR(260); - Children[11] = PDEF_PTR(266); - - ParamDefTable[243].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(248); - Children[1] = PDEF_PTR(249); - Children[2] = PDEF_PTR(250); - - ParamDefTable[247].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(252); - Children[1] = PDEF_PTR(253); - Children[2] = PDEF_PTR(254); - - ParamDefTable[251].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(261); - Children[1] = PDEF_PTR(262); - Children[2] = PDEF_PTR(263); - Children[3] = PDEF_PTR(264); - Children[4] = PDEF_PTR(265); - - ParamDefTable[260].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=267, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(268); - - ParamDefTable[267].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=268, longName="behaviorGroups[]" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(269); - Children[1] = PDEF_PTR(270); - Children[2] = PDEF_PTR(271); - Children[3] = PDEF_PTR(272); - Children[4] = PDEF_PTR(276); - Children[5] = PDEF_PTR(280); - Children[6] = PDEF_PTR(281); - Children[7] = PDEF_PTR(282); - Children[8] = PDEF_PTR(283); - Children[9] = PDEF_PTR(284); - Children[10] = PDEF_PTR(285); - Children[11] = PDEF_PTR(291); - - ParamDefTable[268].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=272, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(273); - Children[1] = PDEF_PTR(274); - Children[2] = PDEF_PTR(275); - - ParamDefTable[272].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(277); - Children[1] = PDEF_PTR(278); - Children[2] = PDEF_PTR(279); - - ParamDefTable[276].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=285, longName="behaviorGroups[].groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(286); - Children[1] = PDEF_PTR(287); - Children[2] = PDEF_PTR(288); - Children[3] = PDEF_PTR(289); - Children[4] = PDEF_PTR(290); - - ParamDefTable[285].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p32::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; -} - -void DestructibleActorParam_0p32::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p32::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - globalPose = physx::PxTransform(physx::PxIdentity); - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - performDetailedOverlapTestForExtendedStructures = bool(true); - keepPreviousFrameBoneBuffer = bool(false); - doNotCreateRenderable = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - keepVisibleBonesPacked = bool(true); - createChunkEvents = bool(false); - sleepVelocityFrameDecayConstant = float(1); - useHardSleeping = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - destructibleParameters.alwaysDrawScatterMesh = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.velocityIterationCount = uint32_t(1); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - structureSettings.useStressSolver = bool(false); - structureSettings.stressSolverTimeDelay = float(1.0); - structureSettings.stressSolverMassThreshold = float(0.0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); - defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); - defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); - defaultBehaviorGroup.userData = uint64_t(0); - deleteChunksLeavingUserDefinedBB = bool(false); - deleteChunksEnteringUserDefinedBB = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p32::initReferences(void) -{ -} - -void DestructibleActorParam_0p32::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } -} - -void DestructibleActorParam_0p32::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } -} - -void DestructibleActorParam_0p32::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p32.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p32NS; + +const char* const DestructibleActorParam_0p32Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 294; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 23, 24, 85, + 96, 130, 159, 176, 199, 225, 239, 243, 267, 292, 293, 19, 21, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 47, 48, 49, 50, 56, 81, 82, 83, 84, 40, 41, + 42, 43, 44, 45, 46, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63, 69, 74, 64, 65, + 66, 67, 68, 70, 71, 72, 73, 75, 76, 77, 78, 79, 80, 86, 87, 88, 89, 90, 91, 92, 93, + 94, 95, 97, 118, 119, 125, 126, 127, 128, 129, 98, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 121, 122, 123, 124, + 131, 139, 140, 141, 142, 155, 156, 157, 158, 132, 133, 134, 135, 136, 137, 138, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 160, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 161, 162, 163, 164, 177, 184, 189, 194, 195, 196, 197, + 198, 178, 179, 180, 181, 182, 183, 185, 186, 187, 188, 190, 191, 192, 193, 200, 204, + 205, 206, 207, 223, 224, 201, 202, 203, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 226, 227, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 228, 229, 240, 241, 242, 244, 245, 246, 247, 251, 255, 256, 257, 258, 259, 260, 266, + 248, 249, 250, 252, 253, 254, 261, 262, 263, 264, 265, 268, 269, 270, 271, 272, 276, + 280, 281, 282, 283, 284, 285, 291, 273, 274, 275, 277, 278, 279, 286, 287, 288, 289, + 290, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 34 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_TRANSFORM, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->performDetailedOverlapTestForExtendedStructures), NULL, 0 }, // performDetailedOverlapTestForExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->doNotCreateRenderable), NULL, 0 }, // doNotCreateRenderable + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepVisibleBonesPacked), NULL, 0 }, // keepVisibleBonesPacked + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(34), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(35), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->sleepVelocityFrameDecayConstant), NULL, 0 }, // sleepVelocityFrameDecayConstant + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useHardSleeping), NULL, 0 }, // useHardSleeping + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 24 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(60), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(67), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(72), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(81), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(86), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(90), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(96), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(97), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(106), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(114), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(134), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(139), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(155), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(167), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(179), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(183), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(191), 6 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(197), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(201), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(205), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(212), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(215), 15 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSOLVE_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eDETECT_CCD_CONTACT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(230), 11 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(241), 2 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eENABLE_CCD), NULL, 0 }, // p3BodyDescTemplate.flags.eENABLE_CCD + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->velocityIterationCount), NULL, 0 }, // p3BodyDescTemplate.velocityIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->structureSettings), CHILDREN(243), 3 }, // structureSettings + { TYPE_BOOL, false, (size_t)(&((StructureSettings_Type*)0)->useStressSolver), NULL, 0 }, // structureSettings.useStressSolver + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverTimeDelay), NULL, 0 }, // structureSettings.stressSolverTimeDelay + { TYPE_F32, false, (size_t)(&((StructureSettings_Type*)0)->stressSolverMassThreshold), NULL, 0 }, // structureSettings.stressSolverMassThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(246), 12 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(258), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(261), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(264), 5 }, // defaultBehaviorGroup.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // defaultBehaviorGroup.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // defaultBehaviorGroup.groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(269), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(270), 12 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(282), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(285), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->groupsMask), CHILDREN(288), 5 }, // behaviorGroups[].groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // behaviorGroups[].groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // behaviorGroups[].groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // behaviorGroups[].groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // behaviorGroups[].groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // behaviorGroups[].groupsMask.bits3 + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksLeavingUserDefinedBB), NULL, 0 }, // deleteChunksLeavingUserDefinedBB + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteChunksEnteringUserDefinedBB), NULL, 0 }, // deleteChunksEnteringUserDefinedBB +}; + + +bool DestructibleActorParam_0p32::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p32::mBuiltFlagMutex; + +DestructibleActorParam_0p32::DestructibleActorParam_0p32(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p32FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p32::~DestructibleActorParam_0p32() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p32::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p32(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p32::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p32::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p32* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p32::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p32::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p32::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ +/* [1,0] - behaviorGroups.name */ + +void DestructibleActorParam_0p32::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p32::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the DestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the MeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the DestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the MeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_TRANSFORM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="performDetailedOverlapTestForExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("performDetailedOverlapTestForExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When testing for chunk overlap with other destructibles in an extended structure (see formExtendedStructures), perform detailed collision test. Otherwise, just test AABBs.\nDefault = TRUE.\n", true); + HintTable[1].init("shortDescription", "When testing for chunk overlap with other destructibles, perform detailed collision test. Otherwise, just test AABBs.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="doNotCreateRenderable" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("doNotCreateRenderable", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, a renderable will not be created for the destructible actor. This prevents unnecessary updates when the APEX render API is not being used.", true); + HintTable[1].init("shortDescription", "If true, a renderable will not be created for the destructible actor", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="keepVisibleBonesPacked" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("keepVisibleBonesPacked", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameter passed into skinned ApexRenderMeshActor. If true, visible bone matrices are packed into the bone render buffer, and a per-actor vertex buffer is created to handle re-indexed bones.\nDefault value = true.\n", true); + HintTable[1].init("shortDescription", "Parameter passed into skinned ApexRenderMeshActor", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="sleepVelocityFrameDecayConstant" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("sleepVelocityFrameDecayConstant", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity). Roughly speaking,\n the number of frames for which past velocities have significance. A value of 1.0 (or less) gives no smoothing.", true); + HintTable[1].init("shortDescription", "Frame memory decay constant used for actor velocity smoothing. Valid range: [1.0,infinity).", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="useHardSleeping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("useHardSleeping", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, turn chunk islands kinematic when they sleep. These islands may be turned dynamic again if enough damage is applied.", true); + HintTable[1].init("shortDescription", "If true, turn chunk islands kinematic when they sleep.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[57].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.alwaysDrawScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); + HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see DestructibleDepthParameters).", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=206, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[206]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[206].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[207]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[207].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=208, longName="p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[208]; + ParamDef->init("eSOLVE_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver. ", true); + ParamDefTable[208].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=209, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[209]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[209].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=210, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[210]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[210].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=211, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[211]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[211].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=212, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[212]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[212].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=213, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[213]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[213].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=214, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[214]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[214].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=215, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[215]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[215].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=216, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[216]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[216].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=217, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[217]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[217].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=218, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[218]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[218].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=219, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[219]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[219].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=220, longName="p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[220]; + ParamDef->init("eDETECT_CCD_CONTACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This flag is used to indicate whether this pair generates CCD contacts. \n\nThe contacts will only be responded to if eSOLVE_CONTACT is enabled on this pair.\nThe scene must have PxSceneFlag::eENABLE_CCD enabled to use this feature.\nNon-static bodies of the pair should have PxRigidBodyFlag::eENABLE_CCD specified for this feature to work correctly.\nThis flag is not supported with trigger shapes. However, CCD trigger events can be emulated using non-trigger shapes \nand requesting eNOTIFY_TOUCH_FOUND and eNOTIFY_TOUCH_LOST and not raising eSOLVE_CONTACT on the pair.\n", true); + HintTable[1].init("shortDescription", "This flag is used to indicate whether this pair generates CCD contacts.", true); + ParamDefTable[220].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=221, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[221]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[221].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=222, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[222]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[222].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=223, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[223]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[223].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=224, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[224]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[224].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=225, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[225]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[225].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=226, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[226]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[226].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=227, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[227]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[227].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=228, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[228]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[228].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=229, longName="p3BodyDescTemplate.flags.eENABLE_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[229]; + ParamDef->init("eENABLE_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for the actor.\n If this flag is raised and swept integration is enabled on the scene, then this body will be simulated by the CCD system to ensure that collisions are not missed due to \n high-speed motion. Note, individual shape pairs still need to enable PxPairFlag::eDETECT_CCD_CONTACT in the collision filtering to enable the CCD to respond to \n individual interactions.", true); + HintTable[1].init("shortDescription", "Enables swept integration for the actor.", true); + ParamDefTable[229].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=230, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[230]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[230].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=231, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[231]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[231].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=232, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[232]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[232].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=233, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[233]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[233].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=234, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[234]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[234].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=235, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[235]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[235].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=236, longName="p3BodyDescTemplate.velocityIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[236]; + ParamDef->init("velocityIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the velocity solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the velocity solver iteration counts for the body", true); + ParamDefTable[236].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=237, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[237]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[237].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=238, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[238]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[238].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=239, longName="structureSettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[239]; + ParamDef->init("structureSettings", TYPE_STRUCT, "StructureSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains parameters that affect structure-wide settings.", true); + HintTable[2].init("shortDescription", "Contains parameters that affect structure-wide settings", true); + ParamDefTable[239].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=240, longName="structureSettings.useStressSolver" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[240]; + ParamDef->init("useStressSolver", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines whether to invoke the use of the stress solver. The stress solver is a self-checking mechanism\nemployed within the structure, with the purpose of detecting and breaking off overly-strained links to masses\nof chunks. Its behavior can be tweaked by customizing the parameters stressSolverTimeDelay and stressSolverMassThreshold.\n", true); + HintTable[1].init("shortDescription", "If true, the structure containing this actor will use the stress solver.", true); + ParamDefTable[240].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=241, longName="structureSettings.stressSolverTimeDelay" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[241]; + ParamDef->init("stressSolverTimeDelay", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the amount of time to run down until an identified overly-strained link breaks. From the time the stress\nsolver qualifies a link as being overly-strained, this value will be used to count down to the actual breaking-off\nevent being executed. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverTimeDelay of all actors in the structure.", true); + ParamDefTable[241].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=242, longName="structureSettings.stressSolverMassThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[242]; + ParamDef->init("stressSolverMassThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Determines the minimum threshold mass to meet before an indentified overly-strained link breaks. This mass threshold\nis part of the condition that the stress solver uses to qualify whether a link is overly-strained. The accumulated sum\nof the chunk masses that the link is supporting will be used against this value. This should always be some positive value.\n", true); + HintTable[1].init("shortDescription", "The structure containing this actor will use the minimum stressSolverMassThreshold of all actors in the structure.", true); + ParamDefTable[242].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=243, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[243]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[243].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=244, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[244]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[244].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=245, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[245]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[245].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=246, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[246]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[246].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[247]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[247].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=248, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[248]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[248].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=249, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[249]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[249].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=250, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[250]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[250].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[251]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[251].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=252, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[252]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[252].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=253, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[253]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[253].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=254, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[254]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[254].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=255, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[255]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[255].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=256, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[256]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[256].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=257, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[257]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[257].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=258, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[258]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[258].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=259, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[259]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[259].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[260]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[260].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=261, longName="defaultBehaviorGroup.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[261]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[261].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=262, longName="defaultBehaviorGroup.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[262]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[262].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=263, longName="defaultBehaviorGroup.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[263]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[263].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=264, longName="defaultBehaviorGroup.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[264]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[264].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=265, longName="defaultBehaviorGroup.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[265]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[265].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=266, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[266]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[266].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=267, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[267]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[267].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=268, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[268]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[268].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=269, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[269]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[269].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=270, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[270]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[270].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=271, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[271]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[271].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=272, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[272]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[272].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=273, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[273]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[273].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=274, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[274]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[274].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=275, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[275]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[275].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[276]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[276].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=277, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[277]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[277].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=278, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[278]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[278].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=279, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[279]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[279].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=280, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[280]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColorSpread, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[280].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=281, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[281]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[281].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=282, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[282]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[282].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=283, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[283]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[283].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=284, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[284]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[284].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=285, longName="behaviorGroups[].groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[285]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured", true); + ParamDefTable[285].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=286, longName="behaviorGroups[].groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[286]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[286].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=287, longName="behaviorGroups[].groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[287]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[287].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=288, longName="behaviorGroups[].groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[288]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[288].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=289, longName="behaviorGroups[].groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[289]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[289].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=290, longName="behaviorGroups[].groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[290]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[290].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=291, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[291]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[291].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=292, longName="deleteChunksLeavingUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[292]; + ParamDef->init("deleteChunksLeavingUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksLeavingUserDefinedBB' flag to true, then chunks that are leaving a bounding box marked as\n UserBoundingBoxFlags::LEAVE are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon leaving any user-defined bounding box.", true); + ParamDefTable[292].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=293, longName="deleteChunksEnteringUserDefinedBB" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[293]; + ParamDef->init("deleteChunksEnteringUserDefinedBB", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The user can specify arbitrary number of bounding boxes in the scene using ApexScene::addBoundingBox interface along with the flag, which marks a bounding box \n as either UserBoundingBoxFlags::ENTER or UserBoundingBoxFlags::LEAVE. If user also specifies 'deleteChunksEnteringUserDefinedBB' flag to true, then chunks that are entering a bounding box marked as\n UserBoundingBoxFlags::ENTER are going to be deleted. User can specify more complex deletion volumes by combining 2 types of bounding boxes.", true); + HintTable[1].init("shortDescription", "Whether or not the destructible chunks are going to be deleted upon entering any user-defined bounding box.", true); + ParamDefTable[293].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[34]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(16); + Children[16] = PDEF_PTR(17); + Children[17] = PDEF_PTR(18); + Children[18] = PDEF_PTR(20); + Children[19] = PDEF_PTR(22); + Children[20] = PDEF_PTR(23); + Children[21] = PDEF_PTR(24); + Children[22] = PDEF_PTR(85); + Children[23] = PDEF_PTR(96); + Children[24] = PDEF_PTR(130); + Children[25] = PDEF_PTR(159); + Children[26] = PDEF_PTR(176); + Children[27] = PDEF_PTR(199); + Children[28] = PDEF_PTR(225); + Children[29] = PDEF_PTR(239); + Children[30] = PDEF_PTR(243); + Children[31] = PDEF_PTR(267); + Children[32] = PDEF_PTR(292); + Children[33] = PDEF_PTR(293); + + ParamDefTable[0].setChildren(Children, 34); + } + + // SetChildren for: nodeIndex=18, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(19); + + ParamDefTable[18].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=20, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(21); + + ParamDefTable[20].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="destructibleParameters" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(29); + Children[5] = PDEF_PTR(30); + Children[6] = PDEF_PTR(31); + Children[7] = PDEF_PTR(32); + Children[8] = PDEF_PTR(33); + Children[9] = PDEF_PTR(34); + Children[10] = PDEF_PTR(35); + Children[11] = PDEF_PTR(36); + Children[12] = PDEF_PTR(37); + Children[13] = PDEF_PTR(38); + Children[14] = PDEF_PTR(39); + Children[15] = PDEF_PTR(47); + Children[16] = PDEF_PTR(48); + Children[17] = PDEF_PTR(49); + Children[18] = PDEF_PTR(50); + Children[19] = PDEF_PTR(56); + Children[20] = PDEF_PTR(81); + Children[21] = PDEF_PTR(82); + Children[22] = PDEF_PTR(83); + Children[23] = PDEF_PTR(84); + + ParamDefTable[24].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + Children[5] = PDEF_PTR(45); + Children[6] = PDEF_PTR(46); + + ParamDefTable[39].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + + ParamDefTable[50].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(69); + Children[8] = PDEF_PTR(74); + + ParamDefTable[56].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(65); + Children[2] = PDEF_PTR(66); + Children[3] = PDEF_PTR(67); + Children[4] = PDEF_PTR(68); + + ParamDefTable[63].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=69, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(70); + Children[1] = PDEF_PTR(71); + Children[2] = PDEF_PTR(72); + Children[3] = PDEF_PTR(73); + + ParamDefTable[69].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + + ParamDefTable[74].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=85, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(86); + + ParamDefTable[85].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=86, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + Children[5] = PDEF_PTR(92); + Children[6] = PDEF_PTR(93); + Children[7] = PDEF_PTR(94); + Children[8] = PDEF_PTR(95); + + ParamDefTable[86].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=96, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(118); + Children[2] = PDEF_PTR(119); + Children[3] = PDEF_PTR(125); + Children[4] = PDEF_PTR(126); + Children[5] = PDEF_PTR(127); + Children[6] = PDEF_PTR(128); + Children[7] = PDEF_PTR(129); + + ParamDefTable[96].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=97, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(99); + Children[2] = PDEF_PTR(100); + Children[3] = PDEF_PTR(101); + Children[4] = PDEF_PTR(102); + Children[5] = PDEF_PTR(103); + Children[6] = PDEF_PTR(104); + Children[7] = PDEF_PTR(105); + Children[8] = PDEF_PTR(106); + Children[9] = PDEF_PTR(107); + Children[10] = PDEF_PTR(108); + Children[11] = PDEF_PTR(109); + Children[12] = PDEF_PTR(110); + Children[13] = PDEF_PTR(111); + Children[14] = PDEF_PTR(112); + Children[15] = PDEF_PTR(113); + Children[16] = PDEF_PTR(114); + Children[17] = PDEF_PTR(115); + Children[18] = PDEF_PTR(116); + Children[19] = PDEF_PTR(117); + + ParamDefTable[97].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=119, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(120); + Children[1] = PDEF_PTR(121); + Children[2] = PDEF_PTR(122); + Children[3] = PDEF_PTR(123); + Children[4] = PDEF_PTR(124); + + ParamDefTable[119].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=130, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(131); + Children[1] = PDEF_PTR(139); + Children[2] = PDEF_PTR(140); + Children[3] = PDEF_PTR(141); + Children[4] = PDEF_PTR(142); + Children[5] = PDEF_PTR(155); + Children[6] = PDEF_PTR(156); + Children[7] = PDEF_PTR(157); + Children[8] = PDEF_PTR(158); + + ParamDefTable[130].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=131, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(132); + Children[1] = PDEF_PTR(133); + Children[2] = PDEF_PTR(134); + Children[3] = PDEF_PTR(135); + Children[4] = PDEF_PTR(136); + Children[5] = PDEF_PTR(137); + Children[6] = PDEF_PTR(138); + + ParamDefTable[131].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=142, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(143); + Children[1] = PDEF_PTR(144); + Children[2] = PDEF_PTR(145); + Children[3] = PDEF_PTR(146); + Children[4] = PDEF_PTR(147); + Children[5] = PDEF_PTR(148); + Children[6] = PDEF_PTR(149); + Children[7] = PDEF_PTR(150); + Children[8] = PDEF_PTR(151); + Children[9] = PDEF_PTR(152); + Children[10] = PDEF_PTR(153); + Children[11] = PDEF_PTR(154); + + ParamDefTable[142].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=159, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(160); + Children[1] = PDEF_PTR(165); + Children[2] = PDEF_PTR(166); + Children[3] = PDEF_PTR(167); + Children[4] = PDEF_PTR(168); + Children[5] = PDEF_PTR(169); + Children[6] = PDEF_PTR(170); + Children[7] = PDEF_PTR(171); + Children[8] = PDEF_PTR(172); + Children[9] = PDEF_PTR(173); + Children[10] = PDEF_PTR(174); + Children[11] = PDEF_PTR(175); + + ParamDefTable[159].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=160, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(161); + Children[1] = PDEF_PTR(162); + Children[2] = PDEF_PTR(163); + Children[3] = PDEF_PTR(164); + + ParamDefTable[160].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=176, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(177); + Children[1] = PDEF_PTR(184); + Children[2] = PDEF_PTR(189); + Children[3] = PDEF_PTR(194); + Children[4] = PDEF_PTR(195); + Children[5] = PDEF_PTR(196); + Children[6] = PDEF_PTR(197); + Children[7] = PDEF_PTR(198); + + ParamDefTable[176].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=177, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(178); + Children[1] = PDEF_PTR(179); + Children[2] = PDEF_PTR(180); + Children[3] = PDEF_PTR(181); + Children[4] = PDEF_PTR(182); + Children[5] = PDEF_PTR(183); + + ParamDefTable[177].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=184, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(185); + Children[1] = PDEF_PTR(186); + Children[2] = PDEF_PTR(187); + Children[3] = PDEF_PTR(188); + + ParamDefTable[184].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=189, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(190); + Children[1] = PDEF_PTR(191); + Children[2] = PDEF_PTR(192); + Children[3] = PDEF_PTR(193); + + ParamDefTable[189].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=199, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(200); + Children[1] = PDEF_PTR(204); + Children[2] = PDEF_PTR(205); + Children[3] = PDEF_PTR(206); + Children[4] = PDEF_PTR(207); + Children[5] = PDEF_PTR(223); + Children[6] = PDEF_PTR(224); + + ParamDefTable[199].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=200, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(201); + Children[1] = PDEF_PTR(202); + Children[2] = PDEF_PTR(203); + + ParamDefTable[200].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=207, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[15]; + Children[0] = PDEF_PTR(208); + Children[1] = PDEF_PTR(209); + Children[2] = PDEF_PTR(210); + Children[3] = PDEF_PTR(211); + Children[4] = PDEF_PTR(212); + Children[5] = PDEF_PTR(213); + Children[6] = PDEF_PTR(214); + Children[7] = PDEF_PTR(215); + Children[8] = PDEF_PTR(216); + Children[9] = PDEF_PTR(217); + Children[10] = PDEF_PTR(218); + Children[11] = PDEF_PTR(219); + Children[12] = PDEF_PTR(220); + Children[13] = PDEF_PTR(221); + Children[14] = PDEF_PTR(222); + + ParamDefTable[207].setChildren(Children, 15); + } + + // SetChildren for: nodeIndex=225, longName="p3BodyDescTemplate" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(226); + Children[1] = PDEF_PTR(227); + Children[2] = PDEF_PTR(230); + Children[3] = PDEF_PTR(231); + Children[4] = PDEF_PTR(232); + Children[5] = PDEF_PTR(233); + Children[6] = PDEF_PTR(234); + Children[7] = PDEF_PTR(235); + Children[8] = PDEF_PTR(236); + Children[9] = PDEF_PTR(237); + Children[10] = PDEF_PTR(238); + + ParamDefTable[225].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=227, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(228); + Children[1] = PDEF_PTR(229); + + ParamDefTable[227].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=239, longName="structureSettings" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(240); + Children[1] = PDEF_PTR(241); + Children[2] = PDEF_PTR(242); + + ParamDefTable[239].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=243, longName="defaultBehaviorGroup" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(244); + Children[1] = PDEF_PTR(245); + Children[2] = PDEF_PTR(246); + Children[3] = PDEF_PTR(247); + Children[4] = PDEF_PTR(251); + Children[5] = PDEF_PTR(255); + Children[6] = PDEF_PTR(256); + Children[7] = PDEF_PTR(257); + Children[8] = PDEF_PTR(258); + Children[9] = PDEF_PTR(259); + Children[10] = PDEF_PTR(260); + Children[11] = PDEF_PTR(266); + + ParamDefTable[243].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=247, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(248); + Children[1] = PDEF_PTR(249); + Children[2] = PDEF_PTR(250); + + ParamDefTable[247].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=251, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(252); + Children[1] = PDEF_PTR(253); + Children[2] = PDEF_PTR(254); + + ParamDefTable[251].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=260, longName="defaultBehaviorGroup.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(261); + Children[1] = PDEF_PTR(262); + Children[2] = PDEF_PTR(263); + Children[3] = PDEF_PTR(264); + Children[4] = PDEF_PTR(265); + + ParamDefTable[260].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=267, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(268); + + ParamDefTable[267].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=268, longName="behaviorGroups[]" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(269); + Children[1] = PDEF_PTR(270); + Children[2] = PDEF_PTR(271); + Children[3] = PDEF_PTR(272); + Children[4] = PDEF_PTR(276); + Children[5] = PDEF_PTR(280); + Children[6] = PDEF_PTR(281); + Children[7] = PDEF_PTR(282); + Children[8] = PDEF_PTR(283); + Children[9] = PDEF_PTR(284); + Children[10] = PDEF_PTR(285); + Children[11] = PDEF_PTR(291); + + ParamDefTable[268].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=272, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(273); + Children[1] = PDEF_PTR(274); + Children[2] = PDEF_PTR(275); + + ParamDefTable[272].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=276, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(277); + Children[1] = PDEF_PTR(278); + Children[2] = PDEF_PTR(279); + + ParamDefTable[276].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=285, longName="behaviorGroups[].groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(286); + Children[1] = PDEF_PTR(287); + Children[2] = PDEF_PTR(288); + Children[3] = PDEF_PTR(289); + Children[4] = PDEF_PTR(290); + + ParamDefTable[285].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p32::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; +} + +void DestructibleActorParam_0p32::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p32::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + globalPose = physx::PxTransform(physx::PxIdentity); + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + performDetailedOverlapTestForExtendedStructures = bool(true); + keepPreviousFrameBoneBuffer = bool(false); + doNotCreateRenderable = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + keepVisibleBonesPacked = bool(true); + createChunkEvents = bool(false); + sleepVelocityFrameDecayConstant = float(1); + useHardSleeping = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + destructibleParameters.alwaysDrawScatterMesh = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eSOLVE_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eDETECT_CCD_CONTACT = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.flags.eENABLE_CCD = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.velocityIterationCount = uint32_t(1); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + structureSettings.useStressSolver = bool(false); + structureSettings.stressSolverTimeDelay = float(1.0); + structureSettings.stressSolverMassThreshold = float(0.0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.groupsMask.useGroupsMask = bool(false); + defaultBehaviorGroup.groupsMask.bits0 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits1 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits2 = uint32_t(0); + defaultBehaviorGroup.groupsMask.bits3 = uint32_t(0); + defaultBehaviorGroup.userData = uint64_t(0); + deleteChunksLeavingUserDefinedBB = bool(false); + deleteChunksEnteringUserDefinedBB = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p32::initReferences(void) +{ +} + +void DestructibleActorParam_0p32::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } +} + +void DestructibleActorParam_0p32::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } +} + +void DestructibleActorParam_0p32::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p4.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p4.cpp old mode 100644 new mode 100755 index b0eb681..b201d8f --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p4.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p4.cpp @@ -1,5775 +1,5775 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p4.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p4NS; - -const char* const DestructibleActorParam_0p4Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 203; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 49, 59, 93, 122, 139, 163, 191, 13, - 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, - 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 60, 81, 82, 88, 89, 90, 91, 92, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 83, 84, 85, 86, 87, 94, 102, 103, 104, 105, 118, 119, - 120, 121, 95, 96, 97, 98, 99, 100, 101, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 123, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 124, 125, - 126, 127, 140, 148, 153, 158, 159, 160, 161, 162, 141, 142, 143, 144, 145, 146, 147, - 149, 150, 151, 152, 154, 155, 156, 157, 164, 168, 169, 170, 171, 189, 190, 165, 166, - 167, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 188, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 194, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 21 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(21), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(22), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(23), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(44), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(50), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(55), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(56), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(64), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(72), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(92), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(97), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(106), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(113), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(125), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(137), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(141), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(149), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(156), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(160), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U16, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // p3ShapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(164), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(171), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(174), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(191), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(201), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p4::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p4::mBuiltFlagMutex; - -DestructibleActorParam_0p4::DestructibleActorParam_0p4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p4FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p4::~DestructibleActorParam_0p4() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p4::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p4(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p4::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p4::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p4* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p4::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p4::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p4::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p4::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. \n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits. \n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact. \nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact. \nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds. \n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact). \n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair). \n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects. \n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling. \n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature. \nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. \nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature. \nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body. \nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(14); - Children[13] = PDEF_PTR(16); - Children[14] = PDEF_PTR(49); - Children[15] = PDEF_PTR(59); - Children[16] = PDEF_PTR(93); - Children[17] = PDEF_PTR(122); - Children[18] = PDEF_PTR(139); - Children[19] = PDEF_PTR(163); - Children[20] = PDEF_PTR(191); - - ParamDefTable[0].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=12, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(13); - - ParamDefTable[12].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=14, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(17); - Children[1] = PDEF_PTR(18); - Children[2] = PDEF_PTR(19); - Children[3] = PDEF_PTR(20); - Children[4] = PDEF_PTR(21); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(23); - Children[7] = PDEF_PTR(24); - Children[8] = PDEF_PTR(25); - Children[9] = PDEF_PTR(26); - Children[10] = PDEF_PTR(27); - Children[11] = PDEF_PTR(28); - Children[12] = PDEF_PTR(29); - Children[13] = PDEF_PTR(30); - Children[14] = PDEF_PTR(31); - Children[15] = PDEF_PTR(32); - Children[16] = PDEF_PTR(33); - Children[17] = PDEF_PTR(34); - Children[18] = PDEF_PTR(41); - Children[19] = PDEF_PTR(42); - Children[20] = PDEF_PTR(43); - - ParamDefTable[16].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(35); - Children[1] = PDEF_PTR(36); - Children[2] = PDEF_PTR(37); - Children[3] = PDEF_PTR(38); - Children[4] = PDEF_PTR(39); - Children[5] = PDEF_PTR(40); - - ParamDefTable[34].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(44); - Children[1] = PDEF_PTR(45); - Children[2] = PDEF_PTR(46); - Children[3] = PDEF_PTR(47); - Children[4] = PDEF_PTR(48); - - ParamDefTable[43].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=49, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - Children[5] = PDEF_PTR(56); - Children[6] = PDEF_PTR(57); - Children[7] = PDEF_PTR(58); - - ParamDefTable[50].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=59, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(81); - Children[2] = PDEF_PTR(82); - Children[3] = PDEF_PTR(88); - Children[4] = PDEF_PTR(89); - Children[5] = PDEF_PTR(90); - Children[6] = PDEF_PTR(91); - Children[7] = PDEF_PTR(92); - - ParamDefTable[59].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=60, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(61); - Children[1] = PDEF_PTR(62); - Children[2] = PDEF_PTR(63); - Children[3] = PDEF_PTR(64); - Children[4] = PDEF_PTR(65); - Children[5] = PDEF_PTR(66); - Children[6] = PDEF_PTR(67); - Children[7] = PDEF_PTR(68); - Children[8] = PDEF_PTR(69); - Children[9] = PDEF_PTR(70); - Children[10] = PDEF_PTR(71); - Children[11] = PDEF_PTR(72); - Children[12] = PDEF_PTR(73); - Children[13] = PDEF_PTR(74); - Children[14] = PDEF_PTR(75); - Children[15] = PDEF_PTR(76); - Children[16] = PDEF_PTR(77); - Children[17] = PDEF_PTR(78); - Children[18] = PDEF_PTR(79); - Children[19] = PDEF_PTR(80); - - ParamDefTable[60].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=82, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(83); - Children[1] = PDEF_PTR(84); - Children[2] = PDEF_PTR(85); - Children[3] = PDEF_PTR(86); - Children[4] = PDEF_PTR(87); - - ParamDefTable[82].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=93, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(94); - Children[1] = PDEF_PTR(102); - Children[2] = PDEF_PTR(103); - Children[3] = PDEF_PTR(104); - Children[4] = PDEF_PTR(105); - Children[5] = PDEF_PTR(118); - Children[6] = PDEF_PTR(119); - Children[7] = PDEF_PTR(120); - Children[8] = PDEF_PTR(121); - - ParamDefTable[93].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=94, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(95); - Children[1] = PDEF_PTR(96); - Children[2] = PDEF_PTR(97); - Children[3] = PDEF_PTR(98); - Children[4] = PDEF_PTR(99); - Children[5] = PDEF_PTR(100); - Children[6] = PDEF_PTR(101); - - ParamDefTable[94].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(106); - Children[1] = PDEF_PTR(107); - Children[2] = PDEF_PTR(108); - Children[3] = PDEF_PTR(109); - Children[4] = PDEF_PTR(110); - Children[5] = PDEF_PTR(111); - Children[6] = PDEF_PTR(112); - Children[7] = PDEF_PTR(113); - Children[8] = PDEF_PTR(114); - Children[9] = PDEF_PTR(115); - Children[10] = PDEF_PTR(116); - Children[11] = PDEF_PTR(117); - - ParamDefTable[105].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=122, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(123); - Children[1] = PDEF_PTR(128); - Children[2] = PDEF_PTR(129); - Children[3] = PDEF_PTR(130); - Children[4] = PDEF_PTR(131); - Children[5] = PDEF_PTR(132); - Children[6] = PDEF_PTR(133); - Children[7] = PDEF_PTR(134); - Children[8] = PDEF_PTR(135); - Children[9] = PDEF_PTR(136); - Children[10] = PDEF_PTR(137); - Children[11] = PDEF_PTR(138); - - ParamDefTable[122].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=123, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(124); - Children[1] = PDEF_PTR(125); - Children[2] = PDEF_PTR(126); - Children[3] = PDEF_PTR(127); - - ParamDefTable[123].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=139, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(140); - Children[1] = PDEF_PTR(148); - Children[2] = PDEF_PTR(153); - Children[3] = PDEF_PTR(158); - Children[4] = PDEF_PTR(159); - Children[5] = PDEF_PTR(160); - Children[6] = PDEF_PTR(161); - Children[7] = PDEF_PTR(162); - - ParamDefTable[139].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=140, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(141); - Children[1] = PDEF_PTR(142); - Children[2] = PDEF_PTR(143); - Children[3] = PDEF_PTR(144); - Children[4] = PDEF_PTR(145); - Children[5] = PDEF_PTR(146); - Children[6] = PDEF_PTR(147); - - ParamDefTable[140].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(149); - Children[1] = PDEF_PTR(150); - Children[2] = PDEF_PTR(151); - Children[3] = PDEF_PTR(152); - - ParamDefTable[148].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(154); - Children[1] = PDEF_PTR(155); - Children[2] = PDEF_PTR(156); - Children[3] = PDEF_PTR(157); - - ParamDefTable[153].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=163, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(164); - Children[1] = PDEF_PTR(168); - Children[2] = PDEF_PTR(169); - Children[3] = PDEF_PTR(170); - Children[4] = PDEF_PTR(171); - Children[5] = PDEF_PTR(189); - Children[6] = PDEF_PTR(190); - - ParamDefTable[163].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=164, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(165); - Children[1] = PDEF_PTR(166); - Children[2] = PDEF_PTR(167); - - ParamDefTable[164].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(172); - Children[1] = PDEF_PTR(173); - Children[2] = PDEF_PTR(174); - Children[3] = PDEF_PTR(175); - Children[4] = PDEF_PTR(176); - Children[5] = PDEF_PTR(177); - Children[6] = PDEF_PTR(178); - Children[7] = PDEF_PTR(179); - Children[8] = PDEF_PTR(180); - Children[9] = PDEF_PTR(181); - Children[10] = PDEF_PTR(182); - Children[11] = PDEF_PTR(183); - Children[12] = PDEF_PTR(184); - Children[13] = PDEF_PTR(185); - Children[14] = PDEF_PTR(186); - Children[15] = PDEF_PTR(187); - Children[16] = PDEF_PTR(188); - - ParamDefTable[171].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=191, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(192); - Children[1] = PDEF_PTR(193); - Children[2] = PDEF_PTR(195); - Children[3] = PDEF_PTR(196); - Children[4] = PDEF_PTR(197); - Children[5] = PDEF_PTR(198); - Children[6] = PDEF_PTR(199); - Children[7] = PDEF_PTR(200); - Children[8] = PDEF_PTR(201); - Children[9] = PDEF_PTR(202); - - ParamDefTable[191].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=193, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(194); - - ParamDefTable[193].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p4::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p4::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p4::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - massScaleExponent = float(0.5); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.materialIndex = uint16_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p4::initReferences(void) -{ -} - -void DestructibleActorParam_0p4::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p4::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p4::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p4.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p4NS; + +const char* const DestructibleActorParam_0p4Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 203; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 49, 59, 93, 122, 139, 163, 191, 13, + 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, + 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 60, 81, 82, 88, 89, 90, 91, 92, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 83, 84, 85, 86, 87, 94, 102, 103, 104, 105, 118, 119, + 120, 121, 95, 96, 97, 98, 99, 100, 101, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 123, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 124, 125, + 126, 127, 140, 148, 153, 158, 159, 160, 161, 162, 141, 142, 143, 144, 145, 146, 147, + 149, 150, 151, 152, 154, 155, 156, 157, 164, 168, 169, 170, 171, 189, 190, 165, 166, + 167, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 192, 193, 195, 196, 197, 198, 199, 200, 201, 202, 194, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 21 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(21), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(22), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(23), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(44), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(50), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(55), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(56), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(64), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(72), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(92), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(97), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(106), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(113), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(125), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(137), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(141), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(149), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(156), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(160), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U16, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // p3ShapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(164), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(171), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(174), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(191), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(201), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p4::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p4::mBuiltFlagMutex; + +DestructibleActorParam_0p4::DestructibleActorParam_0p4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p4FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p4::~DestructibleActorParam_0p4() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p4::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p4(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p4::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p4::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p4* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p4::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p4::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p4::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p4::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. \n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits. \n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact. \nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact. \nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds. \n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact). \n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair). \n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair. \n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects. \n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling. \n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature. \nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. \nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature. \nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body. \nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(14); + Children[13] = PDEF_PTR(16); + Children[14] = PDEF_PTR(49); + Children[15] = PDEF_PTR(59); + Children[16] = PDEF_PTR(93); + Children[17] = PDEF_PTR(122); + Children[18] = PDEF_PTR(139); + Children[19] = PDEF_PTR(163); + Children[20] = PDEF_PTR(191); + + ParamDefTable[0].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=12, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(13); + + ParamDefTable[12].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=14, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(17); + Children[1] = PDEF_PTR(18); + Children[2] = PDEF_PTR(19); + Children[3] = PDEF_PTR(20); + Children[4] = PDEF_PTR(21); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(23); + Children[7] = PDEF_PTR(24); + Children[8] = PDEF_PTR(25); + Children[9] = PDEF_PTR(26); + Children[10] = PDEF_PTR(27); + Children[11] = PDEF_PTR(28); + Children[12] = PDEF_PTR(29); + Children[13] = PDEF_PTR(30); + Children[14] = PDEF_PTR(31); + Children[15] = PDEF_PTR(32); + Children[16] = PDEF_PTR(33); + Children[17] = PDEF_PTR(34); + Children[18] = PDEF_PTR(41); + Children[19] = PDEF_PTR(42); + Children[20] = PDEF_PTR(43); + + ParamDefTable[16].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(35); + Children[1] = PDEF_PTR(36); + Children[2] = PDEF_PTR(37); + Children[3] = PDEF_PTR(38); + Children[4] = PDEF_PTR(39); + Children[5] = PDEF_PTR(40); + + ParamDefTable[34].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(44); + Children[1] = PDEF_PTR(45); + Children[2] = PDEF_PTR(46); + Children[3] = PDEF_PTR(47); + Children[4] = PDEF_PTR(48); + + ParamDefTable[43].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=49, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + Children[5] = PDEF_PTR(56); + Children[6] = PDEF_PTR(57); + Children[7] = PDEF_PTR(58); + + ParamDefTable[50].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=59, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(81); + Children[2] = PDEF_PTR(82); + Children[3] = PDEF_PTR(88); + Children[4] = PDEF_PTR(89); + Children[5] = PDEF_PTR(90); + Children[6] = PDEF_PTR(91); + Children[7] = PDEF_PTR(92); + + ParamDefTable[59].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=60, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(61); + Children[1] = PDEF_PTR(62); + Children[2] = PDEF_PTR(63); + Children[3] = PDEF_PTR(64); + Children[4] = PDEF_PTR(65); + Children[5] = PDEF_PTR(66); + Children[6] = PDEF_PTR(67); + Children[7] = PDEF_PTR(68); + Children[8] = PDEF_PTR(69); + Children[9] = PDEF_PTR(70); + Children[10] = PDEF_PTR(71); + Children[11] = PDEF_PTR(72); + Children[12] = PDEF_PTR(73); + Children[13] = PDEF_PTR(74); + Children[14] = PDEF_PTR(75); + Children[15] = PDEF_PTR(76); + Children[16] = PDEF_PTR(77); + Children[17] = PDEF_PTR(78); + Children[18] = PDEF_PTR(79); + Children[19] = PDEF_PTR(80); + + ParamDefTable[60].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=82, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(83); + Children[1] = PDEF_PTR(84); + Children[2] = PDEF_PTR(85); + Children[3] = PDEF_PTR(86); + Children[4] = PDEF_PTR(87); + + ParamDefTable[82].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=93, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(94); + Children[1] = PDEF_PTR(102); + Children[2] = PDEF_PTR(103); + Children[3] = PDEF_PTR(104); + Children[4] = PDEF_PTR(105); + Children[5] = PDEF_PTR(118); + Children[6] = PDEF_PTR(119); + Children[7] = PDEF_PTR(120); + Children[8] = PDEF_PTR(121); + + ParamDefTable[93].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=94, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(95); + Children[1] = PDEF_PTR(96); + Children[2] = PDEF_PTR(97); + Children[3] = PDEF_PTR(98); + Children[4] = PDEF_PTR(99); + Children[5] = PDEF_PTR(100); + Children[6] = PDEF_PTR(101); + + ParamDefTable[94].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=105, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(106); + Children[1] = PDEF_PTR(107); + Children[2] = PDEF_PTR(108); + Children[3] = PDEF_PTR(109); + Children[4] = PDEF_PTR(110); + Children[5] = PDEF_PTR(111); + Children[6] = PDEF_PTR(112); + Children[7] = PDEF_PTR(113); + Children[8] = PDEF_PTR(114); + Children[9] = PDEF_PTR(115); + Children[10] = PDEF_PTR(116); + Children[11] = PDEF_PTR(117); + + ParamDefTable[105].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=122, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(123); + Children[1] = PDEF_PTR(128); + Children[2] = PDEF_PTR(129); + Children[3] = PDEF_PTR(130); + Children[4] = PDEF_PTR(131); + Children[5] = PDEF_PTR(132); + Children[6] = PDEF_PTR(133); + Children[7] = PDEF_PTR(134); + Children[8] = PDEF_PTR(135); + Children[9] = PDEF_PTR(136); + Children[10] = PDEF_PTR(137); + Children[11] = PDEF_PTR(138); + + ParamDefTable[122].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=123, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(124); + Children[1] = PDEF_PTR(125); + Children[2] = PDEF_PTR(126); + Children[3] = PDEF_PTR(127); + + ParamDefTable[123].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=139, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(140); + Children[1] = PDEF_PTR(148); + Children[2] = PDEF_PTR(153); + Children[3] = PDEF_PTR(158); + Children[4] = PDEF_PTR(159); + Children[5] = PDEF_PTR(160); + Children[6] = PDEF_PTR(161); + Children[7] = PDEF_PTR(162); + + ParamDefTable[139].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=140, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(141); + Children[1] = PDEF_PTR(142); + Children[2] = PDEF_PTR(143); + Children[3] = PDEF_PTR(144); + Children[4] = PDEF_PTR(145); + Children[5] = PDEF_PTR(146); + Children[6] = PDEF_PTR(147); + + ParamDefTable[140].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(149); + Children[1] = PDEF_PTR(150); + Children[2] = PDEF_PTR(151); + Children[3] = PDEF_PTR(152); + + ParamDefTable[148].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(154); + Children[1] = PDEF_PTR(155); + Children[2] = PDEF_PTR(156); + Children[3] = PDEF_PTR(157); + + ParamDefTable[153].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=163, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(164); + Children[1] = PDEF_PTR(168); + Children[2] = PDEF_PTR(169); + Children[3] = PDEF_PTR(170); + Children[4] = PDEF_PTR(171); + Children[5] = PDEF_PTR(189); + Children[6] = PDEF_PTR(190); + + ParamDefTable[163].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=164, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(165); + Children[1] = PDEF_PTR(166); + Children[2] = PDEF_PTR(167); + + ParamDefTable[164].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(172); + Children[1] = PDEF_PTR(173); + Children[2] = PDEF_PTR(174); + Children[3] = PDEF_PTR(175); + Children[4] = PDEF_PTR(176); + Children[5] = PDEF_PTR(177); + Children[6] = PDEF_PTR(178); + Children[7] = PDEF_PTR(179); + Children[8] = PDEF_PTR(180); + Children[9] = PDEF_PTR(181); + Children[10] = PDEF_PTR(182); + Children[11] = PDEF_PTR(183); + Children[12] = PDEF_PTR(184); + Children[13] = PDEF_PTR(185); + Children[14] = PDEF_PTR(186); + Children[15] = PDEF_PTR(187); + Children[16] = PDEF_PTR(188); + + ParamDefTable[171].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=191, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(192); + Children[1] = PDEF_PTR(193); + Children[2] = PDEF_PTR(195); + Children[3] = PDEF_PTR(196); + Children[4] = PDEF_PTR(197); + Children[5] = PDEF_PTR(198); + Children[6] = PDEF_PTR(199); + Children[7] = PDEF_PTR(200); + Children[8] = PDEF_PTR(201); + Children[9] = PDEF_PTR(202); + + ParamDefTable[191].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=193, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(194); + + ParamDefTable[193].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p4::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p4::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p4::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + massScaleExponent = float(0.5); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.materialIndex = uint16_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p4::initReferences(void) +{ +} + +void DestructibleActorParam_0p4::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p4::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p4::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p5.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p5.cpp old mode 100644 new mode 100755 index e8220f4..7139f59 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p5.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p5.cpp @@ -1,5748 +1,5748 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p5.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p5NS; - -const char* const DestructibleActorParam_0p5Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 202; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 47, 58, 92, 121, 138, 162, 190, 12, 14, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39, 40, 41, 33, - 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, - 80, 81, 87, 88, 89, 90, 91, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 93, 101, 102, 103, 104, 117, 118, 119, - 120, 94, 95, 96, 97, 98, 99, 100, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 122, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 123, 124, 125, - 126, 139, 147, 152, 157, 158, 159, 160, 161, 140, 141, 142, 143, 144, 145, 146, 148, - 149, 150, 151, 153, 154, 155, 156, 163, 167, 168, 169, 170, 188, 189, 164, 165, 166, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 191, 192, 194, 195, 196, 197, 198, 199, 200, 201, 193, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 20 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(20), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(21), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(22), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(42), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(48), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(53), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(54), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(140), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(155), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U16, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // p3ShapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(163), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(170), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(173), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(190), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(200), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p5::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p5::mBuiltFlagMutex; - -DestructibleActorParam_0p5::DestructibleActorParam_0p5(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p5FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p5::~DestructibleActorParam_0p5() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p5::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p5(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p5::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p5::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p5* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p5::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p5::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p5::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p5::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p5::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(13); - Children[12] = PDEF_PTR(15); - Children[13] = PDEF_PTR(47); - Children[14] = PDEF_PTR(58); - Children[15] = PDEF_PTR(92); - Children[16] = PDEF_PTR(121); - Children[17] = PDEF_PTR(138); - Children[18] = PDEF_PTR(162); - Children[19] = PDEF_PTR(190); - - ParamDefTable[0].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=11, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(12); - - ParamDefTable[11].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=13, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(14); - - ParamDefTable[13].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=15, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(16); - Children[1] = PDEF_PTR(17); - Children[2] = PDEF_PTR(18); - Children[3] = PDEF_PTR(19); - Children[4] = PDEF_PTR(20); - Children[5] = PDEF_PTR(21); - Children[6] = PDEF_PTR(22); - Children[7] = PDEF_PTR(23); - Children[8] = PDEF_PTR(24); - Children[9] = PDEF_PTR(25); - Children[10] = PDEF_PTR(26); - Children[11] = PDEF_PTR(27); - Children[12] = PDEF_PTR(28); - Children[13] = PDEF_PTR(29); - Children[14] = PDEF_PTR(30); - Children[15] = PDEF_PTR(31); - Children[16] = PDEF_PTR(32); - Children[17] = PDEF_PTR(39); - Children[18] = PDEF_PTR(40); - Children[19] = PDEF_PTR(41); - - ParamDefTable[15].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - Children[3] = PDEF_PTR(36); - Children[4] = PDEF_PTR(37); - Children[5] = PDEF_PTR(38); - - ParamDefTable[32].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(42); - Children[1] = PDEF_PTR(43); - Children[2] = PDEF_PTR(44); - Children[3] = PDEF_PTR(45); - Children[4] = PDEF_PTR(46); - - ParamDefTable[41].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=47, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(48); - - ParamDefTable[47].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=48, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(49); - Children[1] = PDEF_PTR(50); - Children[2] = PDEF_PTR(51); - Children[3] = PDEF_PTR(52); - Children[4] = PDEF_PTR(53); - Children[5] = PDEF_PTR(54); - Children[6] = PDEF_PTR(55); - Children[7] = PDEF_PTR(56); - Children[8] = PDEF_PTR(57); - - ParamDefTable[48].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=58, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(59); - Children[1] = PDEF_PTR(80); - Children[2] = PDEF_PTR(81); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - Children[5] = PDEF_PTR(89); - Children[6] = PDEF_PTR(90); - Children[7] = PDEF_PTR(91); - - ParamDefTable[58].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=59, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - Children[8] = PDEF_PTR(68); - Children[9] = PDEF_PTR(69); - Children[10] = PDEF_PTR(70); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(75); - Children[16] = PDEF_PTR(76); - Children[17] = PDEF_PTR(77); - Children[18] = PDEF_PTR(78); - Children[19] = PDEF_PTR(79); - - ParamDefTable[59].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=81, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(82); - Children[1] = PDEF_PTR(83); - Children[2] = PDEF_PTR(84); - Children[3] = PDEF_PTR(85); - Children[4] = PDEF_PTR(86); - - ParamDefTable[81].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=92, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(93); - Children[1] = PDEF_PTR(101); - Children[2] = PDEF_PTR(102); - Children[3] = PDEF_PTR(103); - Children[4] = PDEF_PTR(104); - Children[5] = PDEF_PTR(117); - Children[6] = PDEF_PTR(118); - Children[7] = PDEF_PTR(119); - Children[8] = PDEF_PTR(120); - - ParamDefTable[92].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=93, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(94); - Children[1] = PDEF_PTR(95); - Children[2] = PDEF_PTR(96); - Children[3] = PDEF_PTR(97); - Children[4] = PDEF_PTR(98); - Children[5] = PDEF_PTR(99); - Children[6] = PDEF_PTR(100); - - ParamDefTable[93].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - Children[4] = PDEF_PTR(109); - Children[5] = PDEF_PTR(110); - Children[6] = PDEF_PTR(111); - Children[7] = PDEF_PTR(112); - Children[8] = PDEF_PTR(113); - Children[9] = PDEF_PTR(114); - Children[10] = PDEF_PTR(115); - Children[11] = PDEF_PTR(116); - - ParamDefTable[104].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=121, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(122); - Children[1] = PDEF_PTR(127); - Children[2] = PDEF_PTR(128); - Children[3] = PDEF_PTR(129); - Children[4] = PDEF_PTR(130); - Children[5] = PDEF_PTR(131); - Children[6] = PDEF_PTR(132); - Children[7] = PDEF_PTR(133); - Children[8] = PDEF_PTR(134); - Children[9] = PDEF_PTR(135); - Children[10] = PDEF_PTR(136); - Children[11] = PDEF_PTR(137); - - ParamDefTable[121].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=122, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(123); - Children[1] = PDEF_PTR(124); - Children[2] = PDEF_PTR(125); - Children[3] = PDEF_PTR(126); - - ParamDefTable[122].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=138, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(139); - Children[1] = PDEF_PTR(147); - Children[2] = PDEF_PTR(152); - Children[3] = PDEF_PTR(157); - Children[4] = PDEF_PTR(158); - Children[5] = PDEF_PTR(159); - Children[6] = PDEF_PTR(160); - Children[7] = PDEF_PTR(161); - - ParamDefTable[138].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=139, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(140); - Children[1] = PDEF_PTR(141); - Children[2] = PDEF_PTR(142); - Children[3] = PDEF_PTR(143); - Children[4] = PDEF_PTR(144); - Children[5] = PDEF_PTR(145); - Children[6] = PDEF_PTR(146); - - ParamDefTable[139].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(148); - Children[1] = PDEF_PTR(149); - Children[2] = PDEF_PTR(150); - Children[3] = PDEF_PTR(151); - - ParamDefTable[147].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=162, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(163); - Children[1] = PDEF_PTR(167); - Children[2] = PDEF_PTR(168); - Children[3] = PDEF_PTR(169); - Children[4] = PDEF_PTR(170); - Children[5] = PDEF_PTR(188); - Children[6] = PDEF_PTR(189); - - ParamDefTable[162].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=163, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(164); - Children[1] = PDEF_PTR(165); - Children[2] = PDEF_PTR(166); - - ParamDefTable[163].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(171); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(176); - Children[6] = PDEF_PTR(177); - Children[7] = PDEF_PTR(178); - Children[8] = PDEF_PTR(179); - Children[9] = PDEF_PTR(180); - Children[10] = PDEF_PTR(181); - Children[11] = PDEF_PTR(182); - Children[12] = PDEF_PTR(183); - Children[13] = PDEF_PTR(184); - Children[14] = PDEF_PTR(185); - Children[15] = PDEF_PTR(186); - Children[16] = PDEF_PTR(187); - - ParamDefTable[170].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=190, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(191); - Children[1] = PDEF_PTR(192); - Children[2] = PDEF_PTR(194); - Children[3] = PDEF_PTR(195); - Children[4] = PDEF_PTR(196); - Children[5] = PDEF_PTR(197); - Children[6] = PDEF_PTR(198); - Children[7] = PDEF_PTR(199); - Children[8] = PDEF_PTR(200); - Children[9] = PDEF_PTR(201); - - ParamDefTable[190].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=192, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(193); - - ParamDefTable[192].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p5::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p5::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p5::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.materialIndex = uint16_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p5::initReferences(void) -{ -} - -void DestructibleActorParam_0p5::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p5::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p5::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p5.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p5NS; + +const char* const DestructibleActorParam_0p5Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 202; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 47, 58, 92, 121, 138, 162, 190, 12, 14, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39, 40, 41, 33, + 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, + 80, 81, 87, 88, 89, 90, 91, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 93, 101, 102, 103, 104, 117, 118, 119, + 120, 94, 95, 96, 97, 98, 99, 100, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 122, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 123, 124, 125, + 126, 139, 147, 152, 157, 158, 159, 160, 161, 140, 141, 142, 143, 144, 145, 146, 148, + 149, 150, 151, 153, 154, 155, 156, 163, 167, 168, 169, 170, 188, 189, 164, 165, 166, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 191, 192, 194, 195, 196, 197, 198, 199, 200, 201, 193, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 20 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(20), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(21), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(22), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(42), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(48), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(53), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(54), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(140), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(155), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U16, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // p3ShapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(163), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(170), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(173), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(190), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(200), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p5::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p5::mBuiltFlagMutex; + +DestructibleActorParam_0p5::DestructibleActorParam_0p5(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p5FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p5::~DestructibleActorParam_0p5() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p5::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p5(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p5::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p5::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p5* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p5::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p5::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p5::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p5::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p5::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(13); + Children[12] = PDEF_PTR(15); + Children[13] = PDEF_PTR(47); + Children[14] = PDEF_PTR(58); + Children[15] = PDEF_PTR(92); + Children[16] = PDEF_PTR(121); + Children[17] = PDEF_PTR(138); + Children[18] = PDEF_PTR(162); + Children[19] = PDEF_PTR(190); + + ParamDefTable[0].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=11, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(12); + + ParamDefTable[11].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=13, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(14); + + ParamDefTable[13].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=15, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(16); + Children[1] = PDEF_PTR(17); + Children[2] = PDEF_PTR(18); + Children[3] = PDEF_PTR(19); + Children[4] = PDEF_PTR(20); + Children[5] = PDEF_PTR(21); + Children[6] = PDEF_PTR(22); + Children[7] = PDEF_PTR(23); + Children[8] = PDEF_PTR(24); + Children[9] = PDEF_PTR(25); + Children[10] = PDEF_PTR(26); + Children[11] = PDEF_PTR(27); + Children[12] = PDEF_PTR(28); + Children[13] = PDEF_PTR(29); + Children[14] = PDEF_PTR(30); + Children[15] = PDEF_PTR(31); + Children[16] = PDEF_PTR(32); + Children[17] = PDEF_PTR(39); + Children[18] = PDEF_PTR(40); + Children[19] = PDEF_PTR(41); + + ParamDefTable[15].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + Children[3] = PDEF_PTR(36); + Children[4] = PDEF_PTR(37); + Children[5] = PDEF_PTR(38); + + ParamDefTable[32].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(42); + Children[1] = PDEF_PTR(43); + Children[2] = PDEF_PTR(44); + Children[3] = PDEF_PTR(45); + Children[4] = PDEF_PTR(46); + + ParamDefTable[41].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=47, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(48); + + ParamDefTable[47].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=48, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(49); + Children[1] = PDEF_PTR(50); + Children[2] = PDEF_PTR(51); + Children[3] = PDEF_PTR(52); + Children[4] = PDEF_PTR(53); + Children[5] = PDEF_PTR(54); + Children[6] = PDEF_PTR(55); + Children[7] = PDEF_PTR(56); + Children[8] = PDEF_PTR(57); + + ParamDefTable[48].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=58, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(59); + Children[1] = PDEF_PTR(80); + Children[2] = PDEF_PTR(81); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + Children[5] = PDEF_PTR(89); + Children[6] = PDEF_PTR(90); + Children[7] = PDEF_PTR(91); + + ParamDefTable[58].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=59, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + Children[8] = PDEF_PTR(68); + Children[9] = PDEF_PTR(69); + Children[10] = PDEF_PTR(70); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(75); + Children[16] = PDEF_PTR(76); + Children[17] = PDEF_PTR(77); + Children[18] = PDEF_PTR(78); + Children[19] = PDEF_PTR(79); + + ParamDefTable[59].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=81, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(82); + Children[1] = PDEF_PTR(83); + Children[2] = PDEF_PTR(84); + Children[3] = PDEF_PTR(85); + Children[4] = PDEF_PTR(86); + + ParamDefTable[81].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=92, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(93); + Children[1] = PDEF_PTR(101); + Children[2] = PDEF_PTR(102); + Children[3] = PDEF_PTR(103); + Children[4] = PDEF_PTR(104); + Children[5] = PDEF_PTR(117); + Children[6] = PDEF_PTR(118); + Children[7] = PDEF_PTR(119); + Children[8] = PDEF_PTR(120); + + ParamDefTable[92].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=93, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(94); + Children[1] = PDEF_PTR(95); + Children[2] = PDEF_PTR(96); + Children[3] = PDEF_PTR(97); + Children[4] = PDEF_PTR(98); + Children[5] = PDEF_PTR(99); + Children[6] = PDEF_PTR(100); + + ParamDefTable[93].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + Children[4] = PDEF_PTR(109); + Children[5] = PDEF_PTR(110); + Children[6] = PDEF_PTR(111); + Children[7] = PDEF_PTR(112); + Children[8] = PDEF_PTR(113); + Children[9] = PDEF_PTR(114); + Children[10] = PDEF_PTR(115); + Children[11] = PDEF_PTR(116); + + ParamDefTable[104].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=121, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(122); + Children[1] = PDEF_PTR(127); + Children[2] = PDEF_PTR(128); + Children[3] = PDEF_PTR(129); + Children[4] = PDEF_PTR(130); + Children[5] = PDEF_PTR(131); + Children[6] = PDEF_PTR(132); + Children[7] = PDEF_PTR(133); + Children[8] = PDEF_PTR(134); + Children[9] = PDEF_PTR(135); + Children[10] = PDEF_PTR(136); + Children[11] = PDEF_PTR(137); + + ParamDefTable[121].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=122, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(123); + Children[1] = PDEF_PTR(124); + Children[2] = PDEF_PTR(125); + Children[3] = PDEF_PTR(126); + + ParamDefTable[122].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=138, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(139); + Children[1] = PDEF_PTR(147); + Children[2] = PDEF_PTR(152); + Children[3] = PDEF_PTR(157); + Children[4] = PDEF_PTR(158); + Children[5] = PDEF_PTR(159); + Children[6] = PDEF_PTR(160); + Children[7] = PDEF_PTR(161); + + ParamDefTable[138].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=139, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(140); + Children[1] = PDEF_PTR(141); + Children[2] = PDEF_PTR(142); + Children[3] = PDEF_PTR(143); + Children[4] = PDEF_PTR(144); + Children[5] = PDEF_PTR(145); + Children[6] = PDEF_PTR(146); + + ParamDefTable[139].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(148); + Children[1] = PDEF_PTR(149); + Children[2] = PDEF_PTR(150); + Children[3] = PDEF_PTR(151); + + ParamDefTable[147].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=162, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(163); + Children[1] = PDEF_PTR(167); + Children[2] = PDEF_PTR(168); + Children[3] = PDEF_PTR(169); + Children[4] = PDEF_PTR(170); + Children[5] = PDEF_PTR(188); + Children[6] = PDEF_PTR(189); + + ParamDefTable[162].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=163, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(164); + Children[1] = PDEF_PTR(165); + Children[2] = PDEF_PTR(166); + + ParamDefTable[163].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(171); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(176); + Children[6] = PDEF_PTR(177); + Children[7] = PDEF_PTR(178); + Children[8] = PDEF_PTR(179); + Children[9] = PDEF_PTR(180); + Children[10] = PDEF_PTR(181); + Children[11] = PDEF_PTR(182); + Children[12] = PDEF_PTR(183); + Children[13] = PDEF_PTR(184); + Children[14] = PDEF_PTR(185); + Children[15] = PDEF_PTR(186); + Children[16] = PDEF_PTR(187); + + ParamDefTable[170].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=190, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(191); + Children[1] = PDEF_PTR(192); + Children[2] = PDEF_PTR(194); + Children[3] = PDEF_PTR(195); + Children[4] = PDEF_PTR(196); + Children[5] = PDEF_PTR(197); + Children[6] = PDEF_PTR(198); + Children[7] = PDEF_PTR(199); + Children[8] = PDEF_PTR(200); + Children[9] = PDEF_PTR(201); + + ParamDefTable[190].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=192, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(193); + + ParamDefTable[192].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p5::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p5::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p5::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.materialIndex = uint16_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p5::initReferences(void) +{ +} + +void DestructibleActorParam_0p5::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p5::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p5::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p6.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p6.cpp old mode 100644 new mode 100755 index aa73014..a113890 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p6.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p6.cpp @@ -1,5748 +1,5748 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p6.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p6NS; - -const char* const DestructibleActorParam_0p6Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 202; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 47, 58, 92, 121, 138, 162, 190, 12, 14, - 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39, 40, 41, 33, - 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, - 80, 81, 87, 88, 89, 90, 91, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 93, 101, 102, 103, 104, 117, 118, 119, - 120, 94, 95, 96, 97, 98, 99, 100, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 122, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 123, 124, 125, - 126, 139, 147, 152, 157, 158, 159, 160, 161, 140, 141, 142, 143, 144, 145, 146, 148, - 149, 150, 151, 153, 154, 155, 156, 163, 167, 168, 169, 170, 188, 189, 164, 165, 166, - 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, - 191, 192, 194, 195, 196, 197, 198, 199, 200, 201, 193, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 20 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(20), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(21), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(22), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(42), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(48), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(53), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(54), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(140), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(155), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(163), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(170), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(173), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(190), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(200), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p6::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p6::mBuiltFlagMutex; - -DestructibleActorParam_0p6::DestructibleActorParam_0p6(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p6FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p6::~DestructibleActorParam_0p6() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p6::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p6(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p6::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p6::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p6* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p6::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p6::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p6::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p6::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p6::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(13); - Children[12] = PDEF_PTR(15); - Children[13] = PDEF_PTR(47); - Children[14] = PDEF_PTR(58); - Children[15] = PDEF_PTR(92); - Children[16] = PDEF_PTR(121); - Children[17] = PDEF_PTR(138); - Children[18] = PDEF_PTR(162); - Children[19] = PDEF_PTR(190); - - ParamDefTable[0].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=11, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(12); - - ParamDefTable[11].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=13, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(14); - - ParamDefTable[13].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=15, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(16); - Children[1] = PDEF_PTR(17); - Children[2] = PDEF_PTR(18); - Children[3] = PDEF_PTR(19); - Children[4] = PDEF_PTR(20); - Children[5] = PDEF_PTR(21); - Children[6] = PDEF_PTR(22); - Children[7] = PDEF_PTR(23); - Children[8] = PDEF_PTR(24); - Children[9] = PDEF_PTR(25); - Children[10] = PDEF_PTR(26); - Children[11] = PDEF_PTR(27); - Children[12] = PDEF_PTR(28); - Children[13] = PDEF_PTR(29); - Children[14] = PDEF_PTR(30); - Children[15] = PDEF_PTR(31); - Children[16] = PDEF_PTR(32); - Children[17] = PDEF_PTR(39); - Children[18] = PDEF_PTR(40); - Children[19] = PDEF_PTR(41); - - ParamDefTable[15].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - Children[3] = PDEF_PTR(36); - Children[4] = PDEF_PTR(37); - Children[5] = PDEF_PTR(38); - - ParamDefTable[32].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(42); - Children[1] = PDEF_PTR(43); - Children[2] = PDEF_PTR(44); - Children[3] = PDEF_PTR(45); - Children[4] = PDEF_PTR(46); - - ParamDefTable[41].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=47, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(48); - - ParamDefTable[47].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=48, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(49); - Children[1] = PDEF_PTR(50); - Children[2] = PDEF_PTR(51); - Children[3] = PDEF_PTR(52); - Children[4] = PDEF_PTR(53); - Children[5] = PDEF_PTR(54); - Children[6] = PDEF_PTR(55); - Children[7] = PDEF_PTR(56); - Children[8] = PDEF_PTR(57); - - ParamDefTable[48].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=58, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(59); - Children[1] = PDEF_PTR(80); - Children[2] = PDEF_PTR(81); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - Children[5] = PDEF_PTR(89); - Children[6] = PDEF_PTR(90); - Children[7] = PDEF_PTR(91); - - ParamDefTable[58].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=59, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - Children[8] = PDEF_PTR(68); - Children[9] = PDEF_PTR(69); - Children[10] = PDEF_PTR(70); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(75); - Children[16] = PDEF_PTR(76); - Children[17] = PDEF_PTR(77); - Children[18] = PDEF_PTR(78); - Children[19] = PDEF_PTR(79); - - ParamDefTable[59].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=81, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(82); - Children[1] = PDEF_PTR(83); - Children[2] = PDEF_PTR(84); - Children[3] = PDEF_PTR(85); - Children[4] = PDEF_PTR(86); - - ParamDefTable[81].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=92, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(93); - Children[1] = PDEF_PTR(101); - Children[2] = PDEF_PTR(102); - Children[3] = PDEF_PTR(103); - Children[4] = PDEF_PTR(104); - Children[5] = PDEF_PTR(117); - Children[6] = PDEF_PTR(118); - Children[7] = PDEF_PTR(119); - Children[8] = PDEF_PTR(120); - - ParamDefTable[92].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=93, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(94); - Children[1] = PDEF_PTR(95); - Children[2] = PDEF_PTR(96); - Children[3] = PDEF_PTR(97); - Children[4] = PDEF_PTR(98); - Children[5] = PDEF_PTR(99); - Children[6] = PDEF_PTR(100); - - ParamDefTable[93].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - Children[4] = PDEF_PTR(109); - Children[5] = PDEF_PTR(110); - Children[6] = PDEF_PTR(111); - Children[7] = PDEF_PTR(112); - Children[8] = PDEF_PTR(113); - Children[9] = PDEF_PTR(114); - Children[10] = PDEF_PTR(115); - Children[11] = PDEF_PTR(116); - - ParamDefTable[104].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=121, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(122); - Children[1] = PDEF_PTR(127); - Children[2] = PDEF_PTR(128); - Children[3] = PDEF_PTR(129); - Children[4] = PDEF_PTR(130); - Children[5] = PDEF_PTR(131); - Children[6] = PDEF_PTR(132); - Children[7] = PDEF_PTR(133); - Children[8] = PDEF_PTR(134); - Children[9] = PDEF_PTR(135); - Children[10] = PDEF_PTR(136); - Children[11] = PDEF_PTR(137); - - ParamDefTable[121].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=122, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(123); - Children[1] = PDEF_PTR(124); - Children[2] = PDEF_PTR(125); - Children[3] = PDEF_PTR(126); - - ParamDefTable[122].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=138, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(139); - Children[1] = PDEF_PTR(147); - Children[2] = PDEF_PTR(152); - Children[3] = PDEF_PTR(157); - Children[4] = PDEF_PTR(158); - Children[5] = PDEF_PTR(159); - Children[6] = PDEF_PTR(160); - Children[7] = PDEF_PTR(161); - - ParamDefTable[138].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=139, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(140); - Children[1] = PDEF_PTR(141); - Children[2] = PDEF_PTR(142); - Children[3] = PDEF_PTR(143); - Children[4] = PDEF_PTR(144); - Children[5] = PDEF_PTR(145); - Children[6] = PDEF_PTR(146); - - ParamDefTable[139].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(148); - Children[1] = PDEF_PTR(149); - Children[2] = PDEF_PTR(150); - Children[3] = PDEF_PTR(151); - - ParamDefTable[147].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(153); - Children[1] = PDEF_PTR(154); - Children[2] = PDEF_PTR(155); - Children[3] = PDEF_PTR(156); - - ParamDefTable[152].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=162, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(163); - Children[1] = PDEF_PTR(167); - Children[2] = PDEF_PTR(168); - Children[3] = PDEF_PTR(169); - Children[4] = PDEF_PTR(170); - Children[5] = PDEF_PTR(188); - Children[6] = PDEF_PTR(189); - - ParamDefTable[162].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=163, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(164); - Children[1] = PDEF_PTR(165); - Children[2] = PDEF_PTR(166); - - ParamDefTable[163].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(171); - Children[1] = PDEF_PTR(172); - Children[2] = PDEF_PTR(173); - Children[3] = PDEF_PTR(174); - Children[4] = PDEF_PTR(175); - Children[5] = PDEF_PTR(176); - Children[6] = PDEF_PTR(177); - Children[7] = PDEF_PTR(178); - Children[8] = PDEF_PTR(179); - Children[9] = PDEF_PTR(180); - Children[10] = PDEF_PTR(181); - Children[11] = PDEF_PTR(182); - Children[12] = PDEF_PTR(183); - Children[13] = PDEF_PTR(184); - Children[14] = PDEF_PTR(185); - Children[15] = PDEF_PTR(186); - Children[16] = PDEF_PTR(187); - - ParamDefTable[170].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=190, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(191); - Children[1] = PDEF_PTR(192); - Children[2] = PDEF_PTR(194); - Children[3] = PDEF_PTR(195); - Children[4] = PDEF_PTR(196); - Children[5] = PDEF_PTR(197); - Children[6] = PDEF_PTR(198); - Children[7] = PDEF_PTR(199); - Children[8] = PDEF_PTR(200); - Children[9] = PDEF_PTR(201); - - ParamDefTable[190].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=192, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(193); - - ParamDefTable[192].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p6::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p6::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p6::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p6::initReferences(void) -{ -} - -void DestructibleActorParam_0p6::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p6::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p6::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p6.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p6NS; + +const char* const DestructibleActorParam_0p6Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 202; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 47, 58, 92, 121, 138, 162, 190, 12, 14, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 39, 40, 41, 33, + 34, 35, 36, 37, 38, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59, + 80, 81, 87, 88, 89, 90, 91, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 82, 83, 84, 85, 86, 93, 101, 102, 103, 104, 117, 118, 119, + 120, 94, 95, 96, 97, 98, 99, 100, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 122, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 123, 124, 125, + 126, 139, 147, 152, 157, 158, 159, 160, 161, 140, 141, 142, 143, 144, 145, 146, 148, + 149, 150, 151, 153, 154, 155, 156, 163, 167, 168, 169, 170, 188, 189, 164, 165, 166, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 191, 192, 194, 195, 196, 197, 198, 199, 200, 201, 193, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 20 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(20), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(21), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(22), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(42), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(48), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(53), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(54), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(63), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(71), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(91), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(96), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(105), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(112), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(124), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(136), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(140), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(148), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(155), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(163), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(170), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(173), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(190), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(200), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p6::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p6::mBuiltFlagMutex; + +DestructibleActorParam_0p6::DestructibleActorParam_0p6(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p6FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p6::~DestructibleActorParam_0p6() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p6::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p6(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p6::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p6::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p6* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p6::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p6::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p6::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p6::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p6::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(13); + Children[12] = PDEF_PTR(15); + Children[13] = PDEF_PTR(47); + Children[14] = PDEF_PTR(58); + Children[15] = PDEF_PTR(92); + Children[16] = PDEF_PTR(121); + Children[17] = PDEF_PTR(138); + Children[18] = PDEF_PTR(162); + Children[19] = PDEF_PTR(190); + + ParamDefTable[0].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=11, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(12); + + ParamDefTable[11].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=13, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(14); + + ParamDefTable[13].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=15, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(16); + Children[1] = PDEF_PTR(17); + Children[2] = PDEF_PTR(18); + Children[3] = PDEF_PTR(19); + Children[4] = PDEF_PTR(20); + Children[5] = PDEF_PTR(21); + Children[6] = PDEF_PTR(22); + Children[7] = PDEF_PTR(23); + Children[8] = PDEF_PTR(24); + Children[9] = PDEF_PTR(25); + Children[10] = PDEF_PTR(26); + Children[11] = PDEF_PTR(27); + Children[12] = PDEF_PTR(28); + Children[13] = PDEF_PTR(29); + Children[14] = PDEF_PTR(30); + Children[15] = PDEF_PTR(31); + Children[16] = PDEF_PTR(32); + Children[17] = PDEF_PTR(39); + Children[18] = PDEF_PTR(40); + Children[19] = PDEF_PTR(41); + + ParamDefTable[15].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=32, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + Children[3] = PDEF_PTR(36); + Children[4] = PDEF_PTR(37); + Children[5] = PDEF_PTR(38); + + ParamDefTable[32].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(42); + Children[1] = PDEF_PTR(43); + Children[2] = PDEF_PTR(44); + Children[3] = PDEF_PTR(45); + Children[4] = PDEF_PTR(46); + + ParamDefTable[41].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=47, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(48); + + ParamDefTable[47].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=48, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(49); + Children[1] = PDEF_PTR(50); + Children[2] = PDEF_PTR(51); + Children[3] = PDEF_PTR(52); + Children[4] = PDEF_PTR(53); + Children[5] = PDEF_PTR(54); + Children[6] = PDEF_PTR(55); + Children[7] = PDEF_PTR(56); + Children[8] = PDEF_PTR(57); + + ParamDefTable[48].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=58, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(59); + Children[1] = PDEF_PTR(80); + Children[2] = PDEF_PTR(81); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + Children[5] = PDEF_PTR(89); + Children[6] = PDEF_PTR(90); + Children[7] = PDEF_PTR(91); + + ParamDefTable[58].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=59, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + Children[8] = PDEF_PTR(68); + Children[9] = PDEF_PTR(69); + Children[10] = PDEF_PTR(70); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(75); + Children[16] = PDEF_PTR(76); + Children[17] = PDEF_PTR(77); + Children[18] = PDEF_PTR(78); + Children[19] = PDEF_PTR(79); + + ParamDefTable[59].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=81, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(82); + Children[1] = PDEF_PTR(83); + Children[2] = PDEF_PTR(84); + Children[3] = PDEF_PTR(85); + Children[4] = PDEF_PTR(86); + + ParamDefTable[81].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=92, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(93); + Children[1] = PDEF_PTR(101); + Children[2] = PDEF_PTR(102); + Children[3] = PDEF_PTR(103); + Children[4] = PDEF_PTR(104); + Children[5] = PDEF_PTR(117); + Children[6] = PDEF_PTR(118); + Children[7] = PDEF_PTR(119); + Children[8] = PDEF_PTR(120); + + ParamDefTable[92].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=93, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(94); + Children[1] = PDEF_PTR(95); + Children[2] = PDEF_PTR(96); + Children[3] = PDEF_PTR(97); + Children[4] = PDEF_PTR(98); + Children[5] = PDEF_PTR(99); + Children[6] = PDEF_PTR(100); + + ParamDefTable[93].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=104, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + Children[4] = PDEF_PTR(109); + Children[5] = PDEF_PTR(110); + Children[6] = PDEF_PTR(111); + Children[7] = PDEF_PTR(112); + Children[8] = PDEF_PTR(113); + Children[9] = PDEF_PTR(114); + Children[10] = PDEF_PTR(115); + Children[11] = PDEF_PTR(116); + + ParamDefTable[104].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=121, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(122); + Children[1] = PDEF_PTR(127); + Children[2] = PDEF_PTR(128); + Children[3] = PDEF_PTR(129); + Children[4] = PDEF_PTR(130); + Children[5] = PDEF_PTR(131); + Children[6] = PDEF_PTR(132); + Children[7] = PDEF_PTR(133); + Children[8] = PDEF_PTR(134); + Children[9] = PDEF_PTR(135); + Children[10] = PDEF_PTR(136); + Children[11] = PDEF_PTR(137); + + ParamDefTable[121].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=122, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(123); + Children[1] = PDEF_PTR(124); + Children[2] = PDEF_PTR(125); + Children[3] = PDEF_PTR(126); + + ParamDefTable[122].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=138, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(139); + Children[1] = PDEF_PTR(147); + Children[2] = PDEF_PTR(152); + Children[3] = PDEF_PTR(157); + Children[4] = PDEF_PTR(158); + Children[5] = PDEF_PTR(159); + Children[6] = PDEF_PTR(160); + Children[7] = PDEF_PTR(161); + + ParamDefTable[138].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=139, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(140); + Children[1] = PDEF_PTR(141); + Children[2] = PDEF_PTR(142); + Children[3] = PDEF_PTR(143); + Children[4] = PDEF_PTR(144); + Children[5] = PDEF_PTR(145); + Children[6] = PDEF_PTR(146); + + ParamDefTable[139].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=147, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(148); + Children[1] = PDEF_PTR(149); + Children[2] = PDEF_PTR(150); + Children[3] = PDEF_PTR(151); + + ParamDefTable[147].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=152, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(153); + Children[1] = PDEF_PTR(154); + Children[2] = PDEF_PTR(155); + Children[3] = PDEF_PTR(156); + + ParamDefTable[152].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=162, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(163); + Children[1] = PDEF_PTR(167); + Children[2] = PDEF_PTR(168); + Children[3] = PDEF_PTR(169); + Children[4] = PDEF_PTR(170); + Children[5] = PDEF_PTR(188); + Children[6] = PDEF_PTR(189); + + ParamDefTable[162].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=163, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(164); + Children[1] = PDEF_PTR(165); + Children[2] = PDEF_PTR(166); + + ParamDefTable[163].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=170, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(171); + Children[1] = PDEF_PTR(172); + Children[2] = PDEF_PTR(173); + Children[3] = PDEF_PTR(174); + Children[4] = PDEF_PTR(175); + Children[5] = PDEF_PTR(176); + Children[6] = PDEF_PTR(177); + Children[7] = PDEF_PTR(178); + Children[8] = PDEF_PTR(179); + Children[9] = PDEF_PTR(180); + Children[10] = PDEF_PTR(181); + Children[11] = PDEF_PTR(182); + Children[12] = PDEF_PTR(183); + Children[13] = PDEF_PTR(184); + Children[14] = PDEF_PTR(185); + Children[15] = PDEF_PTR(186); + Children[16] = PDEF_PTR(187); + + ParamDefTable[170].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=190, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(191); + Children[1] = PDEF_PTR(192); + Children[2] = PDEF_PTR(194); + Children[3] = PDEF_PTR(195); + Children[4] = PDEF_PTR(196); + Children[5] = PDEF_PTR(197); + Children[6] = PDEF_PTR(198); + Children[7] = PDEF_PTR(199); + Children[8] = PDEF_PTR(200); + Children[9] = PDEF_PTR(201); + + ParamDefTable[190].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=192, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(193); + + ParamDefTable[192].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p6::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p6::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p6::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p6::initReferences(void) +{ +} + +void DestructibleActorParam_0p6::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p6::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p6::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p7.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p7.cpp old mode 100644 new mode 100755 index 52185a6..dab7243 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p7.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p7.cpp @@ -1,5800 +1,5800 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p7.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p7NS; - -const char* const DestructibleActorParam_0p7Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 204; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 49, 60, 94, 123, 140, 164, 192, - 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, - 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 61, 82, 83, 89, 90, 91, 92, 93, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 81, 84, 85, 86, 87, 88, 95, 103, 104, 105, 106, 119, - 120, 121, 122, 96, 97, 98, 99, 100, 101, 102, 107, 108, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 124, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 125, 126, 127, 128, 141, 149, 154, 159, 160, 161, 162, 163, 142, 143, 144, 145, 146, - 147, 148, 150, 151, 152, 153, 155, 156, 157, 158, 165, 169, 170, 171, 172, 190, 191, - 166, 167, 168, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 195, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 22 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(22), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(23), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(24), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(44), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(50), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(55), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(56), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(65), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(73), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(93), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(98), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(107), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(114), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(126), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(138), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(142), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(150), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(157), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(161), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(165), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(172), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(175), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(192), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(202), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p7::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p7::mBuiltFlagMutex; - -DestructibleActorParam_0p7::DestructibleActorParam_0p7(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p7FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p7::~DestructibleActorParam_0p7() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p7::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p7(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p7::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p7::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p7* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p7::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p7::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p7::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p7::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p7::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[22]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(15); - Children[14] = PDEF_PTR(17); - Children[15] = PDEF_PTR(49); - Children[16] = PDEF_PTR(60); - Children[17] = PDEF_PTR(94); - Children[18] = PDEF_PTR(123); - Children[19] = PDEF_PTR(140); - Children[20] = PDEF_PTR(164); - Children[21] = PDEF_PTR(192); - - ParamDefTable[0].setChildren(Children, 22); - } - - // SetChildren for: nodeIndex=13, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(14); - - ParamDefTable[13].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=15, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(18); - Children[1] = PDEF_PTR(19); - Children[2] = PDEF_PTR(20); - Children[3] = PDEF_PTR(21); - Children[4] = PDEF_PTR(22); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(24); - Children[7] = PDEF_PTR(25); - Children[8] = PDEF_PTR(26); - Children[9] = PDEF_PTR(27); - Children[10] = PDEF_PTR(28); - Children[11] = PDEF_PTR(29); - Children[12] = PDEF_PTR(30); - Children[13] = PDEF_PTR(31); - Children[14] = PDEF_PTR(32); - Children[15] = PDEF_PTR(33); - Children[16] = PDEF_PTR(34); - Children[17] = PDEF_PTR(41); - Children[18] = PDEF_PTR(42); - Children[19] = PDEF_PTR(43); - - ParamDefTable[17].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(35); - Children[1] = PDEF_PTR(36); - Children[2] = PDEF_PTR(37); - Children[3] = PDEF_PTR(38); - Children[4] = PDEF_PTR(39); - Children[5] = PDEF_PTR(40); - - ParamDefTable[34].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(44); - Children[1] = PDEF_PTR(45); - Children[2] = PDEF_PTR(46); - Children[3] = PDEF_PTR(47); - Children[4] = PDEF_PTR(48); - - ParamDefTable[43].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=49, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - Children[5] = PDEF_PTR(56); - Children[6] = PDEF_PTR(57); - Children[7] = PDEF_PTR(58); - Children[8] = PDEF_PTR(59); - - ParamDefTable[50].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=60, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(61); - Children[1] = PDEF_PTR(82); - Children[2] = PDEF_PTR(83); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - Children[5] = PDEF_PTR(91); - Children[6] = PDEF_PTR(92); - Children[7] = PDEF_PTR(93); - - ParamDefTable[60].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=61, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(62); - Children[1] = PDEF_PTR(63); - Children[2] = PDEF_PTR(64); - Children[3] = PDEF_PTR(65); - Children[4] = PDEF_PTR(66); - Children[5] = PDEF_PTR(67); - Children[6] = PDEF_PTR(68); - Children[7] = PDEF_PTR(69); - Children[8] = PDEF_PTR(70); - Children[9] = PDEF_PTR(71); - Children[10] = PDEF_PTR(72); - Children[11] = PDEF_PTR(73); - Children[12] = PDEF_PTR(74); - Children[13] = PDEF_PTR(75); - Children[14] = PDEF_PTR(76); - Children[15] = PDEF_PTR(77); - Children[16] = PDEF_PTR(78); - Children[17] = PDEF_PTR(79); - Children[18] = PDEF_PTR(80); - Children[19] = PDEF_PTR(81); - - ParamDefTable[61].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=83, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - - ParamDefTable[83].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=94, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(95); - Children[1] = PDEF_PTR(103); - Children[2] = PDEF_PTR(104); - Children[3] = PDEF_PTR(105); - Children[4] = PDEF_PTR(106); - Children[5] = PDEF_PTR(119); - Children[6] = PDEF_PTR(120); - Children[7] = PDEF_PTR(121); - Children[8] = PDEF_PTR(122); - - ParamDefTable[94].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=95, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(97); - Children[2] = PDEF_PTR(98); - Children[3] = PDEF_PTR(99); - Children[4] = PDEF_PTR(100); - Children[5] = PDEF_PTR(101); - Children[6] = PDEF_PTR(102); - - ParamDefTable[95].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(107); - Children[1] = PDEF_PTR(108); - Children[2] = PDEF_PTR(109); - Children[3] = PDEF_PTR(110); - Children[4] = PDEF_PTR(111); - Children[5] = PDEF_PTR(112); - Children[6] = PDEF_PTR(113); - Children[7] = PDEF_PTR(114); - Children[8] = PDEF_PTR(115); - Children[9] = PDEF_PTR(116); - Children[10] = PDEF_PTR(117); - Children[11] = PDEF_PTR(118); - - ParamDefTable[106].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=123, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(124); - Children[1] = PDEF_PTR(129); - Children[2] = PDEF_PTR(130); - Children[3] = PDEF_PTR(131); - Children[4] = PDEF_PTR(132); - Children[5] = PDEF_PTR(133); - Children[6] = PDEF_PTR(134); - Children[7] = PDEF_PTR(135); - Children[8] = PDEF_PTR(136); - Children[9] = PDEF_PTR(137); - Children[10] = PDEF_PTR(138); - Children[11] = PDEF_PTR(139); - - ParamDefTable[123].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=124, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(125); - Children[1] = PDEF_PTR(126); - Children[2] = PDEF_PTR(127); - Children[3] = PDEF_PTR(128); - - ParamDefTable[124].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=140, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(141); - Children[1] = PDEF_PTR(149); - Children[2] = PDEF_PTR(154); - Children[3] = PDEF_PTR(159); - Children[4] = PDEF_PTR(160); - Children[5] = PDEF_PTR(161); - Children[6] = PDEF_PTR(162); - Children[7] = PDEF_PTR(163); - - ParamDefTable[140].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=141, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(142); - Children[1] = PDEF_PTR(143); - Children[2] = PDEF_PTR(144); - Children[3] = PDEF_PTR(145); - Children[4] = PDEF_PTR(146); - Children[5] = PDEF_PTR(147); - Children[6] = PDEF_PTR(148); - - ParamDefTable[141].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(150); - Children[1] = PDEF_PTR(151); - Children[2] = PDEF_PTR(152); - Children[3] = PDEF_PTR(153); - - ParamDefTable[149].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(155); - Children[1] = PDEF_PTR(156); - Children[2] = PDEF_PTR(157); - Children[3] = PDEF_PTR(158); - - ParamDefTable[154].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=164, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(165); - Children[1] = PDEF_PTR(169); - Children[2] = PDEF_PTR(170); - Children[3] = PDEF_PTR(171); - Children[4] = PDEF_PTR(172); - Children[5] = PDEF_PTR(190); - Children[6] = PDEF_PTR(191); - - ParamDefTable[164].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=165, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(166); - Children[1] = PDEF_PTR(167); - Children[2] = PDEF_PTR(168); - - ParamDefTable[165].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(173); - Children[1] = PDEF_PTR(174); - Children[2] = PDEF_PTR(175); - Children[3] = PDEF_PTR(176); - Children[4] = PDEF_PTR(177); - Children[5] = PDEF_PTR(178); - Children[6] = PDEF_PTR(179); - Children[7] = PDEF_PTR(180); - Children[8] = PDEF_PTR(181); - Children[9] = PDEF_PTR(182); - Children[10] = PDEF_PTR(183); - Children[11] = PDEF_PTR(184); - Children[12] = PDEF_PTR(185); - Children[13] = PDEF_PTR(186); - Children[14] = PDEF_PTR(187); - Children[15] = PDEF_PTR(188); - Children[16] = PDEF_PTR(189); - - ParamDefTable[172].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=192, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(193); - Children[1] = PDEF_PTR(194); - Children[2] = PDEF_PTR(196); - Children[3] = PDEF_PTR(197); - Children[4] = PDEF_PTR(198); - Children[5] = PDEF_PTR(199); - Children[6] = PDEF_PTR(200); - Children[7] = PDEF_PTR(201); - Children[8] = PDEF_PTR(202); - Children[9] = PDEF_PTR(203); - - ParamDefTable[192].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=194, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(195); - - ParamDefTable[194].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p7::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p7::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p7::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p7::initReferences(void) -{ -} - -void DestructibleActorParam_0p7::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p7::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p7::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p7.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p7NS; + +const char* const DestructibleActorParam_0p7Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 204; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 49, 60, 94, 123, 140, 164, 192, + 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, + 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 61, 82, 83, 89, 90, 91, 92, 93, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 84, 85, 86, 87, 88, 95, 103, 104, 105, 106, 119, + 120, 121, 122, 96, 97, 98, 99, 100, 101, 102, 107, 108, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 124, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 125, 126, 127, 128, 141, 149, 154, 159, 160, 161, 162, 163, 142, 143, 144, 145, 146, + 147, 148, 150, 151, 152, 153, 155, 156, 157, 158, 165, 169, 170, 171, 172, 190, 191, + 166, 167, 168, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 193, 194, 196, 197, 198, 199, 200, 201, 202, 203, 195, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 22 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(22), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(23), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(24), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(44), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(50), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(55), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(56), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(65), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(73), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(93), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(98), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(107), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(114), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(126), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(138), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(142), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(150), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(157), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(161), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(165), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(172), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(175), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(192), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(202), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p7::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p7::mBuiltFlagMutex; + +DestructibleActorParam_0p7::DestructibleActorParam_0p7(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p7FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p7::~DestructibleActorParam_0p7() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p7::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p7(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p7::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p7::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p7* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p7::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p7::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p7::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p7::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p7::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[167].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[22]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(15); + Children[14] = PDEF_PTR(17); + Children[15] = PDEF_PTR(49); + Children[16] = PDEF_PTR(60); + Children[17] = PDEF_PTR(94); + Children[18] = PDEF_PTR(123); + Children[19] = PDEF_PTR(140); + Children[20] = PDEF_PTR(164); + Children[21] = PDEF_PTR(192); + + ParamDefTable[0].setChildren(Children, 22); + } + + // SetChildren for: nodeIndex=13, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(14); + + ParamDefTable[13].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=15, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(18); + Children[1] = PDEF_PTR(19); + Children[2] = PDEF_PTR(20); + Children[3] = PDEF_PTR(21); + Children[4] = PDEF_PTR(22); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(24); + Children[7] = PDEF_PTR(25); + Children[8] = PDEF_PTR(26); + Children[9] = PDEF_PTR(27); + Children[10] = PDEF_PTR(28); + Children[11] = PDEF_PTR(29); + Children[12] = PDEF_PTR(30); + Children[13] = PDEF_PTR(31); + Children[14] = PDEF_PTR(32); + Children[15] = PDEF_PTR(33); + Children[16] = PDEF_PTR(34); + Children[17] = PDEF_PTR(41); + Children[18] = PDEF_PTR(42); + Children[19] = PDEF_PTR(43); + + ParamDefTable[17].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(35); + Children[1] = PDEF_PTR(36); + Children[2] = PDEF_PTR(37); + Children[3] = PDEF_PTR(38); + Children[4] = PDEF_PTR(39); + Children[5] = PDEF_PTR(40); + + ParamDefTable[34].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(44); + Children[1] = PDEF_PTR(45); + Children[2] = PDEF_PTR(46); + Children[3] = PDEF_PTR(47); + Children[4] = PDEF_PTR(48); + + ParamDefTable[43].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=49, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + Children[5] = PDEF_PTR(56); + Children[6] = PDEF_PTR(57); + Children[7] = PDEF_PTR(58); + Children[8] = PDEF_PTR(59); + + ParamDefTable[50].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=60, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(61); + Children[1] = PDEF_PTR(82); + Children[2] = PDEF_PTR(83); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + Children[5] = PDEF_PTR(91); + Children[6] = PDEF_PTR(92); + Children[7] = PDEF_PTR(93); + + ParamDefTable[60].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=61, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(62); + Children[1] = PDEF_PTR(63); + Children[2] = PDEF_PTR(64); + Children[3] = PDEF_PTR(65); + Children[4] = PDEF_PTR(66); + Children[5] = PDEF_PTR(67); + Children[6] = PDEF_PTR(68); + Children[7] = PDEF_PTR(69); + Children[8] = PDEF_PTR(70); + Children[9] = PDEF_PTR(71); + Children[10] = PDEF_PTR(72); + Children[11] = PDEF_PTR(73); + Children[12] = PDEF_PTR(74); + Children[13] = PDEF_PTR(75); + Children[14] = PDEF_PTR(76); + Children[15] = PDEF_PTR(77); + Children[16] = PDEF_PTR(78); + Children[17] = PDEF_PTR(79); + Children[18] = PDEF_PTR(80); + Children[19] = PDEF_PTR(81); + + ParamDefTable[61].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=83, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + + ParamDefTable[83].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=94, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(95); + Children[1] = PDEF_PTR(103); + Children[2] = PDEF_PTR(104); + Children[3] = PDEF_PTR(105); + Children[4] = PDEF_PTR(106); + Children[5] = PDEF_PTR(119); + Children[6] = PDEF_PTR(120); + Children[7] = PDEF_PTR(121); + Children[8] = PDEF_PTR(122); + + ParamDefTable[94].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=95, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(97); + Children[2] = PDEF_PTR(98); + Children[3] = PDEF_PTR(99); + Children[4] = PDEF_PTR(100); + Children[5] = PDEF_PTR(101); + Children[6] = PDEF_PTR(102); + + ParamDefTable[95].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=106, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(107); + Children[1] = PDEF_PTR(108); + Children[2] = PDEF_PTR(109); + Children[3] = PDEF_PTR(110); + Children[4] = PDEF_PTR(111); + Children[5] = PDEF_PTR(112); + Children[6] = PDEF_PTR(113); + Children[7] = PDEF_PTR(114); + Children[8] = PDEF_PTR(115); + Children[9] = PDEF_PTR(116); + Children[10] = PDEF_PTR(117); + Children[11] = PDEF_PTR(118); + + ParamDefTable[106].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=123, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(124); + Children[1] = PDEF_PTR(129); + Children[2] = PDEF_PTR(130); + Children[3] = PDEF_PTR(131); + Children[4] = PDEF_PTR(132); + Children[5] = PDEF_PTR(133); + Children[6] = PDEF_PTR(134); + Children[7] = PDEF_PTR(135); + Children[8] = PDEF_PTR(136); + Children[9] = PDEF_PTR(137); + Children[10] = PDEF_PTR(138); + Children[11] = PDEF_PTR(139); + + ParamDefTable[123].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=124, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(125); + Children[1] = PDEF_PTR(126); + Children[2] = PDEF_PTR(127); + Children[3] = PDEF_PTR(128); + + ParamDefTable[124].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=140, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(141); + Children[1] = PDEF_PTR(149); + Children[2] = PDEF_PTR(154); + Children[3] = PDEF_PTR(159); + Children[4] = PDEF_PTR(160); + Children[5] = PDEF_PTR(161); + Children[6] = PDEF_PTR(162); + Children[7] = PDEF_PTR(163); + + ParamDefTable[140].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=141, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(142); + Children[1] = PDEF_PTR(143); + Children[2] = PDEF_PTR(144); + Children[3] = PDEF_PTR(145); + Children[4] = PDEF_PTR(146); + Children[5] = PDEF_PTR(147); + Children[6] = PDEF_PTR(148); + + ParamDefTable[141].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=149, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(150); + Children[1] = PDEF_PTR(151); + Children[2] = PDEF_PTR(152); + Children[3] = PDEF_PTR(153); + + ParamDefTable[149].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=154, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(155); + Children[1] = PDEF_PTR(156); + Children[2] = PDEF_PTR(157); + Children[3] = PDEF_PTR(158); + + ParamDefTable[154].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=164, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(165); + Children[1] = PDEF_PTR(169); + Children[2] = PDEF_PTR(170); + Children[3] = PDEF_PTR(171); + Children[4] = PDEF_PTR(172); + Children[5] = PDEF_PTR(190); + Children[6] = PDEF_PTR(191); + + ParamDefTable[164].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=165, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(166); + Children[1] = PDEF_PTR(167); + Children[2] = PDEF_PTR(168); + + ParamDefTable[165].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=172, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(173); + Children[1] = PDEF_PTR(174); + Children[2] = PDEF_PTR(175); + Children[3] = PDEF_PTR(176); + Children[4] = PDEF_PTR(177); + Children[5] = PDEF_PTR(178); + Children[6] = PDEF_PTR(179); + Children[7] = PDEF_PTR(180); + Children[8] = PDEF_PTR(181); + Children[9] = PDEF_PTR(182); + Children[10] = PDEF_PTR(183); + Children[11] = PDEF_PTR(184); + Children[12] = PDEF_PTR(185); + Children[13] = PDEF_PTR(186); + Children[14] = PDEF_PTR(187); + Children[15] = PDEF_PTR(188); + Children[16] = PDEF_PTR(189); + + ParamDefTable[172].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=192, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(193); + Children[1] = PDEF_PTR(194); + Children[2] = PDEF_PTR(196); + Children[3] = PDEF_PTR(197); + Children[4] = PDEF_PTR(198); + Children[5] = PDEF_PTR(199); + Children[6] = PDEF_PTR(200); + Children[7] = PDEF_PTR(201); + Children[8] = PDEF_PTR(202); + Children[9] = PDEF_PTR(203); + + ParamDefTable[192].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=194, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(195); + + ParamDefTable[194].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p7::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p7::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p7::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p7::initReferences(void) +{ +} + +void DestructibleActorParam_0p7::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p7::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p7::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p8.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p8.cpp old mode 100644 new mode 100755 index d0ec90e..f585f91 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p8.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p8.cpp @@ -1,5852 +1,5852 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p8.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p8NS; - -const char* const DestructibleActorParam_0p8Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 206; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 51, 62, 96, 125, 142, - 166, 194, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 63, 84, 85, 91, 92, 93, 94, 95, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 88, 89, 90, 97, 105, 106, 107, - 108, 121, 122, 123, 124, 98, 99, 100, 101, 102, 103, 104, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 126, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 127, 128, 129, 130, 143, 151, 156, 161, 162, 163, 164, 165, 144, 145, 146, - 147, 148, 149, 150, 152, 153, 154, 155, 157, 158, 159, 160, 167, 171, 172, 173, 174, - 192, 193, 168, 169, 170, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 197, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(24), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(25), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(46), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(52), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(57), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(58), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(67), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(75), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(95), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(100), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(109), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(116), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(128), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(140), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(144), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(152), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(167), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(174), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(177), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(194), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(204), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p8::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p8::mBuiltFlagMutex; - -DestructibleActorParam_0p8::DestructibleActorParam_0p8(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p8FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p8::~DestructibleActorParam_0p8() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p8::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p8(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p8::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p8::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p8* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p8::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p8::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p8::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p8::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p8::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(51); - Children[18] = PDEF_PTR(62); - Children[19] = PDEF_PTR(96); - Children[20] = PDEF_PTR(125); - Children[21] = PDEF_PTR(142); - Children[22] = PDEF_PTR(166); - Children[23] = PDEF_PTR(194); - - ParamDefTable[0].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(20); - Children[1] = PDEF_PTR(21); - Children[2] = PDEF_PTR(22); - Children[3] = PDEF_PTR(23); - Children[4] = PDEF_PTR(24); - Children[5] = PDEF_PTR(25); - Children[6] = PDEF_PTR(26); - Children[7] = PDEF_PTR(27); - Children[8] = PDEF_PTR(28); - Children[9] = PDEF_PTR(29); - Children[10] = PDEF_PTR(30); - Children[11] = PDEF_PTR(31); - Children[12] = PDEF_PTR(32); - Children[13] = PDEF_PTR(33); - Children[14] = PDEF_PTR(34); - Children[15] = PDEF_PTR(35); - Children[16] = PDEF_PTR(36); - Children[17] = PDEF_PTR(43); - Children[18] = PDEF_PTR(44); - Children[19] = PDEF_PTR(45); - - ParamDefTable[19].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - - ParamDefTable[36].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - Children[8] = PDEF_PTR(61); - - ParamDefTable[52].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=62, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(84); - Children[2] = PDEF_PTR(85); - Children[3] = PDEF_PTR(91); - Children[4] = PDEF_PTR(92); - Children[5] = PDEF_PTR(93); - Children[6] = PDEF_PTR(94); - Children[7] = PDEF_PTR(95); - - ParamDefTable[62].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=63, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(65); - Children[2] = PDEF_PTR(66); - Children[3] = PDEF_PTR(67); - Children[4] = PDEF_PTR(68); - Children[5] = PDEF_PTR(69); - Children[6] = PDEF_PTR(70); - Children[7] = PDEF_PTR(71); - Children[8] = PDEF_PTR(72); - Children[9] = PDEF_PTR(73); - Children[10] = PDEF_PTR(74); - Children[11] = PDEF_PTR(75); - Children[12] = PDEF_PTR(76); - Children[13] = PDEF_PTR(77); - Children[14] = PDEF_PTR(78); - Children[15] = PDEF_PTR(79); - Children[16] = PDEF_PTR(80); - Children[17] = PDEF_PTR(81); - Children[18] = PDEF_PTR(82); - Children[19] = PDEF_PTR(83); - - ParamDefTable[63].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=85, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - - ParamDefTable[85].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=96, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(105); - Children[2] = PDEF_PTR(106); - Children[3] = PDEF_PTR(107); - Children[4] = PDEF_PTR(108); - Children[5] = PDEF_PTR(121); - Children[6] = PDEF_PTR(122); - Children[7] = PDEF_PTR(123); - Children[8] = PDEF_PTR(124); - - ParamDefTable[96].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=97, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(99); - Children[2] = PDEF_PTR(100); - Children[3] = PDEF_PTR(101); - Children[4] = PDEF_PTR(102); - Children[5] = PDEF_PTR(103); - Children[6] = PDEF_PTR(104); - - ParamDefTable[97].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(109); - Children[1] = PDEF_PTR(110); - Children[2] = PDEF_PTR(111); - Children[3] = PDEF_PTR(112); - Children[4] = PDEF_PTR(113); - Children[5] = PDEF_PTR(114); - Children[6] = PDEF_PTR(115); - Children[7] = PDEF_PTR(116); - Children[8] = PDEF_PTR(117); - Children[9] = PDEF_PTR(118); - Children[10] = PDEF_PTR(119); - Children[11] = PDEF_PTR(120); - - ParamDefTable[108].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=125, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(126); - Children[1] = PDEF_PTR(131); - Children[2] = PDEF_PTR(132); - Children[3] = PDEF_PTR(133); - Children[4] = PDEF_PTR(134); - Children[5] = PDEF_PTR(135); - Children[6] = PDEF_PTR(136); - Children[7] = PDEF_PTR(137); - Children[8] = PDEF_PTR(138); - Children[9] = PDEF_PTR(139); - Children[10] = PDEF_PTR(140); - Children[11] = PDEF_PTR(141); - - ParamDefTable[125].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=126, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(128); - Children[2] = PDEF_PTR(129); - Children[3] = PDEF_PTR(130); - - ParamDefTable[126].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=142, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(143); - Children[1] = PDEF_PTR(151); - Children[2] = PDEF_PTR(156); - Children[3] = PDEF_PTR(161); - Children[4] = PDEF_PTR(162); - Children[5] = PDEF_PTR(163); - Children[6] = PDEF_PTR(164); - Children[7] = PDEF_PTR(165); - - ParamDefTable[142].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(144); - Children[1] = PDEF_PTR(145); - Children[2] = PDEF_PTR(146); - Children[3] = PDEF_PTR(147); - Children[4] = PDEF_PTR(148); - Children[5] = PDEF_PTR(149); - Children[6] = PDEF_PTR(150); - - ParamDefTable[143].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(152); - Children[1] = PDEF_PTR(153); - Children[2] = PDEF_PTR(154); - Children[3] = PDEF_PTR(155); - - ParamDefTable[151].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(157); - Children[1] = PDEF_PTR(158); - Children[2] = PDEF_PTR(159); - Children[3] = PDEF_PTR(160); - - ParamDefTable[156].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=166, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(167); - Children[1] = PDEF_PTR(171); - Children[2] = PDEF_PTR(172); - Children[3] = PDEF_PTR(173); - Children[4] = PDEF_PTR(174); - Children[5] = PDEF_PTR(192); - Children[6] = PDEF_PTR(193); - - ParamDefTable[166].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(169); - Children[2] = PDEF_PTR(170); - - ParamDefTable[167].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(175); - Children[1] = PDEF_PTR(176); - Children[2] = PDEF_PTR(177); - Children[3] = PDEF_PTR(178); - Children[4] = PDEF_PTR(179); - Children[5] = PDEF_PTR(180); - Children[6] = PDEF_PTR(181); - Children[7] = PDEF_PTR(182); - Children[8] = PDEF_PTR(183); - Children[9] = PDEF_PTR(184); - Children[10] = PDEF_PTR(185); - Children[11] = PDEF_PTR(186); - Children[12] = PDEF_PTR(187); - Children[13] = PDEF_PTR(188); - Children[14] = PDEF_PTR(189); - Children[15] = PDEF_PTR(190); - Children[16] = PDEF_PTR(191); - - ParamDefTable[174].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=194, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(195); - Children[1] = PDEF_PTR(196); - Children[2] = PDEF_PTR(198); - Children[3] = PDEF_PTR(199); - Children[4] = PDEF_PTR(200); - Children[5] = PDEF_PTR(201); - Children[6] = PDEF_PTR(202); - Children[7] = PDEF_PTR(203); - Children[8] = PDEF_PTR(204); - Children[9] = PDEF_PTR(205); - - ParamDefTable[194].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(197); - - ParamDefTable[196].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p8::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p8::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p8::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p8::initReferences(void) -{ -} - -void DestructibleActorParam_0p8::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p8::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p8::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p8.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p8NS; + +const char* const DestructibleActorParam_0p8Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 206; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 51, 62, 96, 125, 142, + 166, 194, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 63, 84, 85, 91, 92, 93, 94, 95, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 88, 89, 90, 97, 105, 106, 107, + 108, 121, 122, 123, 124, 98, 99, 100, 101, 102, 103, 104, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 126, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 127, 128, 129, 130, 143, 151, 156, 161, 162, 163, 164, 165, 144, 145, 146, + 147, 148, 149, 150, 152, 153, 154, 155, 157, 158, 159, 160, 167, 171, 172, 173, 174, + 192, 193, 168, 169, 170, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 197, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(24), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(25), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(46), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(52), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(57), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(58), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(67), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(75), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(95), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(100), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(109), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(116), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(128), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(140), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(144), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(152), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(167), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(174), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(177), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(194), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(204), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p8::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p8::mBuiltFlagMutex; + +DestructibleActorParam_0p8::DestructibleActorParam_0p8(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p8FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p8::~DestructibleActorParam_0p8() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p8::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p8(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p8::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p8::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p8* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p8::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p8::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p8::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p8::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p8::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(51); + Children[18] = PDEF_PTR(62); + Children[19] = PDEF_PTR(96); + Children[20] = PDEF_PTR(125); + Children[21] = PDEF_PTR(142); + Children[22] = PDEF_PTR(166); + Children[23] = PDEF_PTR(194); + + ParamDefTable[0].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(20); + Children[1] = PDEF_PTR(21); + Children[2] = PDEF_PTR(22); + Children[3] = PDEF_PTR(23); + Children[4] = PDEF_PTR(24); + Children[5] = PDEF_PTR(25); + Children[6] = PDEF_PTR(26); + Children[7] = PDEF_PTR(27); + Children[8] = PDEF_PTR(28); + Children[9] = PDEF_PTR(29); + Children[10] = PDEF_PTR(30); + Children[11] = PDEF_PTR(31); + Children[12] = PDEF_PTR(32); + Children[13] = PDEF_PTR(33); + Children[14] = PDEF_PTR(34); + Children[15] = PDEF_PTR(35); + Children[16] = PDEF_PTR(36); + Children[17] = PDEF_PTR(43); + Children[18] = PDEF_PTR(44); + Children[19] = PDEF_PTR(45); + + ParamDefTable[19].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + + ParamDefTable[36].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + Children[8] = PDEF_PTR(61); + + ParamDefTable[52].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=62, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(84); + Children[2] = PDEF_PTR(85); + Children[3] = PDEF_PTR(91); + Children[4] = PDEF_PTR(92); + Children[5] = PDEF_PTR(93); + Children[6] = PDEF_PTR(94); + Children[7] = PDEF_PTR(95); + + ParamDefTable[62].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=63, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(65); + Children[2] = PDEF_PTR(66); + Children[3] = PDEF_PTR(67); + Children[4] = PDEF_PTR(68); + Children[5] = PDEF_PTR(69); + Children[6] = PDEF_PTR(70); + Children[7] = PDEF_PTR(71); + Children[8] = PDEF_PTR(72); + Children[9] = PDEF_PTR(73); + Children[10] = PDEF_PTR(74); + Children[11] = PDEF_PTR(75); + Children[12] = PDEF_PTR(76); + Children[13] = PDEF_PTR(77); + Children[14] = PDEF_PTR(78); + Children[15] = PDEF_PTR(79); + Children[16] = PDEF_PTR(80); + Children[17] = PDEF_PTR(81); + Children[18] = PDEF_PTR(82); + Children[19] = PDEF_PTR(83); + + ParamDefTable[63].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=85, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + + ParamDefTable[85].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=96, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(105); + Children[2] = PDEF_PTR(106); + Children[3] = PDEF_PTR(107); + Children[4] = PDEF_PTR(108); + Children[5] = PDEF_PTR(121); + Children[6] = PDEF_PTR(122); + Children[7] = PDEF_PTR(123); + Children[8] = PDEF_PTR(124); + + ParamDefTable[96].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=97, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(99); + Children[2] = PDEF_PTR(100); + Children[3] = PDEF_PTR(101); + Children[4] = PDEF_PTR(102); + Children[5] = PDEF_PTR(103); + Children[6] = PDEF_PTR(104); + + ParamDefTable[97].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(109); + Children[1] = PDEF_PTR(110); + Children[2] = PDEF_PTR(111); + Children[3] = PDEF_PTR(112); + Children[4] = PDEF_PTR(113); + Children[5] = PDEF_PTR(114); + Children[6] = PDEF_PTR(115); + Children[7] = PDEF_PTR(116); + Children[8] = PDEF_PTR(117); + Children[9] = PDEF_PTR(118); + Children[10] = PDEF_PTR(119); + Children[11] = PDEF_PTR(120); + + ParamDefTable[108].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=125, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(126); + Children[1] = PDEF_PTR(131); + Children[2] = PDEF_PTR(132); + Children[3] = PDEF_PTR(133); + Children[4] = PDEF_PTR(134); + Children[5] = PDEF_PTR(135); + Children[6] = PDEF_PTR(136); + Children[7] = PDEF_PTR(137); + Children[8] = PDEF_PTR(138); + Children[9] = PDEF_PTR(139); + Children[10] = PDEF_PTR(140); + Children[11] = PDEF_PTR(141); + + ParamDefTable[125].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=126, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(128); + Children[2] = PDEF_PTR(129); + Children[3] = PDEF_PTR(130); + + ParamDefTable[126].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=142, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(143); + Children[1] = PDEF_PTR(151); + Children[2] = PDEF_PTR(156); + Children[3] = PDEF_PTR(161); + Children[4] = PDEF_PTR(162); + Children[5] = PDEF_PTR(163); + Children[6] = PDEF_PTR(164); + Children[7] = PDEF_PTR(165); + + ParamDefTable[142].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(144); + Children[1] = PDEF_PTR(145); + Children[2] = PDEF_PTR(146); + Children[3] = PDEF_PTR(147); + Children[4] = PDEF_PTR(148); + Children[5] = PDEF_PTR(149); + Children[6] = PDEF_PTR(150); + + ParamDefTable[143].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(152); + Children[1] = PDEF_PTR(153); + Children[2] = PDEF_PTR(154); + Children[3] = PDEF_PTR(155); + + ParamDefTable[151].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(157); + Children[1] = PDEF_PTR(158); + Children[2] = PDEF_PTR(159); + Children[3] = PDEF_PTR(160); + + ParamDefTable[156].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=166, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(167); + Children[1] = PDEF_PTR(171); + Children[2] = PDEF_PTR(172); + Children[3] = PDEF_PTR(173); + Children[4] = PDEF_PTR(174); + Children[5] = PDEF_PTR(192); + Children[6] = PDEF_PTR(193); + + ParamDefTable[166].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(169); + Children[2] = PDEF_PTR(170); + + ParamDefTable[167].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(175); + Children[1] = PDEF_PTR(176); + Children[2] = PDEF_PTR(177); + Children[3] = PDEF_PTR(178); + Children[4] = PDEF_PTR(179); + Children[5] = PDEF_PTR(180); + Children[6] = PDEF_PTR(181); + Children[7] = PDEF_PTR(182); + Children[8] = PDEF_PTR(183); + Children[9] = PDEF_PTR(184); + Children[10] = PDEF_PTR(185); + Children[11] = PDEF_PTR(186); + Children[12] = PDEF_PTR(187); + Children[13] = PDEF_PTR(188); + Children[14] = PDEF_PTR(189); + Children[15] = PDEF_PTR(190); + Children[16] = PDEF_PTR(191); + + ParamDefTable[174].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=194, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(195); + Children[1] = PDEF_PTR(196); + Children[2] = PDEF_PTR(198); + Children[3] = PDEF_PTR(199); + Children[4] = PDEF_PTR(200); + Children[5] = PDEF_PTR(201); + Children[6] = PDEF_PTR(202); + Children[7] = PDEF_PTR(203); + Children[8] = PDEF_PTR(204); + Children[9] = PDEF_PTR(205); + + ParamDefTable[194].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(197); + + ParamDefTable[196].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p8::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p8::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p8::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p8::initReferences(void) +{ +} + +void DestructibleActorParam_0p8::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p8::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p8::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p9.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p9.cpp old mode 100644 new mode 100755 index 63056cb..3bc7aec --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p9.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorParam_0p9.cpp @@ -1,5852 +1,5852 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorParam_0p9.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorParam_0p9NS; - -const char* const DestructibleActorParam_0p9Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 206; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 51, 62, 96, 125, 142, - 166, 194, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 63, 84, 85, 91, 92, 93, 94, 95, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 88, 89, 90, 97, 105, 106, 107, - 108, 121, 122, 123, 124, 98, 99, 100, 101, 102, 103, 104, 109, 110, 111, 112, 113, - 114, 115, 116, 117, 118, 119, 120, 126, 131, 132, 133, 134, 135, 136, 137, 138, 139, - 140, 141, 127, 128, 129, 130, 143, 151, 156, 161, 162, 163, 164, 165, 144, 145, 146, - 147, 148, 149, 150, 152, 153, 154, 155, 157, 158, 159, 160, 167, 171, 172, 173, 174, - 192, 193, 168, 169, 170, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190, 191, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 197, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing - { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(24), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(25), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(46), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(52), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(57), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(58), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(67), 8 }, // shapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(75), 20 }, // shapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup - { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(95), 5 }, // shapeDescTemplate.groupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 - { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density - { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(100), 9 }, // actorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(109), 7 }, // actorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION - { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING - { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup - { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(116), 12 }, // actorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD - { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION - { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name - { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(128), 12 }, // bodyDescTemplate - { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(140), 4 }, // bodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST - { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity - { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping - { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(144), 8 }, // p3ShapeDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(152), 7 }, // p3ShapeDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN - { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.simulationFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 - { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.queryFilterData - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 - { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset - { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(167), 7 }, // p3ActorDescTemplate - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(174), 3 }, // p3ActorDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY - { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup - { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient - { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits - { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(177), 17 }, // p3ActorDescTemplate.contactReportFlags - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT - { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData - { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(194), 10 }, // p3BodyDescTemplate - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density - { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(204), 1 }, // p3BodyDescTemplate.flags - { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity - { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold - { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity -}; - - -bool DestructibleActorParam_0p9::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorParam_0p9::mBuiltFlagMutex; - -DestructibleActorParam_0p9::DestructibleActorParam_0p9(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p9FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorParam_0p9::~DestructibleActorParam_0p9() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorParam_0p9::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorParam_0p9(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p9::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorParam_0p9::getParameterDefinitionTree(void) const -{ - DestructibleActorParam_0p9* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorParam_0p9::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorParam_0p9::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorParam_0p9::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructibleActorParam_0p9::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorParam_0p9::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); - HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); - HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("globalPose", TYPE_MAT34, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); - HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("scale", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "3D Scale\n", true); - HintTable[1].init("shortDescription", "3D Scale", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("dynamic", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); - HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); - HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); - HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with fluids.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with cloths.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.collisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("collisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.materialIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("materialIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The material index of a shape.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of an individual shape.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision detection", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.actorCollisionGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Dominance group for an actor.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); - HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.forceFieldMaterial" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Force Field Material Index", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.compartment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("compartment", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional compartment pointer", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Angular damping applied to the body", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.CCDMotionThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Distance threshold for CCD", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepEnergyThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("sleepDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); - HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("word0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word0 of the filter data", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("word1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word1 of the filter data", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("word2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word2 of the filter data", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("word3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "word3 of the filter data", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.material" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; - ParamDef->init("material", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); - ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.contactOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; - ParamDef->init("contactOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the contact offset", true); - ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.restOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; - ParamDef->init("restOffset", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the rest offset", true); - ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape.", true); - ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; - ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); - ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; - ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags.eVISUALIZATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; - ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); - ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; - ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); - ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; - ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); - ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.dominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; - ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); - ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.ownerClient" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; - ParamDef->init("ownerClient", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); - ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.clientBehaviorBits" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; - ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); - ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; - ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); - ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; - ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); - ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; - ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); - ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; - ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); - ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; - ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); - ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; - ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); - ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); - ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); - ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; - ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); - ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; - ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); - ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; - ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); - HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); - ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; - ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); - ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; - ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); - HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); - ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; - ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); - ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; - ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); - ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; - ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); - HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); - ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; - ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); - ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; - ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); - ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; - ParamDef->init("name", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); - ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; - ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); - HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); - ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); - ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; - ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); - ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eKINEMATIC" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; - ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); - ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; - ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); - ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; - ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); - ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; - ParamDef->init("linearDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Linear damping applied to the body", true); - ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; - ParamDef->init("angularDamping", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); - ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; - ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); - ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; - ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); - HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); - ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; - ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "The force threshold for contact reports", true); - ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; - ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); - ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - Children[9] = PDEF_PTR(10); - Children[10] = PDEF_PTR(11); - Children[11] = PDEF_PTR(12); - Children[12] = PDEF_PTR(13); - Children[13] = PDEF_PTR(14); - Children[14] = PDEF_PTR(15); - Children[15] = PDEF_PTR(17); - Children[16] = PDEF_PTR(19); - Children[17] = PDEF_PTR(51); - Children[18] = PDEF_PTR(62); - Children[19] = PDEF_PTR(96); - Children[20] = PDEF_PTR(125); - Children[21] = PDEF_PTR(142); - Children[22] = PDEF_PTR(166); - Children[23] = PDEF_PTR(194); - - ParamDefTable[0].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(18); - - ParamDefTable[17].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=19, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(20); - Children[1] = PDEF_PTR(21); - Children[2] = PDEF_PTR(22); - Children[3] = PDEF_PTR(23); - Children[4] = PDEF_PTR(24); - Children[5] = PDEF_PTR(25); - Children[6] = PDEF_PTR(26); - Children[7] = PDEF_PTR(27); - Children[8] = PDEF_PTR(28); - Children[9] = PDEF_PTR(29); - Children[10] = PDEF_PTR(30); - Children[11] = PDEF_PTR(31); - Children[12] = PDEF_PTR(32); - Children[13] = PDEF_PTR(33); - Children[14] = PDEF_PTR(34); - Children[15] = PDEF_PTR(35); - Children[16] = PDEF_PTR(36); - Children[17] = PDEF_PTR(43); - Children[18] = PDEF_PTR(44); - Children[19] = PDEF_PTR(45); - - ParamDefTable[19].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - - ParamDefTable[36].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - Children[8] = PDEF_PTR(61); - - ParamDefTable[52].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=62, longName="shapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(63); - Children[1] = PDEF_PTR(84); - Children[2] = PDEF_PTR(85); - Children[3] = PDEF_PTR(91); - Children[4] = PDEF_PTR(92); - Children[5] = PDEF_PTR(93); - Children[6] = PDEF_PTR(94); - Children[7] = PDEF_PTR(95); - - ParamDefTable[62].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=63, longName="shapeDescTemplate.flags" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(64); - Children[1] = PDEF_PTR(65); - Children[2] = PDEF_PTR(66); - Children[3] = PDEF_PTR(67); - Children[4] = PDEF_PTR(68); - Children[5] = PDEF_PTR(69); - Children[6] = PDEF_PTR(70); - Children[7] = PDEF_PTR(71); - Children[8] = PDEF_PTR(72); - Children[9] = PDEF_PTR(73); - Children[10] = PDEF_PTR(74); - Children[11] = PDEF_PTR(75); - Children[12] = PDEF_PTR(76); - Children[13] = PDEF_PTR(77); - Children[14] = PDEF_PTR(78); - Children[15] = PDEF_PTR(79); - Children[16] = PDEF_PTR(80); - Children[17] = PDEF_PTR(81); - Children[18] = PDEF_PTR(82); - Children[19] = PDEF_PTR(83); - - ParamDefTable[63].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=85, longName="shapeDescTemplate.groupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - - ParamDefTable[85].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=96, longName="actorDescTemplate" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(105); - Children[2] = PDEF_PTR(106); - Children[3] = PDEF_PTR(107); - Children[4] = PDEF_PTR(108); - Children[5] = PDEF_PTR(121); - Children[6] = PDEF_PTR(122); - Children[7] = PDEF_PTR(123); - Children[8] = PDEF_PTR(124); - - ParamDefTable[96].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=97, longName="actorDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(98); - Children[1] = PDEF_PTR(99); - Children[2] = PDEF_PTR(100); - Children[3] = PDEF_PTR(101); - Children[4] = PDEF_PTR(102); - Children[5] = PDEF_PTR(103); - Children[6] = PDEF_PTR(104); - - ParamDefTable[97].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(109); - Children[1] = PDEF_PTR(110); - Children[2] = PDEF_PTR(111); - Children[3] = PDEF_PTR(112); - Children[4] = PDEF_PTR(113); - Children[5] = PDEF_PTR(114); - Children[6] = PDEF_PTR(115); - Children[7] = PDEF_PTR(116); - Children[8] = PDEF_PTR(117); - Children[9] = PDEF_PTR(118); - Children[10] = PDEF_PTR(119); - Children[11] = PDEF_PTR(120); - - ParamDefTable[108].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=125, longName="bodyDescTemplate" - { - static Definition* Children[12]; - Children[0] = PDEF_PTR(126); - Children[1] = PDEF_PTR(131); - Children[2] = PDEF_PTR(132); - Children[3] = PDEF_PTR(133); - Children[4] = PDEF_PTR(134); - Children[5] = PDEF_PTR(135); - Children[6] = PDEF_PTR(136); - Children[7] = PDEF_PTR(137); - Children[8] = PDEF_PTR(138); - Children[9] = PDEF_PTR(139); - Children[10] = PDEF_PTR(140); - Children[11] = PDEF_PTR(141); - - ParamDefTable[125].setChildren(Children, 12); - } - - // SetChildren for: nodeIndex=126, longName="bodyDescTemplate.flags" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(128); - Children[2] = PDEF_PTR(129); - Children[3] = PDEF_PTR(130); - - ParamDefTable[126].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=142, longName="p3ShapeDescTemplate" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(143); - Children[1] = PDEF_PTR(151); - Children[2] = PDEF_PTR(156); - Children[3] = PDEF_PTR(161); - Children[4] = PDEF_PTR(162); - Children[5] = PDEF_PTR(163); - Children[6] = PDEF_PTR(164); - Children[7] = PDEF_PTR(165); - - ParamDefTable[142].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(144); - Children[1] = PDEF_PTR(145); - Children[2] = PDEF_PTR(146); - Children[3] = PDEF_PTR(147); - Children[4] = PDEF_PTR(148); - Children[5] = PDEF_PTR(149); - Children[6] = PDEF_PTR(150); - - ParamDefTable[143].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(152); - Children[1] = PDEF_PTR(153); - Children[2] = PDEF_PTR(154); - Children[3] = PDEF_PTR(155); - - ParamDefTable[151].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(157); - Children[1] = PDEF_PTR(158); - Children[2] = PDEF_PTR(159); - Children[3] = PDEF_PTR(160); - - ParamDefTable[156].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=166, longName="p3ActorDescTemplate" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(167); - Children[1] = PDEF_PTR(171); - Children[2] = PDEF_PTR(172); - Children[3] = PDEF_PTR(173); - Children[4] = PDEF_PTR(174); - Children[5] = PDEF_PTR(192); - Children[6] = PDEF_PTR(193); - - ParamDefTable[166].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate.flags" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(168); - Children[1] = PDEF_PTR(169); - Children[2] = PDEF_PTR(170); - - ParamDefTable[167].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(175); - Children[1] = PDEF_PTR(176); - Children[2] = PDEF_PTR(177); - Children[3] = PDEF_PTR(178); - Children[4] = PDEF_PTR(179); - Children[5] = PDEF_PTR(180); - Children[6] = PDEF_PTR(181); - Children[7] = PDEF_PTR(182); - Children[8] = PDEF_PTR(183); - Children[9] = PDEF_PTR(184); - Children[10] = PDEF_PTR(185); - Children[11] = PDEF_PTR(186); - Children[12] = PDEF_PTR(187); - Children[13] = PDEF_PTR(188); - Children[14] = PDEF_PTR(189); - Children[15] = PDEF_PTR(190); - Children[16] = PDEF_PTR(191); - - ParamDefTable[174].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=194, longName="p3BodyDescTemplate" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(195); - Children[1] = PDEF_PTR(196); - Children[2] = PDEF_PTR(198); - Children[3] = PDEF_PTR(199); - Children[4] = PDEF_PTR(200); - Children[5] = PDEF_PTR(201); - Children[6] = PDEF_PTR(202); - Children[7] = PDEF_PTR(203); - Children[8] = PDEF_PTR(204); - Children[9] = PDEF_PTR(205); - - ParamDefTable[194].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate.flags" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(197); - - ParamDefTable[196].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleActorParam_0p9::initStrings(void) -{ - crumbleEmitterName.isAllocated = false; - crumbleEmitterName.buf = (const char*)0; - dustEmitterName.isAllocated = false; - dustEmitterName.buf = (const char*)0; -} - -void DestructibleActorParam_0p9::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; -} - -void DestructibleActorParam_0p9::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - crumbleParticleSpacing = float(0); - dustParticleSpacing = float(0); - { - const float value[12] = {true}; - for (int i = 0; i < 12; ++i) - { - globalPose[i] = value[i]; - } - } - scale = physx::PxVec3(init(1, 1, 1)); - dynamic = bool(true); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - keepPreviousFrameBoneBuffer = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - renderStaticChunksSeparately = bool(false); - createChunkEvents = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); - shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); - shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); - shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); - shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); - shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); - shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); - shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); - shapeDescTemplate.collisionGroup = uint16_t(0); - shapeDescTemplate.groupsMask.useGroupsMask = bool(false); - shapeDescTemplate.groupsMask.bits0 = uint32_t(0); - shapeDescTemplate.groupsMask.bits1 = uint32_t(0); - shapeDescTemplate.groupsMask.bits2 = uint32_t(0); - shapeDescTemplate.groupsMask.bits3 = uint32_t(0); - shapeDescTemplate.materialIndex = uint16_t(0); - shapeDescTemplate.density = float(1); - shapeDescTemplate.skinWidth = float(-1); - shapeDescTemplate.userData = uint64_t(0); - shapeDescTemplate.name = uint64_t(0); - actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); - actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); - actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); - actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); - actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); - actorDescTemplate.density = float(1); - actorDescTemplate.actorCollisionGroup = uint16_t(0); - actorDescTemplate.dominanceGroup = uint16_t(0); - actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); - actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); - actorDescTemplate.forceFieldMaterial = uint16_t(0); - actorDescTemplate.userData = uint64_t(0); - actorDescTemplate.name = uint64_t(0); - actorDescTemplate.compartment = uint64_t(0); - bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); - bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); - bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); - bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); - bodyDescTemplate.wakeUpCounter = float(0.4); - bodyDescTemplate.linearDamping = float(0); - bodyDescTemplate.angularDamping = float(0.05); - bodyDescTemplate.maxAngularVelocity = float(-1); - bodyDescTemplate.CCDMotionThreshold = float(0); - bodyDescTemplate.sleepLinearVelocity = float(-1); - bodyDescTemplate.sleepAngularVelocity = float(-1); - bodyDescTemplate.solverIterationCount = uint32_t(4); - bodyDescTemplate.sleepEnergyThreshold = float(0.005); - bodyDescTemplate.sleepDamping = float(0); - bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); - p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); - p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); - p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); - p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); - p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); - p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); - p3ShapeDescTemplate.material = uint64_t(0); - p3ShapeDescTemplate.contactOffset = float(0.02); - p3ShapeDescTemplate.restOffset = float(0); - p3ShapeDescTemplate.userData = uint64_t(0); - p3ShapeDescTemplate.name = uint64_t(0); - p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); - p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); - p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); - p3ActorDescTemplate.dominanceGroup = uint8_t(0); - p3ActorDescTemplate.ownerClient = uint8_t(0); - p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); - p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); - p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); - p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); - p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); - p3ActorDescTemplate.userData = uint64_t(0); - p3ActorDescTemplate.name = uint64_t(0); - p3BodyDescTemplate.density = float(1); - p3BodyDescTemplate.flags.eKINEMATIC = bool(false); - p3BodyDescTemplate.sleepThreshold = float(0.005); - p3BodyDescTemplate.wakeUpCounter = float(0.4); - p3BodyDescTemplate.linearDamping = float(0); - p3BodyDescTemplate.angularDamping = float(0.05); - p3BodyDescTemplate.maxAngularVelocity = float(7); - p3BodyDescTemplate.solverIterationCount = uint32_t(4); - p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); - p3BodyDescTemplate.sleepLinearVelocity = float(-1); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorParam_0p9::initReferences(void) -{ -} - -void DestructibleActorParam_0p9::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } -} - -void DestructibleActorParam_0p9::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleActorParam_0p9::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorParam_0p9.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorParam_0p9NS; + +const char* const DestructibleActorParam_0p9Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 206; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 17, 19, 51, 62, 96, 125, 142, + 166, 194, 16, 18, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, + 58, 59, 60, 61, 63, 84, 85, 91, 92, 93, 94, 95, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 86, 87, 88, 89, 90, 97, 105, 106, 107, + 108, 121, 122, 123, 124, 98, 99, 100, 101, 102, 103, 104, 109, 110, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 126, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 127, 128, 129, 130, 143, 151, 156, 161, 162, 163, 164, 165, 144, 145, 146, + 147, 148, 149, 150, 152, 153, 154, 155, 157, 158, 159, 160, 167, 171, 172, 173, 174, + 192, 193, 168, 169, 170, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 197, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->crumbleParticleSpacing), NULL, 0 }, // crumbleParticleSpacing + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->dustParticleSpacing), NULL, 0 }, // dustParticleSpacing + { TYPE_MAT34, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->scale), NULL, 0 }, // scale + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->dynamic), NULL, 0 }, // dynamic + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->keepPreviousFrameBoneBuffer), NULL, 0 }, // keepPreviousFrameBoneBuffer + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderStaticChunksSeparately), NULL, 0 }, // renderStaticChunksSeparately + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->createChunkEvents), NULL, 0 }, // createChunkEvents + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(24), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(25), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(46), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(52), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(57), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(58), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->shapeDescTemplate), CHILDREN(67), 8 }, // shapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->flags), CHILDREN(75), 20 }, // shapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_ENTER), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_LEAVE), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_TRIGGER_ON_STAY), NULL, 0 }, // shapeDescTemplate.flags.NX_TRIGGER_ON_STAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_VISUALIZATION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_VISUALIZATION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FEATURE_INDICES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FEATURE_INDICES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RAYCASTING), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_POINT_CONTACT_FORCE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_FLUID_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_RESPONSE), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DYNAMIC_DYNAMIC_CCD), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_DISABLE_SCENE_QUERIES), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_CLOTH_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DRAIN), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_DISABLE_COLLISION), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ShapeDescFlags_Type*)0)->NX_SF_SOFTBODY_TWOWAY), NULL, 0 }, // shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->collisionGroup), NULL, 0 }, // shapeDescTemplate.collisionGroup + { TYPE_STRUCT, false, (size_t)(&((ShapeDescTemplate_Type*)0)->groupsMask), CHILDREN(95), 5 }, // shapeDescTemplate.groupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // shapeDescTemplate.groupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // shapeDescTemplate.groupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // shapeDescTemplate.groupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // shapeDescTemplate.groupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // shapeDescTemplate.groupsMask.bits3 + { TYPE_U16, false, (size_t)(&((ShapeDescTemplate_Type*)0)->materialIndex), NULL, 0 }, // shapeDescTemplate.materialIndex + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->density), NULL, 0 }, // shapeDescTemplate.density + { TYPE_F32, false, (size_t)(&((ShapeDescTemplate_Type*)0)->skinWidth), NULL, 0 }, // shapeDescTemplate.skinWidth + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // shapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // shapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->actorDescTemplate), CHILDREN(100), 9 }, // actorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->flags), CHILDREN(109), 7 }, // actorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_DISABLE_RESPONSE), NULL, 0 }, // actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_LOCK_COM), NULL, 0 }, // actorDescTemplate.flags.NX_AF_LOCK_COM + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FLUID_DISABLE_COLLISION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_FORCE_CONE_FRICTION), NULL, 0 }, // actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION + { TYPE_BOOL, false, (size_t)(&((ActorDescFlags_Type*)0)->NX_AF_USER_ACTOR_PAIR_FILTERING), NULL, 0 }, // actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING + { TYPE_F32, false, (size_t)(&((ActorDescTemplate_Type*)0)->density), NULL, 0 }, // actorDescTemplate.density + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->actorCollisionGroup), NULL, 0 }, // actorDescTemplate.actorCollisionGroup + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // actorDescTemplate.dominanceGroup + { TYPE_STRUCT, false, (size_t)(&((ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(116), 12 }, // actorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_IGNORE_PAIR), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_IMPACT), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_ROLL), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_SLIDE), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_FORCES), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD + { TYPE_BOOL, false, (size_t)(&((ContactPairFlag_Type*)0)->NX_NOTIFY_CONTACT_MODIFICATION), NULL, 0 }, // actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION + { TYPE_U16, false, (size_t)(&((ActorDescTemplate_Type*)0)->forceFieldMaterial), NULL, 0 }, // actorDescTemplate.forceFieldMaterial + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // actorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->name), NULL, 0 }, // actorDescTemplate.name + { TYPE_U64, false, (size_t)(&((ActorDescTemplate_Type*)0)->compartment), NULL, 0 }, // actorDescTemplate.compartment + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->bodyDescTemplate), CHILDREN(128), 12 }, // bodyDescTemplate + { TYPE_STRUCT, false, (size_t)(&((BodyDescTemplate_Type*)0)->flags), CHILDREN(140), 4 }, // bodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_DISABLE_GRAVITY), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_FILTER_SLEEP_VEL), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_ENERGY_SLEEP_TEST), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST + { TYPE_BOOL, false, (size_t)(&((BodyDescFlags_Type*)0)->NX_BF_VISUALIZATION), NULL, 0 }, // bodyDescTemplate.flags.NX_BF_VISUALIZATION + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // bodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // bodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // bodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // bodyDescTemplate.maxAngularVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->CCDMotionThreshold), NULL, 0 }, // bodyDescTemplate.CCDMotionThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // bodyDescTemplate.sleepLinearVelocity + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepAngularVelocity), NULL, 0 }, // bodyDescTemplate.sleepAngularVelocity + { TYPE_U32, false, (size_t)(&((BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // bodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepEnergyThreshold), NULL, 0 }, // bodyDescTemplate.sleepEnergyThreshold + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->sleepDamping), NULL, 0 }, // bodyDescTemplate.sleepDamping + { TYPE_F32, false, (size_t)(&((BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // bodyDescTemplate.contactReportThreshold + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ShapeDescTemplate), CHILDREN(144), 8 }, // p3ShapeDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->flags), CHILDREN(152), 7 }, // p3ShapeDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSIMULATION_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSIMULATION_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eSCENE_QUERY_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eTRIGGER_SHAPE), NULL, 0 }, // p3ShapeDescTemplate.flags.eTRIGGER_SHAPE + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ShapeDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->ePARTICLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.ePARTICLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eDEFORMABLE_DRAIN), NULL, 0 }, // p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN + { TYPE_BOOL, false, (size_t)(&((P3ShapeFlags_Type*)0)->eUSE_SWEPT_BOUNDS), NULL, 0 }, // p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->simulationFilterData), CHILDREN(159), 4 }, // p3ShapeDescTemplate.simulationFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.simulationFilterData.word3 + { TYPE_STRUCT, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->queryFilterData), CHILDREN(163), 4 }, // p3ShapeDescTemplate.queryFilterData + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word0), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word0 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word1), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word1 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word2), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word2 + { TYPE_U32, false, (size_t)(&((P3FilterData_Type*)0)->word3), NULL, 0 }, // p3ShapeDescTemplate.queryFilterData.word3 + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->material), NULL, 0 }, // p3ShapeDescTemplate.material + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->contactOffset), NULL, 0 }, // p3ShapeDescTemplate.contactOffset + { TYPE_F32, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->restOffset), NULL, 0 }, // p3ShapeDescTemplate.restOffset + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ShapeDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ShapeDescTemplate_Type*)0)->name), NULL, 0 }, // p3ShapeDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3ActorDescTemplate), CHILDREN(167), 7 }, // p3ActorDescTemplate + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->flags), CHILDREN(174), 3 }, // p3ActorDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eVISUALIZATION), NULL, 0 }, // p3ActorDescTemplate.flags.eVISUALIZATION + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eDISABLE_GRAVITY), NULL, 0 }, // p3ActorDescTemplate.flags.eDISABLE_GRAVITY + { TYPE_BOOL, false, (size_t)(&((P3ActorFlags_Type*)0)->eSEND_SLEEP_NOTIFIES), NULL, 0 }, // p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->dominanceGroup), NULL, 0 }, // p3ActorDescTemplate.dominanceGroup + { TYPE_U8, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->ownerClient), NULL, 0 }, // p3ActorDescTemplate.ownerClient + { TYPE_U32, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->clientBehaviorBits), NULL, 0 }, // p3ActorDescTemplate.clientBehaviorBits + { TYPE_STRUCT, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->contactReportFlags), CHILDREN(177), 17 }, // p3ActorDescTemplate.contactReportFlags + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eRESOLVE_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eMODIFY_CONTACTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_TOUCH_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_FOUND), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_PERSISTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_THRESHOLD_FORCE_LOST), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_POINTS), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCES), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FORCE_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_CONTACT_GENERATION), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_LINEAR), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eSWEPT_INTEGRATION_FULL), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eCONTACT_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT + { TYPE_BOOL, false, (size_t)(&((P3PairFlag_Type*)0)->eTRIGGER_DEFAULT), NULL, 0 }, // p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->userData), NULL, 0 }, // p3ActorDescTemplate.userData + { TYPE_U64, false, (size_t)(&((P3ActorDescTemplate_Type*)0)->name), NULL, 0 }, // p3ActorDescTemplate.name + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->p3BodyDescTemplate), CHILDREN(194), 10 }, // p3BodyDescTemplate + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->density), NULL, 0 }, // p3BodyDescTemplate.density + { TYPE_STRUCT, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->flags), CHILDREN(204), 1 }, // p3BodyDescTemplate.flags + { TYPE_BOOL, false, (size_t)(&((P3BodyDescFlags_Type*)0)->eKINEMATIC), NULL, 0 }, // p3BodyDescTemplate.flags.eKINEMATIC + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepThreshold), NULL, 0 }, // p3BodyDescTemplate.sleepThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->wakeUpCounter), NULL, 0 }, // p3BodyDescTemplate.wakeUpCounter + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->linearDamping), NULL, 0 }, // p3BodyDescTemplate.linearDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->angularDamping), NULL, 0 }, // p3BodyDescTemplate.angularDamping + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->maxAngularVelocity), NULL, 0 }, // p3BodyDescTemplate.maxAngularVelocity + { TYPE_U32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->solverIterationCount), NULL, 0 }, // p3BodyDescTemplate.solverIterationCount + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->contactReportThreshold), NULL, 0 }, // p3BodyDescTemplate.contactReportThreshold + { TYPE_F32, false, (size_t)(&((P3BodyDescTemplate_Type*)0)->sleepLinearVelocity), NULL, 0 }, // p3BodyDescTemplate.sleepLinearVelocity +}; + + +bool DestructibleActorParam_0p9::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorParam_0p9::mBuiltFlagMutex; + +DestructibleActorParam_0p9::DestructibleActorParam_0p9(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorParam_0p9FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorParam_0p9::~DestructibleActorParam_0p9() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorParam_0p9::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorParam_0p9(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p9::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorParam_0p9::getParameterDefinitionTree(void) const +{ + DestructibleActorParam_0p9* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorParam_0p9::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorParam_0p9::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorParam_0p9::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructibleActorParam_0p9::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorParam_0p9::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for crumbling. This overrides the crumble system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for crumbling", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="crumbleParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("crumbleParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the crumble emitter's particle radius, if the\ncrumble emitter exists. This spacing will be used when placing particle positions in the crumble emitter and the crumble buffer callback. Note - if there is no crumble emitter\nbut there is a crumble buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when crumbling", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust. This overrides the dust system defined\nin the NxDestructibleAsset if specified.\n", true); + HintTable[1].init("shortDescription", "The name of the NxMeshParticleSystem to use for fracture-line dust", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="dustParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("dustParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to space the particles when crumling. If set to zero or a negative value, then the spacing is taken to be the dust emitter's particle radius, if the\ndust emitter exists. This spacing will be used when placing particle positions in the dust emitter and the dust particle buffer callback. Note - if there is no dust emitter\nbut there is a dust particle buffer callback, then this value must be positive in order to have a proper spacing for the callback. Otherwise, the callback will not be called.\nThe default value is 0.\n", true); + HintTable[1].init("shortDescription", "How far apart to space the particles when creating dust particles", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("globalPose", TYPE_MAT34, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial global pose of undamaged destructible\n", true); + HintTable[1].init("shortDescription", "The initial pose where the destructible actor will be put into the scene", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="scale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("scale", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "3D Scale\n", true); + HintTable[1].init("shortDescription", "3D Scale", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="dynamic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("dynamic", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the destructible starts life as a dynamic actor\n", true); + HintTable[1].init("shortDescription", "Whether or not the destructible starts life as a dynamic actor", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="keepPreviousFrameBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("keepPreviousFrameBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, the skinned mesh will hold a bone buffer for the last frame. The poses in the new buffer correspond the poses in the current frame buffer,\n chunk was not visible in the last frame.", true); + HintTable[1].init("shortDescription", "If true, the skinned mesh will hold a bone buffer for the last frame", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="renderStaticChunksSeparately" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("renderStaticChunksSeparately", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, static chunks will be renderered separately from dynamic chunks, as a single mesh (not using skinning).\nThis parameter is ignored if the \'dynamic\' parameter is true.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render static chunks in a separate mesh", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="createChunkEvents" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("createChunkEvents", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to create an event buffer for chunk.\nIf true, the user has access to a chunk event buffer, which currently holds visibility state change events.\nThe user must empty this buffer themselves after reading, otherwise it will continue to grow as new events are added.\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to create an event buffer for chunks", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters controlling the destruction properties - damage thresholds, damage radius multipliers, etc.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters)\nthe element [0] of the array applies to the level 0 (unfractured) chunk, element [1] applies\nto the level 1 chunks, etc.\n", true); + HintTable[1].init("shortDescription", "Parameters that apply to every chunk at a given level (see NxDestructibleDepthParameters).", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="shapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("shapeDescTemplate", TYPE_STRUCT, "ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="shapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("flags", TYPE_STRUCT, "ShapeDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("NX_TRIGGER_ON_ENTER", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called when a shape enters the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called when a shape enters the trigger volume.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("NX_TRIGGER_ON_LEAVE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called after a shape leaves the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called after a shape leaves the trigger volume.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="shapeDescTemplate.flags.NX_TRIGGER_ON_STAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("NX_TRIGGER_ON_STAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Trigger callback will be called while a shape is intersecting the trigger volume. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Trigger callback will be called while a shape is intersecting the trigger volume.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="shapeDescTemplate.flags.NX_SF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("NX_SF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for shapes", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("NX_SF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision detection for shapes (counterpart of NX_AF_DISABLE_COLLISION)", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="shapeDescTemplate.flags.NX_SF_FEATURE_INDICES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("NX_SF_FEATURE_INDICES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable feature indices in contact stream. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable feature indices in contact stream.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("NX_SF_DISABLE_RAYCASTING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable raycasting for shapes. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable raycasting for shapes", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("NX_SF_POINT_CONTACT_FORCE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable contact force reporting per contact point in contact stream (otherwise we only report force per actor pair)", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="shapeDescTemplate.flags.NX_SF_FLUID_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("NX_SF_FLUID_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a fluid drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a fluid drain.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("NX_SF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with fluids. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with fluids.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("NX_SF_FLUID_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on fluid collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on fluid collision.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("NX_SF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE). This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision response for shapes (counterpart of NX_AF_DISABLE_RESPONSE)", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("NX_SF_DYNAMIC_DYNAMIC_CCD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable dynamic-dynamic CCD for shapes. Used only when CCD is globally enabled and shape have a CCD skeleton.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("NX_SF_DISABLE_SCENE_QUERIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable participation in ray casts, overlap tests and sweeps. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable participation in ray casts, overlap tests and sweeps.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("NX_SF_CLOTH_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a cloth drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a cloth drain.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("NX_SF_CLOTH_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with cloths. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with cloths.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("NX_SF_CLOTH_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shapes actor on cloth collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shapes actor on cloth collision.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("NX_SF_SOFTBODY_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets a shape to be a soft body drain. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets a shape to be a soft body drain.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("NX_SF_SOFTBODY_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable collision with soft bodies. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disable collision with soft bodies.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("NX_SF_SOFTBODY_TWOWAY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the reaction of a shape's actor on soft body collision. This flag is applied to all\n NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the reaction of a shape's actor on soft body collision.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="shapeDescTemplate.collisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("collisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which collision group shapes are part of.\n Default group is 0. Maximum possible group is 31. Collision groups are sets of shapes which may or may not be set to collision detect with each other; this can be set using NxScene::setGroupCollisionFlag() Sleeping: Does NOT wake the associated actor up automatically. param[in] collisionGroup The collision group for shapes.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which collision group shapes are part of.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="shapeDescTemplate.groupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("groupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the 128-bit mask used for collision filtering.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the 128-bit mask used for collision filtering.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="shapeDescTemplate.groupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="shapeDescTemplate.groupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="shapeDescTemplate.groupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="shapeDescTemplate.groupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="shapeDescTemplate.groupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="shapeDescTemplate.materialIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("materialIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material index of a shape.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The material index of a shape.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="shapeDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of this individual shape when computing mass inertial properties for a rigidbody (unless a valid mass >0.0 is provided). Note that this will only be used if the body has a zero inertia tensor, or if you call NxActor::updateMassFromShapes explicitly.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of an individual shape.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="shapeDescTemplate.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Specifies by how much shapes can interpenetrate; if -1 it uses the global default", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="shapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="shapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all NxShapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="actorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("actorDescTemplate", TYPE_STRUCT, "ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="actorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("flags", TYPE_STRUCT, "ActorDescFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorDescTemplate.flags.NX_AF_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("NX_AF_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision detection.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision detection", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("NX_AF_DISABLE_RESPONSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable collision response (reports contacts but dont use them).\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable collision response (reports contacts but dont use them)", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="actorDescTemplate.flags.NX_AF_LOCK_COM" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("NX_AF_LOCK_COM", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("NX_AF_FLUID_DISABLE_COLLISION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables COM update when computing inertial properties at creation time.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables COM update when computing inertial properties at creation time.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("NX_AF_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Turn on contact modification callback for the actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Turn on contact modification callback for the actor.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("NX_AF_FORCE_CONE_FRICTION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force cone friction to be used for this actor.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force cone friction to be used for this actor.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("NX_AF_USER_ACTOR_PAIR_FILTERING", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable/disable custom contact filtering.\n This flag will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable/disable custom contact filtering.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Density to be applied to the whole actor. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Density to be applied to the whole actor.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="actorDescTemplate.actorCollisionGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("actorCollisionGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets which NxActorGroup an actor is part of.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets which NxActorGroup an actor is part of", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="actorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("dominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dominance group for an actor.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Dominance group for an actor.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "ContactPairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of ContactPairFlag flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of ContactPairFlag flags", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("NX_IGNORE_PAIR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disable contact generation for this pair. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Disable contact generation for this pair", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair starts to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair starts to be in contact", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the pair stops to be in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the pair stops to be in contact", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("NX_NOTIFY_ON_TOUCH", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the pair is in contact. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the pair is in contact", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("NX_NOTIFY_ON_IMPACT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when it may be appropriate for the pair to play an impact sound", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("NX_NOTIFY_ON_ROLL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and rolling.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("NX_NOTIFY_ON_SLIDE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling). See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "[Not yet implemented] pair callback will be called when the pair is in contact and sliding (and not rolling).", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("NX_NOTIFY_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "The (summed total) friction force and normal force will be given in the NxContactPair variable in the contact report.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will be called when the contact force between two actors falls below the actor-defined force thresholds", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Pair callback will keep getting called while the contact force between two actors exceeds one of the actor-defined force thresholds", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("NX_NOTIFY_CONTACT_MODIFICATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify. See the PhysX documentation for more about contact reporting.", true); + HintTable[1].init("shortDescription", "Generate a callback for all associated contact constraints, making it possible to edit the constraint. This flag is not included in NX_NOTIFY_ALL for performance reasons. see NxUserContactModify.", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorDescTemplate.forceFieldMaterial" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("forceFieldMaterial", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Force Field Material Index, index != 0 has to be created.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Force Field Material Index", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="actorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="actorDescTemplate.compartment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("compartment", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional compartment pointer; must be set by the application.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional compartment pointer", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="bodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("bodyDescTemplate", TYPE_STRUCT, "BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="bodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("flags", TYPE_STRUCT, "BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("NX_BF_DISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Set if gravity should not be applied on this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Set if gravity should not be applied on this body", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("NX_BF_FILTER_SLEEP_VEL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Filter velocities used keep body awake. The filter reduces rapid oscillations and transient spikes", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("NX_BF_ENERGY_SLEEP_TEST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables energy-based sleeping algorithm.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables energy-based sleeping algorithm", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="bodyDescTemplate.flags.NX_BF_VISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("NX_BF_VISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables debug visualization for this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables debug visualization for this body", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="bodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="bodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="bodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Angular damping applied to the body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Angular damping applied to the body", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="bodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="bodyDescTemplate.CCDMotionThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("CCDMotionThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When CCD is globally enabled, it is still not performed if the motion distance of all points on the body is below this threshold.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Distance threshold for CCD", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="bodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="bodyDescTemplate.sleepAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("sleepAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum angular velocity at which body can go to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum angular velocity at which body can go to sleep", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="bodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of solver iterations performed when processing joint/contacts connected to this body.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Number of solver iterations performed when processing joint/contacts connected to this body", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="bodyDescTemplate.sleepEnergyThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("sleepEnergyThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Threshold for the energy-based sleeping algorithm. Only used when the NX_BF_ENERGY_SLEEP_TEST flag is set", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="bodyDescTemplate.sleepDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("sleepDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damping factor for bodies that are about to sleep.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Damping factor for bodies that are about to sleep", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="bodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all NxActors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="p3ShapeDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("p3ShapeDescTemplate", TYPE_STRUCT, "P3ShapeDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actor shapes created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actor shapes created", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="p3ShapeDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("flags", TYPE_STRUCT, "P3ShapeFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="p3ShapeDescTemplate.flags.eSIMULATION_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("eSIMULATION_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in collision in the physical simulation.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("eSCENE_QUERY_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The shape will partake in scene queries (ray casts, overlap tests, sweeps, ...). ", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="p3ShapeDescTemplate.flags.eTRIGGER_SHAPE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("eTRIGGER_SHAPE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume.\n\nNote:\nTriangle meshes and heightfields can not be triggers. Shape creation will fail in these cases.\nShapes marked as triggers do not collide with other objects. If an object should act both as a trigger shape and a collision shape then create a rigid body with two shapes, one being a trigger shape and the other a collision shape.\n", true); + HintTable[1].init("shortDescription", "The shape is a trigger which can send reports whenever other shapes enter/leave its volume. ", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="p3ShapeDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enable debug renderer for this shape", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="p3ShapeDescTemplate.flags.ePARTICLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("ePARTICLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a particle drain", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("eDEFORMABLE_DRAIN", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Sets the shape to be a deformable drain", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("eUSE_SWEPT_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Enables the shape's use of temporal bounds during the post integration broad phase check", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("simulationFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable collision filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable collision filter data", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="p3ShapeDescTemplate.simulationFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="p3ShapeDescTemplate.simulationFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="p3ShapeDescTemplate.simulationFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="p3ShapeDescTemplate.simulationFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("queryFilterData", TYPE_STRUCT, "P3FilterData", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the user definable query filter data.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the user definable query filter data", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="p3ShapeDescTemplate.queryFilterData.word0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("word0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word0 of the filter data", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="p3ShapeDescTemplate.queryFilterData.word1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("word1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word1 of the filter data", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="p3ShapeDescTemplate.queryFilterData.word2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("word2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word2 of the filter data", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="p3ShapeDescTemplate.queryFilterData.word3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("word3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "word3 of the filter data", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=161, longName="p3ShapeDescTemplate.material" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[161]; + ParamDef->init("material", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A PxMaterial pointer for the shape.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "A PxMaterial pointer for the shape", true); + ParamDefTable[161].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=162, longName="p3ShapeDescTemplate.contactOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[162]; + ParamDef->init("contactOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the contact offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the contact offset", true); + ParamDefTable[162].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=163, longName="p3ShapeDescTemplate.restOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[163]; + ParamDef->init("restOffset", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the rest offset; if -1 it uses the global default.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the rest offset", true); + ParamDefTable[163].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=164, longName="p3ShapeDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[164]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[164].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=165, longName="p3ShapeDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[165]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This is applied to all shapes generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape.", true); + ParamDefTable[165].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=166, longName="p3ActorDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[166]; + ParamDef->init("p3ActorDescTemplate", TYPE_STRUCT, "P3ActorDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameters the application can override on any actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameters the application can override on any actors created", true); + ParamDefTable[166].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=167, longName="p3ActorDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[167]; + ParamDef->init("flags", TYPE_STRUCT, "P3ActorFlags", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=168, longName="p3ActorDescTemplate.flags.eVISUALIZATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[168]; + ParamDef->init("eVISUALIZATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enable debug renderer for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enable debug renderer for this actor", true); + ParamDefTable[168].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=169, longName="p3ActorDescTemplate.flags.eDISABLE_GRAVITY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[169]; + ParamDef->init("eDISABLE_GRAVITY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Disables scene gravity for this actor.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Disables scene gravity for this actor", true); + ParamDefTable[169].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=170, longName="p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[170]; + ParamDef->init("eSEND_SLEEP_NOTIFIES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events.\n This flag will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables the sending of PxSimulationEventCallback::onWake() and PxSimulationEventCallback::onSleep() notify events", true); + ParamDefTable[170].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=171, longName="p3ActorDescTemplate.dominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[171]; + ParamDef->init("dominanceGroup", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Assigns dynamic actors a dominance group identifier.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Assigns dynamic actors a dominance group identifier.", true); + ParamDefTable[171].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=172, longName="p3ActorDescTemplate.ownerClient" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[172]; + ParamDef->init("ownerClient", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the owner client of an actor.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the owner client of an actor.", true); + ParamDefTable[172].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=173, longName="p3ActorDescTemplate.clientBehaviorBits" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[173]; + ParamDef->init("clientBehaviorBits", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Changes the behavior bits initially specified with PxActorDesc::clientBehaviorBits.", true); + ParamDefTable[173].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[174]; + ParamDef->init("contactReportFlags", TYPE_STRUCT, "P3PairFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of P3PairFlag flags.\n This will be applied to all shapes generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of P3PairFlag flags", true); + ParamDefTable[174].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=175, longName="p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[175]; + ParamDef->init("eRESOLVE_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Process the contacts of this collision pair in the dynamics solver.", true); + ParamDefTable[175].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=176, longName="p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[176]; + ParamDef->init("eMODIFY_CONTACTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact modification callback for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact modification callback for this collision pair. ", true); + ParamDefTable[176].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=177, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[177]; + ParamDef->init("eNOTIFY_TOUCH_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object enters the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair start to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback when this collision pair starts to be in contact", true); + ParamDefTable[177].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=178, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[178]; + ParamDef->init("eNOTIFY_TOUCH_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Process the contacts of this collision pair in the dynamics solver.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback or trigger callback while this collision pair is in contact", true); + ParamDefTable[178].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=179, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[179]; + ParamDef->init("eNOTIFY_TOUCH_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback or trigger callback when this collision pair stops to be in contact.\nIf one of the two collision objects is a trigger shape (see PxShapeFlag::eTRIGGER_SHAPE) then the trigger callback will get called as soon as the other object leaves the trigger volume. If none of the two collision objects is a trigger shape then the contact report callback will get called when the actors of this collision pair stop to be in contact.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", " Call contact report callback or trigger callback when this collision pair stops to be in contact.", true); + ParamDefTable[179].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=180, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[180]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_FOUND", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair exceeds one of the actor-defined force thresholds.", true); + ParamDefTable[180].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=181, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[181]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_PERSISTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair continues to exceed one of the actor-defined force thresholds", true); + ParamDefTable[181].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=182, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[182]; + ParamDef->init("eNOTIFY_THRESHOLD_FORCE_LOST", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Call contact report callback when the contact force between the actors of this collision pair falls below one of the actor-defined force thresholds (includes the case where this collision pair stops being in contact).", true); + ParamDefTable[182].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=183, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[183]; + ParamDef->init("eNOTIFY_CONTACT_POINTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact points in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact points in contact reports for this collision pair.", true); + ParamDefTable[183].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=184, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[184]; + ParamDef->init("eNOTIFY_CONTACT_FORCES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).\n\nNote: Only takes effect if the colliding actors are rigid bodies\n", true); + HintTable[1].init("shortDescription", "Provide the (summed total) friction force and normal force in contact reports for this collision pair (see PxContactPair).", true); + ParamDefTable[184].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=185, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[185]; + ParamDef->init("eNOTIFY_CONTACT_FORCE_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide contact forces per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide contact forces per contact point in contact reports for this collision pair.", true); + ParamDefTable[185].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=186, longName="p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[186]; + ParamDef->init("eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Provide feature indices per contact point in contact reports for this collision pair.\n\nNote: Only takes effect if the colliding actors are rigid bodies.\n", true); + HintTable[1].init("shortDescription", "Provide feature indices per contact point in contact reports for this collision pair.", true); + ParamDefTable[186].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=187, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[187]; + ParamDef->init("eSWEPT_CONTACT_GENERATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.\n\nNote: Non-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept contact generation for this pair. While more costly, with swept contact generation objects pressed into each other will not tunnel through each other. It is best used for pairs involving important small or thin objects.", true); + ParamDefTable[187].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=188, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[188]; + ParamDef->init("eSWEPT_INTEGRATION_LINEAR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "A less expensive approximation of eSWEPT_INTEGRATION_FULL, where the rotational motion of the objects is neglected. Should be used when performance is of the essence, for objects where angular motion is unlikely to lead to tunneling.", true); + ParamDefTable[188].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=189, longName="p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[189]; + ParamDef->init("eSWEPT_INTEGRATION_FULL", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not.\nThe user should consider the less expensive version eSWEPT_INTEGRATION_LINEAR where applicable.\n\nNote: The scene must have PxSceneFlag::eENABLE_SWEPT_INTEGRATION enabled to use this feature.\nNon-static shapes of the pair should have PxShapeFlag::eUSE_SWEPT_BOUNDS specified for this feature to work correctly.\n", true); + HintTable[1].init("shortDescription", "Enables swept integration for this pair. Pairs which have this feature enabled check whether the motion of the involved shapes during integration intersect, thus preventing shapes from tunneling through each other. Kinematic motion is taken into account, but movement due to repositioning by the user is not. ", true); + ParamDefTable[189].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=190, longName="p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[190]; + ParamDef->init("eCONTACT_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to do simple contact processing for this collision pair.", true); + ParamDefTable[190].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=191, longName="p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[191]; + ParamDef->init("eTRIGGER_DEFAULT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Provided default flag to get commonly used trigger behavior for this collision pair.", true); + ParamDefTable[191].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=192, longName="p3ActorDescTemplate.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[192]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[192].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=193, longName="p3ActorDescTemplate.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[193]; + ParamDef->init("name", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[2].init("shortDescription", "Optional name string for a shape; must be set by the application and must be a persistent pointer.", true); + ParamDefTable[193].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=194, longName="p3BodyDescTemplate" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[194]; + ParamDef->init("p3BodyDescTemplate", TYPE_STRUCT, "P3BodyDescTemplate", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created.", true); + HintTable[2].init("shortDescription", "Contains the parameterse that the application can override for the body descriptor of rigid body actors created", true); + ParamDefTable[194].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=195, longName="p3BodyDescTemplate.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[195]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The density of the body. Used to compute the mass of the body. If the body descriptor contains a zero mass but the actor descriptor contains a non-zero density, we compute a new mass automatically from the density and a shapes.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The density of the body. Used to compute the mass of the body.", true); + ParamDefTable[195].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=196, longName="p3BodyDescTemplate.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[196]; + ParamDef->init("flags", TYPE_STRUCT, "P3BodyDescFlags", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Combination of body descriptor flags.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Combination of body descriptor flags", true); + ParamDefTable[196].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=197, longName="p3BodyDescTemplate.flags.eKINEMATIC" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[197]; + ParamDef->init("eKINEMATIC", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Kinematic actors are special dynamic actors that are not influenced by forces (such as gravity), and have no momentum. They are considered to have infinite mass and can be moved around the world using the moveKinematic() method. They will push regular dynamic actors out of the way. Kinematics will not collide with static or other kinematic objects.\nKinematic actors are great for moving platforms or characters, where direct motion control is desired.\nYou can not connect Reduced joints to kinematic actors. Lagrange joints work ok if the platform is moving with a relatively low, uniform velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Enables kinematic mode for the actor", true); + ParamDefTable[197].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=198, longName="p3BodyDescTemplate.sleepThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[198]; + ParamDef->init("sleepThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the mass-normalized kinetic energy threshold below which an actor may go to sleep.", true); + ParamDefTable[198].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=199, longName="p3BodyDescTemplate.wakeUpCounter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[199]; + ParamDef->init("wakeUpCounter", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The bodys initial wake up counter.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The bodys initial wake up counter", true); + ParamDefTable[199].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=200, longName="p3BodyDescTemplate.linearDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[200]; + ParamDef->init("linearDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Linear damping applied to the body.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Linear damping applied to the body", true); + ParamDefTable[200].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=201, longName="p3BodyDescTemplate.angularDamping" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[201]; + ParamDef->init("angularDamping", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the angular damping coefficient.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Sets the angular damping coefficient", true); + ParamDefTable[201].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=202, longName="p3BodyDescTemplate.maxAngularVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[202]; + ParamDef->init("maxAngularVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum allowed angular velocity.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum allowed angular velocity", true); + ParamDefTable[202].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=203, longName="p3BodyDescTemplate.solverIterationCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[203]; + ParamDef->init("solverIterationCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Sets the solver iteration counts for the body.\nThe solver iteration count determines how accurately joints and contacts are resolved. If you are having trouble with jointed bodies oscillating and behaving erratically, then setting a higher position iteration count may improve their stability.\nIf intersecting bodies are being depenetrated too violently, increase the number of velocity iterations.", true); + HintTable[1].init("shortDescription", "Sets the solver iteration counts for the body", true); + ParamDefTable[203].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=204, longName="p3BodyDescTemplate.contactReportThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[204]; + ParamDef->init("contactReportThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The force threshold for contact reports.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "The force threshold for contact reports", true); + ParamDefTable[204].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=205, longName="p3BodyDescTemplate.sleepLinearVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[205]; + ParamDef->init("sleepLinearVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Maximum linear velocity at which body can go to sleep.\n This will be applied to all actors generated for this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Maximum linear velocity at which body can go to sleep", true); + ParamDefTable[205].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + Children[9] = PDEF_PTR(10); + Children[10] = PDEF_PTR(11); + Children[11] = PDEF_PTR(12); + Children[12] = PDEF_PTR(13); + Children[13] = PDEF_PTR(14); + Children[14] = PDEF_PTR(15); + Children[15] = PDEF_PTR(17); + Children[16] = PDEF_PTR(19); + Children[17] = PDEF_PTR(51); + Children[18] = PDEF_PTR(62); + Children[19] = PDEF_PTR(96); + Children[20] = PDEF_PTR(125); + Children[21] = PDEF_PTR(142); + Children[22] = PDEF_PTR(166); + Children[23] = PDEF_PTR(194); + + ParamDefTable[0].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=15, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(18); + + ParamDefTable[17].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=19, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(20); + Children[1] = PDEF_PTR(21); + Children[2] = PDEF_PTR(22); + Children[3] = PDEF_PTR(23); + Children[4] = PDEF_PTR(24); + Children[5] = PDEF_PTR(25); + Children[6] = PDEF_PTR(26); + Children[7] = PDEF_PTR(27); + Children[8] = PDEF_PTR(28); + Children[9] = PDEF_PTR(29); + Children[10] = PDEF_PTR(30); + Children[11] = PDEF_PTR(31); + Children[12] = PDEF_PTR(32); + Children[13] = PDEF_PTR(33); + Children[14] = PDEF_PTR(34); + Children[15] = PDEF_PTR(35); + Children[16] = PDEF_PTR(36); + Children[17] = PDEF_PTR(43); + Children[18] = PDEF_PTR(44); + Children[19] = PDEF_PTR(45); + + ParamDefTable[19].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + + ParamDefTable[36].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + Children[8] = PDEF_PTR(61); + + ParamDefTable[52].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=62, longName="shapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(63); + Children[1] = PDEF_PTR(84); + Children[2] = PDEF_PTR(85); + Children[3] = PDEF_PTR(91); + Children[4] = PDEF_PTR(92); + Children[5] = PDEF_PTR(93); + Children[6] = PDEF_PTR(94); + Children[7] = PDEF_PTR(95); + + ParamDefTable[62].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=63, longName="shapeDescTemplate.flags" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(64); + Children[1] = PDEF_PTR(65); + Children[2] = PDEF_PTR(66); + Children[3] = PDEF_PTR(67); + Children[4] = PDEF_PTR(68); + Children[5] = PDEF_PTR(69); + Children[6] = PDEF_PTR(70); + Children[7] = PDEF_PTR(71); + Children[8] = PDEF_PTR(72); + Children[9] = PDEF_PTR(73); + Children[10] = PDEF_PTR(74); + Children[11] = PDEF_PTR(75); + Children[12] = PDEF_PTR(76); + Children[13] = PDEF_PTR(77); + Children[14] = PDEF_PTR(78); + Children[15] = PDEF_PTR(79); + Children[16] = PDEF_PTR(80); + Children[17] = PDEF_PTR(81); + Children[18] = PDEF_PTR(82); + Children[19] = PDEF_PTR(83); + + ParamDefTable[63].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=85, longName="shapeDescTemplate.groupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + + ParamDefTable[85].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=96, longName="actorDescTemplate" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(105); + Children[2] = PDEF_PTR(106); + Children[3] = PDEF_PTR(107); + Children[4] = PDEF_PTR(108); + Children[5] = PDEF_PTR(121); + Children[6] = PDEF_PTR(122); + Children[7] = PDEF_PTR(123); + Children[8] = PDEF_PTR(124); + + ParamDefTable[96].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=97, longName="actorDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(98); + Children[1] = PDEF_PTR(99); + Children[2] = PDEF_PTR(100); + Children[3] = PDEF_PTR(101); + Children[4] = PDEF_PTR(102); + Children[5] = PDEF_PTR(103); + Children[6] = PDEF_PTR(104); + + ParamDefTable[97].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=108, longName="actorDescTemplate.contactReportFlags" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(109); + Children[1] = PDEF_PTR(110); + Children[2] = PDEF_PTR(111); + Children[3] = PDEF_PTR(112); + Children[4] = PDEF_PTR(113); + Children[5] = PDEF_PTR(114); + Children[6] = PDEF_PTR(115); + Children[7] = PDEF_PTR(116); + Children[8] = PDEF_PTR(117); + Children[9] = PDEF_PTR(118); + Children[10] = PDEF_PTR(119); + Children[11] = PDEF_PTR(120); + + ParamDefTable[108].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=125, longName="bodyDescTemplate" + { + static Definition* Children[12]; + Children[0] = PDEF_PTR(126); + Children[1] = PDEF_PTR(131); + Children[2] = PDEF_PTR(132); + Children[3] = PDEF_PTR(133); + Children[4] = PDEF_PTR(134); + Children[5] = PDEF_PTR(135); + Children[6] = PDEF_PTR(136); + Children[7] = PDEF_PTR(137); + Children[8] = PDEF_PTR(138); + Children[9] = PDEF_PTR(139); + Children[10] = PDEF_PTR(140); + Children[11] = PDEF_PTR(141); + + ParamDefTable[125].setChildren(Children, 12); + } + + // SetChildren for: nodeIndex=126, longName="bodyDescTemplate.flags" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(128); + Children[2] = PDEF_PTR(129); + Children[3] = PDEF_PTR(130); + + ParamDefTable[126].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=142, longName="p3ShapeDescTemplate" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(143); + Children[1] = PDEF_PTR(151); + Children[2] = PDEF_PTR(156); + Children[3] = PDEF_PTR(161); + Children[4] = PDEF_PTR(162); + Children[5] = PDEF_PTR(163); + Children[6] = PDEF_PTR(164); + Children[7] = PDEF_PTR(165); + + ParamDefTable[142].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=143, longName="p3ShapeDescTemplate.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(144); + Children[1] = PDEF_PTR(145); + Children[2] = PDEF_PTR(146); + Children[3] = PDEF_PTR(147); + Children[4] = PDEF_PTR(148); + Children[5] = PDEF_PTR(149); + Children[6] = PDEF_PTR(150); + + ParamDefTable[143].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=151, longName="p3ShapeDescTemplate.simulationFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(152); + Children[1] = PDEF_PTR(153); + Children[2] = PDEF_PTR(154); + Children[3] = PDEF_PTR(155); + + ParamDefTable[151].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=156, longName="p3ShapeDescTemplate.queryFilterData" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(157); + Children[1] = PDEF_PTR(158); + Children[2] = PDEF_PTR(159); + Children[3] = PDEF_PTR(160); + + ParamDefTable[156].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=166, longName="p3ActorDescTemplate" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(167); + Children[1] = PDEF_PTR(171); + Children[2] = PDEF_PTR(172); + Children[3] = PDEF_PTR(173); + Children[4] = PDEF_PTR(174); + Children[5] = PDEF_PTR(192); + Children[6] = PDEF_PTR(193); + + ParamDefTable[166].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=167, longName="p3ActorDescTemplate.flags" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(168); + Children[1] = PDEF_PTR(169); + Children[2] = PDEF_PTR(170); + + ParamDefTable[167].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=174, longName="p3ActorDescTemplate.contactReportFlags" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(175); + Children[1] = PDEF_PTR(176); + Children[2] = PDEF_PTR(177); + Children[3] = PDEF_PTR(178); + Children[4] = PDEF_PTR(179); + Children[5] = PDEF_PTR(180); + Children[6] = PDEF_PTR(181); + Children[7] = PDEF_PTR(182); + Children[8] = PDEF_PTR(183); + Children[9] = PDEF_PTR(184); + Children[10] = PDEF_PTR(185); + Children[11] = PDEF_PTR(186); + Children[12] = PDEF_PTR(187); + Children[13] = PDEF_PTR(188); + Children[14] = PDEF_PTR(189); + Children[15] = PDEF_PTR(190); + Children[16] = PDEF_PTR(191); + + ParamDefTable[174].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=194, longName="p3BodyDescTemplate" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(195); + Children[1] = PDEF_PTR(196); + Children[2] = PDEF_PTR(198); + Children[3] = PDEF_PTR(199); + Children[4] = PDEF_PTR(200); + Children[5] = PDEF_PTR(201); + Children[6] = PDEF_PTR(202); + Children[7] = PDEF_PTR(203); + Children[8] = PDEF_PTR(204); + Children[9] = PDEF_PTR(205); + + ParamDefTable[194].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=196, longName="p3BodyDescTemplate.flags" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(197); + + ParamDefTable[196].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleActorParam_0p9::initStrings(void) +{ + crumbleEmitterName.isAllocated = false; + crumbleEmitterName.buf = (const char*)0; + dustEmitterName.isAllocated = false; + dustEmitterName.buf = (const char*)0; +} + +void DestructibleActorParam_0p9::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; +} + +void DestructibleActorParam_0p9::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + crumbleParticleSpacing = float(0); + dustParticleSpacing = float(0); + { + const float value[12] = {true}; + for (int i = 0; i < 12; ++i) + { + globalPose[i] = value[i]; + } + } + scale = physx::PxVec3(init(1, 1, 1)); + dynamic = bool(true); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + keepPreviousFrameBoneBuffer = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + renderStaticChunksSeparately = bool(false); + createChunkEvents = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + shapeDescTemplate.flags.NX_TRIGGER_ON_ENTER = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_LEAVE = bool(false); + shapeDescTemplate.flags.NX_TRIGGER_ON_STAY = bool(false); + shapeDescTemplate.flags.NX_SF_VISUALIZATION = bool(true); + shapeDescTemplate.flags.NX_SF_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FEATURE_INDICES = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RAYCASTING = bool(false); + shapeDescTemplate.flags.NX_SF_POINT_CONTACT_FORCE = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_FLUID_TWOWAY = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_RESPONSE = bool(false); + shapeDescTemplate.flags.NX_SF_DYNAMIC_DYNAMIC_CCD = bool(false); + shapeDescTemplate.flags.NX_SF_DISABLE_SCENE_QUERIES = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_CLOTH_TWOWAY = bool(true); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DRAIN = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_DISABLE_COLLISION = bool(false); + shapeDescTemplate.flags.NX_SF_SOFTBODY_TWOWAY = bool(true); + shapeDescTemplate.collisionGroup = uint16_t(0); + shapeDescTemplate.groupsMask.useGroupsMask = bool(false); + shapeDescTemplate.groupsMask.bits0 = uint32_t(0); + shapeDescTemplate.groupsMask.bits1 = uint32_t(0); + shapeDescTemplate.groupsMask.bits2 = uint32_t(0); + shapeDescTemplate.groupsMask.bits3 = uint32_t(0); + shapeDescTemplate.materialIndex = uint16_t(0); + shapeDescTemplate.density = float(1); + shapeDescTemplate.skinWidth = float(-1); + shapeDescTemplate.userData = uint64_t(0); + shapeDescTemplate.name = uint64_t(0); + actorDescTemplate.flags.NX_AF_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_DISABLE_RESPONSE = bool(false); + actorDescTemplate.flags.NX_AF_LOCK_COM = bool(false); + actorDescTemplate.flags.NX_AF_FLUID_DISABLE_COLLISION = bool(false); + actorDescTemplate.flags.NX_AF_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.flags.NX_AF_FORCE_CONE_FRICTION = bool(false); + actorDescTemplate.flags.NX_AF_USER_ACTOR_PAIR_FILTERING = bool(false); + actorDescTemplate.density = float(1); + actorDescTemplate.actorCollisionGroup = uint16_t(0); + actorDescTemplate.dominanceGroup = uint16_t(0); + actorDescTemplate.contactReportFlags.NX_IGNORE_PAIR = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_IMPACT = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_ROLL = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_SLIDE = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_FORCES = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_START_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_END_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_ON_TOUCH_FORCE_THRESHOLD = bool(false); + actorDescTemplate.contactReportFlags.NX_NOTIFY_CONTACT_MODIFICATION = bool(false); + actorDescTemplate.forceFieldMaterial = uint16_t(0); + actorDescTemplate.userData = uint64_t(0); + actorDescTemplate.name = uint64_t(0); + actorDescTemplate.compartment = uint64_t(0); + bodyDescTemplate.flags.NX_BF_DISABLE_GRAVITY = bool(false); + bodyDescTemplate.flags.NX_BF_FILTER_SLEEP_VEL = bool(false); + bodyDescTemplate.flags.NX_BF_ENERGY_SLEEP_TEST = bool(true); + bodyDescTemplate.flags.NX_BF_VISUALIZATION = bool(true); + bodyDescTemplate.wakeUpCounter = float(0.4); + bodyDescTemplate.linearDamping = float(0); + bodyDescTemplate.angularDamping = float(0.05); + bodyDescTemplate.maxAngularVelocity = float(-1); + bodyDescTemplate.CCDMotionThreshold = float(0); + bodyDescTemplate.sleepLinearVelocity = float(-1); + bodyDescTemplate.sleepAngularVelocity = float(-1); + bodyDescTemplate.solverIterationCount = uint32_t(4); + bodyDescTemplate.sleepEnergyThreshold = float(0.005); + bodyDescTemplate.sleepDamping = float(0); + bodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3ShapeDescTemplate.flags.eSIMULATION_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eSCENE_QUERY_SHAPE = bool(true); + p3ShapeDescTemplate.flags.eTRIGGER_SHAPE = bool(false); + p3ShapeDescTemplate.flags.eVISUALIZATION = bool(true); + p3ShapeDescTemplate.flags.ePARTICLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eDEFORMABLE_DRAIN = bool(false); + p3ShapeDescTemplate.flags.eUSE_SWEPT_BOUNDS = bool(false); + p3ShapeDescTemplate.simulationFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.simulationFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word0 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word1 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word2 = uint32_t(0); + p3ShapeDescTemplate.queryFilterData.word3 = uint32_t(0); + p3ShapeDescTemplate.material = uint64_t(0); + p3ShapeDescTemplate.contactOffset = float(0.02); + p3ShapeDescTemplate.restOffset = float(0); + p3ShapeDescTemplate.userData = uint64_t(0); + p3ShapeDescTemplate.name = uint64_t(0); + p3ActorDescTemplate.flags.eVISUALIZATION = bool(true); + p3ActorDescTemplate.flags.eDISABLE_GRAVITY = bool(false); + p3ActorDescTemplate.flags.eSEND_SLEEP_NOTIFIES = bool(true); + p3ActorDescTemplate.dominanceGroup = uint8_t(0); + p3ActorDescTemplate.ownerClient = uint8_t(0); + p3ActorDescTemplate.clientBehaviorBits = uint32_t(0); + p3ActorDescTemplate.contactReportFlags.eRESOLVE_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eMODIFY_CONTACTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_TOUCH_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_FOUND = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_PERSISTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_THRESHOLD_FORCE_LOST = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_POINTS = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCES = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FORCE_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eNOTIFY_CONTACT_FEATURE_INDICES_PER_POINT = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_CONTACT_GENERATION = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_LINEAR = bool(false); + p3ActorDescTemplate.contactReportFlags.eSWEPT_INTEGRATION_FULL = bool(false); + p3ActorDescTemplate.contactReportFlags.eCONTACT_DEFAULT = bool(false); + p3ActorDescTemplate.contactReportFlags.eTRIGGER_DEFAULT = bool(false); + p3ActorDescTemplate.userData = uint64_t(0); + p3ActorDescTemplate.name = uint64_t(0); + p3BodyDescTemplate.density = float(1); + p3BodyDescTemplate.flags.eKINEMATIC = bool(false); + p3BodyDescTemplate.sleepThreshold = float(0.005); + p3BodyDescTemplate.wakeUpCounter = float(0.4); + p3BodyDescTemplate.linearDamping = float(0); + p3BodyDescTemplate.angularDamping = float(0.05); + p3BodyDescTemplate.maxAngularVelocity = float(7); + p3BodyDescTemplate.solverIterationCount = uint32_t(4); + p3BodyDescTemplate.contactReportThreshold = float(PX_MAX_F32); + p3BodyDescTemplate.sleepLinearVelocity = float(-1); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorParam_0p9::initReferences(void) +{ +} + +void DestructibleActorParam_0p9::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } +} + +void DestructibleActorParam_0p9::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleActorParam_0p9::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p0.cpp old mode 100644 new mode 100755 index 510fa9c..102ce00 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p0.cpp @@ -1,1484 +1,1484 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorState_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorState_0p0NS; - -const char* const DestructibleActorState_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 47; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 9, 10, 11, 44, 45, 46, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 37, 38, 30, 31, 32, 33, 34, 35, 39, 40, 41, - 42, 43, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->internalLODWeights), CHILDREN(9), 5 }, // internalLODWeights - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxDistance), NULL, 0 }, // internalLODWeights.maxDistance - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->distanceWeight), NULL, 0 }, // internalLODWeights.distanceWeight - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxAge), NULL, 0 }, // internalLODWeights.maxAge - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->ageWeight), NULL, 0 }, // internalLODWeights.ageWeight - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->bias), NULL, 0 }, // internalLODWeights.bias - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(14), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(35), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(41), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks -}; - - -bool DestructibleActorState_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorState_0p0::mBuiltFlagMutex; - -DestructibleActorState_0p0::DestructibleActorState_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorState_0p0::~DestructibleActorState_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorState_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorState_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p0::getParameterDefinitionTree(void) const -{ - DestructibleActorState_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorState_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorState_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorState_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorState_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorState_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="internalLODWeights" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("internalLODWeights", TYPE_STRUCT, "LODWeights", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Values include: maxDistance, distanceWeight, maxAge, ageWeight and bias.", true); - HintTable[1].init("shortDescription", "Parameters used internally to specify LOD behavior", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="internalLODWeights.maxDistance" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("maxDistance", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="internalLODWeights.distanceWeight" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("distanceWeight", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="internalLODWeights.maxAge" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("maxAge", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="internalLODWeights.ageWeight" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("ageWeight", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="internalLODWeights.bias" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("bias", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="lod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("lod", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Destructible actor LOD.", true); - HintTable[1].init("shortDescription", "Destructible actor LOD", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="forceLod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("forceLod", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); - HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); - HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="actorParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("actorParameters", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The destructible actor parameters.", true); - HintTable[2].init("shortDescription", "The destructible actor parameters", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorParam" }; - ParamDefTable[45].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="actorChunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("actorChunks", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; - ParamDefTable[46].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(44); - Children[7] = PDEF_PTR(45); - Children[8] = PDEF_PTR(46); - - ParamDefTable[0].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=3, longName="internalLODWeights" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(4); - Children[1] = PDEF_PTR(5); - Children[2] = PDEF_PTR(6); - Children[3] = PDEF_PTR(7); - Children[4] = PDEF_PTR(8); - - ParamDefTable[3].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=11, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(12); - Children[1] = PDEF_PTR(13); - Children[2] = PDEF_PTR(14); - Children[3] = PDEF_PTR(15); - Children[4] = PDEF_PTR(16); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - Children[11] = PDEF_PTR(23); - Children[12] = PDEF_PTR(24); - Children[13] = PDEF_PTR(25); - Children[14] = PDEF_PTR(26); - Children[15] = PDEF_PTR(27); - Children[16] = PDEF_PTR(28); - Children[17] = PDEF_PTR(29); - Children[18] = PDEF_PTR(36); - Children[19] = PDEF_PTR(37); - Children[20] = PDEF_PTR(38); - - ParamDefTable[11].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=29, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(30); - Children[1] = PDEF_PTR(31); - Children[2] = PDEF_PTR(32); - Children[3] = PDEF_PTR(33); - Children[4] = PDEF_PTR(34); - Children[5] = PDEF_PTR(35); - - ParamDefTable[29].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=38, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(39); - Children[1] = PDEF_PTR(40); - Children[2] = PDEF_PTR(41); - Children[3] = PDEF_PTR(42); - Children[4] = PDEF_PTR(43); - - ParamDefTable[38].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorState_0p0::initStrings(void) -{ -} - -void DestructibleActorState_0p0::initDynamicArrays(void) -{ -} - -void DestructibleActorState_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - enableCrumbleEmitter = bool(true); - enableDustEmitter = bool(true); - internalLODWeights.maxDistance = float(2000); - internalLODWeights.distanceWeight = float(0.5); - internalLODWeights.maxAge = float(10); - internalLODWeights.ageWeight = float(0.5); - internalLODWeights.bias = float(0); - lod = uint32_t(0); - forceLod = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorState_0p0::initReferences(void) -{ - actorParameters = NULL; - - actorChunks = NULL; - -} - -void DestructibleActorState_0p0::freeDynamicArrays(void) -{ -} - -void DestructibleActorState_0p0::freeStrings(void) -{ -} - -void DestructibleActorState_0p0::freeReferences(void) -{ - if (actorParameters) - { - actorParameters->destroy(); - } - - if (actorChunks) - { - actorChunks->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorState_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorState_0p0NS; + +const char* const DestructibleActorState_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 47; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 9, 10, 11, 44, 45, 46, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 36, 37, 38, 30, 31, 32, 33, 34, 35, 39, 40, 41, + 42, 43, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->internalLODWeights), CHILDREN(9), 5 }, // internalLODWeights + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxDistance), NULL, 0 }, // internalLODWeights.maxDistance + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->distanceWeight), NULL, 0 }, // internalLODWeights.distanceWeight + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxAge), NULL, 0 }, // internalLODWeights.maxAge + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->ageWeight), NULL, 0 }, // internalLODWeights.ageWeight + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->bias), NULL, 0 }, // internalLODWeights.bias + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(14), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(35), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(41), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks +}; + + +bool DestructibleActorState_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorState_0p0::mBuiltFlagMutex; + +DestructibleActorState_0p0::DestructibleActorState_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorState_0p0::~DestructibleActorState_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorState_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorState_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p0::getParameterDefinitionTree(void) const +{ + DestructibleActorState_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorState_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorState_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorState_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorState_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorState_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="internalLODWeights" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("internalLODWeights", TYPE_STRUCT, "LODWeights", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Values include: maxDistance, distanceWeight, maxAge, ageWeight and bias.", true); + HintTable[1].init("shortDescription", "Parameters used internally to specify LOD behavior", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="internalLODWeights.maxDistance" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("maxDistance", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="internalLODWeights.distanceWeight" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("distanceWeight", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="internalLODWeights.maxAge" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("maxAge", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="internalLODWeights.ageWeight" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("ageWeight", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="internalLODWeights.bias" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("bias", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="lod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("lod", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Destructible actor LOD.", true); + HintTable[1].init("shortDescription", "Destructible actor LOD", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="forceLod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("forceLod", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); + HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); + HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="actorParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("actorParameters", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The destructible actor parameters.", true); + HintTable[2].init("shortDescription", "The destructible actor parameters", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorParam" }; + ParamDefTable[45].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="actorChunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("actorChunks", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; + ParamDefTable[46].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(44); + Children[7] = PDEF_PTR(45); + Children[8] = PDEF_PTR(46); + + ParamDefTable[0].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=3, longName="internalLODWeights" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(4); + Children[1] = PDEF_PTR(5); + Children[2] = PDEF_PTR(6); + Children[3] = PDEF_PTR(7); + Children[4] = PDEF_PTR(8); + + ParamDefTable[3].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=11, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(12); + Children[1] = PDEF_PTR(13); + Children[2] = PDEF_PTR(14); + Children[3] = PDEF_PTR(15); + Children[4] = PDEF_PTR(16); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + Children[11] = PDEF_PTR(23); + Children[12] = PDEF_PTR(24); + Children[13] = PDEF_PTR(25); + Children[14] = PDEF_PTR(26); + Children[15] = PDEF_PTR(27); + Children[16] = PDEF_PTR(28); + Children[17] = PDEF_PTR(29); + Children[18] = PDEF_PTR(36); + Children[19] = PDEF_PTR(37); + Children[20] = PDEF_PTR(38); + + ParamDefTable[11].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=29, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(30); + Children[1] = PDEF_PTR(31); + Children[2] = PDEF_PTR(32); + Children[3] = PDEF_PTR(33); + Children[4] = PDEF_PTR(34); + Children[5] = PDEF_PTR(35); + + ParamDefTable[29].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=38, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(39); + Children[1] = PDEF_PTR(40); + Children[2] = PDEF_PTR(41); + Children[3] = PDEF_PTR(42); + Children[4] = PDEF_PTR(43); + + ParamDefTable[38].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorState_0p0::initStrings(void) +{ +} + +void DestructibleActorState_0p0::initDynamicArrays(void) +{ +} + +void DestructibleActorState_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + enableCrumbleEmitter = bool(true); + enableDustEmitter = bool(true); + internalLODWeights.maxDistance = float(2000); + internalLODWeights.distanceWeight = float(0.5); + internalLODWeights.maxAge = float(10); + internalLODWeights.ageWeight = float(0.5); + internalLODWeights.bias = float(0); + lod = uint32_t(0); + forceLod = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorState_0p0::initReferences(void) +{ + actorParameters = NULL; + + actorChunks = NULL; + +} + +void DestructibleActorState_0p0::freeDynamicArrays(void) +{ +} + +void DestructibleActorState_0p0::freeStrings(void) +{ +} + +void DestructibleActorState_0p0::freeReferences(void) +{ + if (actorParameters) + { + actorParameters->destroy(); + } + + if (actorChunks) + { + actorChunks->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p1.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p1.cpp old mode 100644 new mode 100755 index 193a6ba..ed3cbbc --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p1.cpp @@ -1,1510 +1,1510 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorState_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorState_0p1NS; - -const char* const DestructibleActorState_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 48; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 9, 10, 11, 45, 46, 47, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 38, 39, 30, 31, 32, 33, 34, 35, 36, 40, 41, - 42, 43, 44, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->internalLODWeights), CHILDREN(9), 5 }, // internalLODWeights - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxDistance), NULL, 0 }, // internalLODWeights.maxDistance - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->distanceWeight), NULL, 0 }, // internalLODWeights.distanceWeight - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxAge), NULL, 0 }, // internalLODWeights.maxAge - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->ageWeight), NULL, 0 }, // internalLODWeights.ageWeight - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->bias), NULL, 0 }, // internalLODWeights.bias - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(14), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(35), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(42), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks -}; - - -bool DestructibleActorState_0p1::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorState_0p1::mBuiltFlagMutex; - -DestructibleActorState_0p1::DestructibleActorState_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorState_0p1::~DestructibleActorState_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorState_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorState_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p1::getParameterDefinitionTree(void) const -{ - DestructibleActorState_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorState_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorState_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorState_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorState_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorState_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="internalLODWeights" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("internalLODWeights", TYPE_STRUCT, "LODWeights", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Values include: maxDistance, distanceWeight, maxAge, ageWeight and bias.", true); - HintTable[1].init("shortDescription", "Parameters used internally to specify LOD behavior", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="internalLODWeights.maxDistance" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("maxDistance", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="internalLODWeights.distanceWeight" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("distanceWeight", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="internalLODWeights.maxAge" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("maxAge", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="internalLODWeights.ageWeight" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("ageWeight", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="internalLODWeights.bias" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("bias", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="lod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("lod", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Destructible actor LOD.", true); - HintTable[1].init("shortDescription", "Destructible actor LOD", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="forceLod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("forceLod", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); - HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); - HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="actorParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("actorParameters", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The destructible actor parameters.", true); - HintTable[2].init("shortDescription", "The destructible actor parameters", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorParam" }; - ParamDefTable[46].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="actorChunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("actorChunks", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; - ParamDefTable[47].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(45); - Children[7] = PDEF_PTR(46); - Children[8] = PDEF_PTR(47); - - ParamDefTable[0].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=3, longName="internalLODWeights" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(4); - Children[1] = PDEF_PTR(5); - Children[2] = PDEF_PTR(6); - Children[3] = PDEF_PTR(7); - Children[4] = PDEF_PTR(8); - - ParamDefTable[3].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=11, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(12); - Children[1] = PDEF_PTR(13); - Children[2] = PDEF_PTR(14); - Children[3] = PDEF_PTR(15); - Children[4] = PDEF_PTR(16); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - Children[11] = PDEF_PTR(23); - Children[12] = PDEF_PTR(24); - Children[13] = PDEF_PTR(25); - Children[14] = PDEF_PTR(26); - Children[15] = PDEF_PTR(27); - Children[16] = PDEF_PTR(28); - Children[17] = PDEF_PTR(29); - Children[18] = PDEF_PTR(37); - Children[19] = PDEF_PTR(38); - Children[20] = PDEF_PTR(39); - - ParamDefTable[11].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=29, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(30); - Children[1] = PDEF_PTR(31); - Children[2] = PDEF_PTR(32); - Children[3] = PDEF_PTR(33); - Children[4] = PDEF_PTR(34); - Children[5] = PDEF_PTR(35); - Children[6] = PDEF_PTR(36); - - ParamDefTable[29].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(40); - Children[1] = PDEF_PTR(41); - Children[2] = PDEF_PTR(42); - Children[3] = PDEF_PTR(43); - Children[4] = PDEF_PTR(44); - - ParamDefTable[39].setChildren(Children, 5); - } - - mBuiltFlag = true; - -} -void DestructibleActorState_0p1::initStrings(void) -{ -} - -void DestructibleActorState_0p1::initDynamicArrays(void) -{ -} - -void DestructibleActorState_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - enableCrumbleEmitter = bool(true); - enableDustEmitter = bool(true); - internalLODWeights.maxDistance = float(2000); - internalLODWeights.distanceWeight = float(0.5); - internalLODWeights.maxAge = float(10); - internalLODWeights.ageWeight = float(0.5); - internalLODWeights.bias = float(0); - lod = uint32_t(0); - forceLod = bool(false); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorState_0p1::initReferences(void) -{ - actorParameters = NULL; - - actorChunks = NULL; - -} - -void DestructibleActorState_0p1::freeDynamicArrays(void) -{ -} - -void DestructibleActorState_0p1::freeStrings(void) -{ -} - -void DestructibleActorState_0p1::freeReferences(void) -{ - if (actorParameters) - { - actorParameters->destroy(); - } - - if (actorChunks) - { - actorChunks->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorState_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorState_0p1NS; + +const char* const DestructibleActorState_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 48; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 9, 10, 11, 45, 46, 47, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 37, 38, 39, 30, 31, 32, 33, 34, 35, 36, 40, 41, + 42, 43, 44, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->internalLODWeights), CHILDREN(9), 5 }, // internalLODWeights + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxDistance), NULL, 0 }, // internalLODWeights.maxDistance + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->distanceWeight), NULL, 0 }, // internalLODWeights.distanceWeight + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxAge), NULL, 0 }, // internalLODWeights.maxAge + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->ageWeight), NULL, 0 }, // internalLODWeights.ageWeight + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->bias), NULL, 0 }, // internalLODWeights.bias + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(14), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(35), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(42), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks +}; + + +bool DestructibleActorState_0p1::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorState_0p1::mBuiltFlagMutex; + +DestructibleActorState_0p1::DestructibleActorState_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorState_0p1::~DestructibleActorState_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorState_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorState_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p1::getParameterDefinitionTree(void) const +{ + DestructibleActorState_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorState_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorState_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorState_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorState_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorState_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="internalLODWeights" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("internalLODWeights", TYPE_STRUCT, "LODWeights", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Values include: maxDistance, distanceWeight, maxAge, ageWeight and bias.", true); + HintTable[1].init("shortDescription", "Parameters used internally to specify LOD behavior", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="internalLODWeights.maxDistance" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("maxDistance", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="internalLODWeights.distanceWeight" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("distanceWeight", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="internalLODWeights.maxAge" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("maxAge", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="internalLODWeights.ageWeight" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("ageWeight", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="internalLODWeights.bias" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("bias", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="lod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("lod", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Destructible actor LOD.", true); + HintTable[1].init("shortDescription", "Destructible actor LOD", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="forceLod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("forceLod", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); + HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); + HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="actorParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("actorParameters", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The destructible actor parameters.", true); + HintTable[2].init("shortDescription", "The destructible actor parameters", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorParam" }; + ParamDefTable[46].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="actorChunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("actorChunks", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; + ParamDefTable[47].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(45); + Children[7] = PDEF_PTR(46); + Children[8] = PDEF_PTR(47); + + ParamDefTable[0].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=3, longName="internalLODWeights" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(4); + Children[1] = PDEF_PTR(5); + Children[2] = PDEF_PTR(6); + Children[3] = PDEF_PTR(7); + Children[4] = PDEF_PTR(8); + + ParamDefTable[3].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=11, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(12); + Children[1] = PDEF_PTR(13); + Children[2] = PDEF_PTR(14); + Children[3] = PDEF_PTR(15); + Children[4] = PDEF_PTR(16); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + Children[11] = PDEF_PTR(23); + Children[12] = PDEF_PTR(24); + Children[13] = PDEF_PTR(25); + Children[14] = PDEF_PTR(26); + Children[15] = PDEF_PTR(27); + Children[16] = PDEF_PTR(28); + Children[17] = PDEF_PTR(29); + Children[18] = PDEF_PTR(37); + Children[19] = PDEF_PTR(38); + Children[20] = PDEF_PTR(39); + + ParamDefTable[11].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=29, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(30); + Children[1] = PDEF_PTR(31); + Children[2] = PDEF_PTR(32); + Children[3] = PDEF_PTR(33); + Children[4] = PDEF_PTR(34); + Children[5] = PDEF_PTR(35); + Children[6] = PDEF_PTR(36); + + ParamDefTable[29].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(40); + Children[1] = PDEF_PTR(41); + Children[2] = PDEF_PTR(42); + Children[3] = PDEF_PTR(43); + Children[4] = PDEF_PTR(44); + + ParamDefTable[39].setChildren(Children, 5); + } + + mBuiltFlag = true; + +} +void DestructibleActorState_0p1::initStrings(void) +{ +} + +void DestructibleActorState_0p1::initDynamicArrays(void) +{ +} + +void DestructibleActorState_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + enableCrumbleEmitter = bool(true); + enableDustEmitter = bool(true); + internalLODWeights.maxDistance = float(2000); + internalLODWeights.distanceWeight = float(0.5); + internalLODWeights.maxAge = float(10); + internalLODWeights.ageWeight = float(0.5); + internalLODWeights.bias = float(0); + lod = uint32_t(0); + forceLod = bool(false); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorState_0p1::initReferences(void) +{ + actorParameters = NULL; + + actorChunks = NULL; + +} + +void DestructibleActorState_0p1::freeDynamicArrays(void) +{ +} + +void DestructibleActorState_0p1::freeStrings(void) +{ +} + +void DestructibleActorState_0p1::freeReferences(void) +{ + if (actorParameters) + { + actorParameters->destroy(); + } + + if (actorChunks) + { + actorChunks->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p2.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p2.cpp old mode 100644 new mode 100755 index edf0520..6334487 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p2.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p2.cpp @@ -1,2268 +1,2268 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorState_0p2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorState_0p2NS; - -const char* const DestructibleActorState_0p2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 74; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 9, 10, 11, 71, 72, 73, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 34, 35, 36, 37, 43, 68, 69, 70, 27, 28, 29, 30, 31, 32, 33, - 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 56, 61, 51, 52, 53, 54, 55, 57, 58, - 59, 60, 62, 63, 64, 65, 66, 67, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->internalLODWeights), CHILDREN(9), 5 }, // internalLODWeights - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxDistance), NULL, 0 }, // internalLODWeights.maxDistance - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->distanceWeight), NULL, 0 }, // internalLODWeights.distanceWeight - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxAge), NULL, 0 }, // internalLODWeights.maxAge - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->ageWeight), NULL, 0 }, // internalLODWeights.ageWeight - { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->bias), NULL, 0 }, // internalLODWeights.bias - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(14), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(37), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(44), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(49), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(58), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(63), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(67), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks -}; - - -bool DestructibleActorState_0p2::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorState_0p2::mBuiltFlagMutex; - -DestructibleActorState_0p2::DestructibleActorState_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorState_0p2::~DestructibleActorState_0p2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorState_0p2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorState_0p2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p2::getParameterDefinitionTree(void) const -{ - DestructibleActorState_0p2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorState_0p2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorState_0p2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorState_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorState_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorState_0p2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="internalLODWeights" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("internalLODWeights", TYPE_STRUCT, "LODWeights", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Values include: maxDistance, distanceWeight, maxAge, ageWeight and bias.", true); - HintTable[1].init("shortDescription", "Parameters used internally to specify LOD behavior", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="internalLODWeights.maxDistance" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("maxDistance", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Helpful documentation goes here", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="internalLODWeights.distanceWeight" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("distanceWeight", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Helpful documentation goes here", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="internalLODWeights.maxAge" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("maxAge", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Helpful documentation goes here", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="internalLODWeights.ageWeight" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("ageWeight", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Helpful documentation goes here", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="internalLODWeights.bias" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("bias", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Helpful documentation goes here", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="lod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("lod", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Destructible actor LOD.", true); - HintTable[1].init("shortDescription", "Destructible actor LOD", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="forceLod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("forceLod", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); - HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); - HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[44].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="actorParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("actorParameters", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The destructible actor parameters.", true); - HintTable[2].init("shortDescription", "The destructible actor parameters", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorParam" }; - ParamDefTable[72].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="actorChunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("actorChunks", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; - ParamDefTable[73].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(71); - Children[7] = PDEF_PTR(72); - Children[8] = PDEF_PTR(73); - - ParamDefTable[0].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=3, longName="internalLODWeights" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(4); - Children[1] = PDEF_PTR(5); - Children[2] = PDEF_PTR(6); - Children[3] = PDEF_PTR(7); - Children[4] = PDEF_PTR(8); - - ParamDefTable[3].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=11, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(12); - Children[1] = PDEF_PTR(13); - Children[2] = PDEF_PTR(14); - Children[3] = PDEF_PTR(15); - Children[4] = PDEF_PTR(16); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - Children[11] = PDEF_PTR(23); - Children[12] = PDEF_PTR(24); - Children[13] = PDEF_PTR(25); - Children[14] = PDEF_PTR(26); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(36); - Children[18] = PDEF_PTR(37); - Children[19] = PDEF_PTR(43); - Children[20] = PDEF_PTR(68); - Children[21] = PDEF_PTR(69); - Children[22] = PDEF_PTR(70); - - ParamDefTable[11].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=26, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(27); - Children[1] = PDEF_PTR(28); - Children[2] = PDEF_PTR(29); - Children[3] = PDEF_PTR(30); - Children[4] = PDEF_PTR(31); - Children[5] = PDEF_PTR(32); - Children[6] = PDEF_PTR(33); - - ParamDefTable[26].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=37, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(38); - Children[1] = PDEF_PTR(39); - Children[2] = PDEF_PTR(40); - Children[3] = PDEF_PTR(41); - Children[4] = PDEF_PTR(42); - - ParamDefTable[37].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=43, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(44); - Children[1] = PDEF_PTR(45); - Children[2] = PDEF_PTR(46); - Children[3] = PDEF_PTR(47); - Children[4] = PDEF_PTR(48); - Children[5] = PDEF_PTR(49); - Children[6] = PDEF_PTR(50); - Children[7] = PDEF_PTR(56); - Children[8] = PDEF_PTR(61); - - ParamDefTable[43].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - - ParamDefTable[50].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - - ParamDefTable[56].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(62); - Children[1] = PDEF_PTR(63); - Children[2] = PDEF_PTR(64); - Children[3] = PDEF_PTR(65); - Children[4] = PDEF_PTR(66); - Children[5] = PDEF_PTR(67); - - ParamDefTable[61].setChildren(Children, 6); - } - - mBuiltFlag = true; - -} -void DestructibleActorState_0p2::initStrings(void) -{ -} - -void DestructibleActorState_0p2::initDynamicArrays(void) -{ -} - -void DestructibleActorState_0p2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - enableCrumbleEmitter = bool(true); - enableDustEmitter = bool(true); - internalLODWeights.maxDistance = float(2000); - internalLODWeights.distanceWeight = float(0.5); - internalLODWeights.maxAge = float(10); - internalLODWeights.ageWeight = float(0.5); - internalLODWeights.bias = float(0); - lod = uint32_t(0); - forceLod = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorState_0p2::initReferences(void) -{ - actorParameters = NULL; - - actorChunks = NULL; - -} - -void DestructibleActorState_0p2::freeDynamicArrays(void) -{ -} - -void DestructibleActorState_0p2::freeStrings(void) -{ -} - -void DestructibleActorState_0p2::freeReferences(void) -{ - if (actorParameters) - { - actorParameters->destroy(); - } - - if (actorChunks) - { - actorChunks->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorState_0p2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorState_0p2NS; + +const char* const DestructibleActorState_0p2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 74; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 9, 10, 11, 71, 72, 73, 4, 5, 6, 7, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 34, 35, 36, 37, 43, 68, 69, 70, 27, 28, 29, 30, 31, 32, 33, + 38, 39, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 56, 61, 51, 52, 53, 54, 55, 57, 58, + 59, 60, 62, 63, 64, 65, 66, 67, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->internalLODWeights), CHILDREN(9), 5 }, // internalLODWeights + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxDistance), NULL, 0 }, // internalLODWeights.maxDistance + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->distanceWeight), NULL, 0 }, // internalLODWeights.distanceWeight + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->maxAge), NULL, 0 }, // internalLODWeights.maxAge + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->ageWeight), NULL, 0 }, // internalLODWeights.ageWeight + { TYPE_F32, false, (size_t)(&((LODWeights_Type*)0)->bias), NULL, 0 }, // internalLODWeights.bias + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(14), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(37), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(44), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(49), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(58), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(63), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(67), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks +}; + + +bool DestructibleActorState_0p2::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorState_0p2::mBuiltFlagMutex; + +DestructibleActorState_0p2::DestructibleActorState_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorState_0p2::~DestructibleActorState_0p2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorState_0p2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorState_0p2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p2::getParameterDefinitionTree(void) const +{ + DestructibleActorState_0p2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorState_0p2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorState_0p2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorState_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorState_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorState_0p2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="internalLODWeights" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("internalLODWeights", TYPE_STRUCT, "LODWeights", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Values include: maxDistance, distanceWeight, maxAge, ageWeight and bias.", true); + HintTable[1].init("shortDescription", "Parameters used internally to specify LOD behavior", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="internalLODWeights.maxDistance" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("maxDistance", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Helpful documentation goes here", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="internalLODWeights.distanceWeight" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("distanceWeight", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Helpful documentation goes here", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="internalLODWeights.maxAge" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("maxAge", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Helpful documentation goes here", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="internalLODWeights.ageWeight" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("ageWeight", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Helpful documentation goes here", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="internalLODWeights.bias" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("bias", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Helpful documentation goes here", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="lod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("lod", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Destructible actor LOD.", true); + HintTable[1].init("shortDescription", "Destructible actor LOD", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="forceLod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("forceLod", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); + HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); + HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[44].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="actorParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("actorParameters", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The destructible actor parameters.", true); + HintTable[2].init("shortDescription", "The destructible actor parameters", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorParam" }; + ParamDefTable[72].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="actorChunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("actorChunks", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; + ParamDefTable[73].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(71); + Children[7] = PDEF_PTR(72); + Children[8] = PDEF_PTR(73); + + ParamDefTable[0].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=3, longName="internalLODWeights" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(4); + Children[1] = PDEF_PTR(5); + Children[2] = PDEF_PTR(6); + Children[3] = PDEF_PTR(7); + Children[4] = PDEF_PTR(8); + + ParamDefTable[3].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=11, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(12); + Children[1] = PDEF_PTR(13); + Children[2] = PDEF_PTR(14); + Children[3] = PDEF_PTR(15); + Children[4] = PDEF_PTR(16); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + Children[11] = PDEF_PTR(23); + Children[12] = PDEF_PTR(24); + Children[13] = PDEF_PTR(25); + Children[14] = PDEF_PTR(26); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(36); + Children[18] = PDEF_PTR(37); + Children[19] = PDEF_PTR(43); + Children[20] = PDEF_PTR(68); + Children[21] = PDEF_PTR(69); + Children[22] = PDEF_PTR(70); + + ParamDefTable[11].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=26, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(27); + Children[1] = PDEF_PTR(28); + Children[2] = PDEF_PTR(29); + Children[3] = PDEF_PTR(30); + Children[4] = PDEF_PTR(31); + Children[5] = PDEF_PTR(32); + Children[6] = PDEF_PTR(33); + + ParamDefTable[26].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=37, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(38); + Children[1] = PDEF_PTR(39); + Children[2] = PDEF_PTR(40); + Children[3] = PDEF_PTR(41); + Children[4] = PDEF_PTR(42); + + ParamDefTable[37].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=43, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(44); + Children[1] = PDEF_PTR(45); + Children[2] = PDEF_PTR(46); + Children[3] = PDEF_PTR(47); + Children[4] = PDEF_PTR(48); + Children[5] = PDEF_PTR(49); + Children[6] = PDEF_PTR(50); + Children[7] = PDEF_PTR(56); + Children[8] = PDEF_PTR(61); + + ParamDefTable[43].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + + ParamDefTable[50].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=56, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + + ParamDefTable[56].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(62); + Children[1] = PDEF_PTR(63); + Children[2] = PDEF_PTR(64); + Children[3] = PDEF_PTR(65); + Children[4] = PDEF_PTR(66); + Children[5] = PDEF_PTR(67); + + ParamDefTable[61].setChildren(Children, 6); + } + + mBuiltFlag = true; + +} +void DestructibleActorState_0p2::initStrings(void) +{ +} + +void DestructibleActorState_0p2::initDynamicArrays(void) +{ +} + +void DestructibleActorState_0p2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + enableCrumbleEmitter = bool(true); + enableDustEmitter = bool(true); + internalLODWeights.maxDistance = float(2000); + internalLODWeights.distanceWeight = float(0.5); + internalLODWeights.maxAge = float(10); + internalLODWeights.ageWeight = float(0.5); + internalLODWeights.bias = float(0); + lod = uint32_t(0); + forceLod = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorState_0p2::initReferences(void) +{ + actorParameters = NULL; + + actorChunks = NULL; + +} + +void DestructibleActorState_0p2::freeDynamicArrays(void) +{ +} + +void DestructibleActorState_0p2::freeStrings(void) +{ +} + +void DestructibleActorState_0p2::freeReferences(void) +{ + if (actorParameters) + { + actorParameters->destroy(); + } + + if (actorChunks) + { + actorChunks->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p3.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p3.cpp old mode 100644 new mode 100755 index 6c85955..8aa7e4e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p3.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p3.cpp @@ -1,2111 +1,2111 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorState_0p3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorState_0p3NS; - -const char* const DestructibleActorState_0p3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 68; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 65, 66, 67, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 28, 29, 30, 31, 37, 62, 63, 64, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 36, 38, - 39, 40, 41, 42, 43, 44, 50, 55, 45, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, 59, - 60, 61, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(8), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(31), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(38), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(43), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(52), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(57), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(61), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks -}; - - -bool DestructibleActorState_0p3::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorState_0p3::mBuiltFlagMutex; - -DestructibleActorState_0p3::DestructibleActorState_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorState_0p3::~DestructibleActorState_0p3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorState_0p3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorState_0p3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p3::getParameterDefinitionTree(void) const -{ - DestructibleActorState_0p3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorState_0p3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorState_0p3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorState_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorState_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorState_0p3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="lod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("lod", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Destructible actor LOD.", true); - HintTable[1].init("shortDescription", "Destructible actor LOD", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="forceLod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("forceLod", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); - HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); - HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[38].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="actorParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("actorParameters", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The destructible actor parameters.", true); - HintTable[2].init("shortDescription", "The destructible actor parameters", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorParam" }; - ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="actorChunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("actorChunks", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; - ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - - ParamDefTable[0].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=5, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - Children[8] = PDEF_PTR(14); - Children[9] = PDEF_PTR(15); - Children[10] = PDEF_PTR(16); - Children[11] = PDEF_PTR(17); - Children[12] = PDEF_PTR(18); - Children[13] = PDEF_PTR(19); - Children[14] = PDEF_PTR(20); - Children[15] = PDEF_PTR(28); - Children[16] = PDEF_PTR(29); - Children[17] = PDEF_PTR(30); - Children[18] = PDEF_PTR(31); - Children[19] = PDEF_PTR(37); - Children[20] = PDEF_PTR(62); - Children[21] = PDEF_PTR(63); - Children[22] = PDEF_PTR(64); - - ParamDefTable[5].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=20, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(21); - Children[1] = PDEF_PTR(22); - Children[2] = PDEF_PTR(23); - Children[3] = PDEF_PTR(24); - Children[4] = PDEF_PTR(25); - Children[5] = PDEF_PTR(26); - Children[6] = PDEF_PTR(27); - - ParamDefTable[20].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - Children[3] = PDEF_PTR(35); - Children[4] = PDEF_PTR(36); - - ParamDefTable[31].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=37, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(38); - Children[1] = PDEF_PTR(39); - Children[2] = PDEF_PTR(40); - Children[3] = PDEF_PTR(41); - Children[4] = PDEF_PTR(42); - Children[5] = PDEF_PTR(43); - Children[6] = PDEF_PTR(44); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(55); - - ParamDefTable[37].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - - ParamDefTable[44].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - - ParamDefTable[50].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - - ParamDefTable[55].setChildren(Children, 6); - } - - mBuiltFlag = true; - -} -void DestructibleActorState_0p3::initStrings(void) -{ -} - -void DestructibleActorState_0p3::initDynamicArrays(void) -{ -} - -void DestructibleActorState_0p3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - enableCrumbleEmitter = bool(true); - enableDustEmitter = bool(true); - lod = uint32_t(0); - forceLod = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorState_0p3::initReferences(void) -{ - actorParameters = NULL; - - actorChunks = NULL; - -} - -void DestructibleActorState_0p3::freeDynamicArrays(void) -{ -} - -void DestructibleActorState_0p3::freeStrings(void) -{ -} - -void DestructibleActorState_0p3::freeReferences(void) -{ - if (actorParameters) - { - actorParameters->destroy(); - } - - if (actorChunks) - { - actorChunks->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorState_0p3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorState_0p3NS; + +const char* const DestructibleActorState_0p3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 68; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 65, 66, 67, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 28, 29, 30, 31, 37, 62, 63, 64, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 36, 38, + 39, 40, 41, 42, 43, 44, 50, 55, 45, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, 59, + 60, 61, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(8), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(31), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(38), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(43), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(52), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(57), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(61), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks +}; + + +bool DestructibleActorState_0p3::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorState_0p3::mBuiltFlagMutex; + +DestructibleActorState_0p3::DestructibleActorState_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorState_0p3::~DestructibleActorState_0p3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorState_0p3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorState_0p3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p3::getParameterDefinitionTree(void) const +{ + DestructibleActorState_0p3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorState_0p3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorState_0p3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorState_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorState_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorState_0p3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="lod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("lod", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Destructible actor LOD.", true); + HintTable[1].init("shortDescription", "Destructible actor LOD", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="forceLod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("forceLod", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); + HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); + HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[38].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="actorParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("actorParameters", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The destructible actor parameters.", true); + HintTable[2].init("shortDescription", "The destructible actor parameters", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorParam" }; + ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="actorChunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("actorChunks", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; + ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + + ParamDefTable[0].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=5, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + Children[8] = PDEF_PTR(14); + Children[9] = PDEF_PTR(15); + Children[10] = PDEF_PTR(16); + Children[11] = PDEF_PTR(17); + Children[12] = PDEF_PTR(18); + Children[13] = PDEF_PTR(19); + Children[14] = PDEF_PTR(20); + Children[15] = PDEF_PTR(28); + Children[16] = PDEF_PTR(29); + Children[17] = PDEF_PTR(30); + Children[18] = PDEF_PTR(31); + Children[19] = PDEF_PTR(37); + Children[20] = PDEF_PTR(62); + Children[21] = PDEF_PTR(63); + Children[22] = PDEF_PTR(64); + + ParamDefTable[5].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=20, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(21); + Children[1] = PDEF_PTR(22); + Children[2] = PDEF_PTR(23); + Children[3] = PDEF_PTR(24); + Children[4] = PDEF_PTR(25); + Children[5] = PDEF_PTR(26); + Children[6] = PDEF_PTR(27); + + ParamDefTable[20].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + Children[3] = PDEF_PTR(35); + Children[4] = PDEF_PTR(36); + + ParamDefTable[31].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=37, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(38); + Children[1] = PDEF_PTR(39); + Children[2] = PDEF_PTR(40); + Children[3] = PDEF_PTR(41); + Children[4] = PDEF_PTR(42); + Children[5] = PDEF_PTR(43); + Children[6] = PDEF_PTR(44); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(55); + + ParamDefTable[37].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + + ParamDefTable[44].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + + ParamDefTable[50].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + + ParamDefTable[55].setChildren(Children, 6); + } + + mBuiltFlag = true; + +} +void DestructibleActorState_0p3::initStrings(void) +{ +} + +void DestructibleActorState_0p3::initDynamicArrays(void) +{ +} + +void DestructibleActorState_0p3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + enableCrumbleEmitter = bool(true); + enableDustEmitter = bool(true); + lod = uint32_t(0); + forceLod = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorState_0p3::initReferences(void) +{ + actorParameters = NULL; + + actorChunks = NULL; + +} + +void DestructibleActorState_0p3::freeDynamicArrays(void) +{ +} + +void DestructibleActorState_0p3::freeStrings(void) +{ +} + +void DestructibleActorState_0p3::freeReferences(void) +{ + if (actorParameters) + { + actorParameters->destroy(); + } + + if (actorChunks) + { + actorChunks->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p4.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p4.cpp old mode 100644 new mode 100755 index 9f25947..f1136c5 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p4.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleActorState_0p4.cpp @@ -1,2137 +1,2137 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleActorState_0p4.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleActorState_0p4NS; - -const char* const DestructibleActorState_0p4Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 69; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 66, 67, 68, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 28, 29, 30, 31, 37, 62, 63, 64, 65, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 36, - 38, 39, 40, 41, 42, 43, 44, 50, 55, 45, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, - 59, 60, 61, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(8), 24 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(32), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(39), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(44), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(53), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(58), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(62), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks -}; - - -bool DestructibleActorState_0p4::mBuiltFlag = false; -NvParameterized::MutexType DestructibleActorState_0p4::mBuiltFlagMutex; - -DestructibleActorState_0p4::DestructibleActorState_0p4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p4FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleActorState_0p4::~DestructibleActorState_0p4() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleActorState_0p4::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleActorState_0p4(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p4::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleActorState_0p4::getParameterDefinitionTree(void) const -{ - DestructibleActorState_0p4* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleActorState_0p4::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleActorState_0p4::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleActorState_0p4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleActorState_0p4::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleActorState_0p4::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); - HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="lod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("lod", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Destructible actor LOD.", true); - HintTable[1].init("shortDescription", "Destructible actor LOD", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="forceLod" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("forceLod", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); - HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); - HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[38].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.alwaysDrawScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); - HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); - HintTable[2].init("shortDescription", "Optional user data pointer", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="actorParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("actorParameters", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The destructible actor parameters.", true); - HintTable[2].init("shortDescription", "The destructible actor parameters", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorParam" }; - ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="actorChunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("actorChunks", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The actor's chunk data.", true); - HintTable[2].init("shortDescription", "The actor's chunk data", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; - ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(66); - Children[6] = PDEF_PTR(67); - Children[7] = PDEF_PTR(68); - - ParamDefTable[0].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=5, longName="destructibleParameters" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - Children[8] = PDEF_PTR(14); - Children[9] = PDEF_PTR(15); - Children[10] = PDEF_PTR(16); - Children[11] = PDEF_PTR(17); - Children[12] = PDEF_PTR(18); - Children[13] = PDEF_PTR(19); - Children[14] = PDEF_PTR(20); - Children[15] = PDEF_PTR(28); - Children[16] = PDEF_PTR(29); - Children[17] = PDEF_PTR(30); - Children[18] = PDEF_PTR(31); - Children[19] = PDEF_PTR(37); - Children[20] = PDEF_PTR(62); - Children[21] = PDEF_PTR(63); - Children[22] = PDEF_PTR(64); - Children[23] = PDEF_PTR(65); - - ParamDefTable[5].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=20, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(21); - Children[1] = PDEF_PTR(22); - Children[2] = PDEF_PTR(23); - Children[3] = PDEF_PTR(24); - Children[4] = PDEF_PTR(25); - Children[5] = PDEF_PTR(26); - Children[6] = PDEF_PTR(27); - - ParamDefTable[20].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - Children[3] = PDEF_PTR(35); - Children[4] = PDEF_PTR(36); - - ParamDefTable[31].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=37, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(38); - Children[1] = PDEF_PTR(39); - Children[2] = PDEF_PTR(40); - Children[3] = PDEF_PTR(41); - Children[4] = PDEF_PTR(42); - Children[5] = PDEF_PTR(43); - Children[6] = PDEF_PTR(44); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(55); - - ParamDefTable[37].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - - ParamDefTable[44].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - - ParamDefTable[50].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - - ParamDefTable[55].setChildren(Children, 6); - } - - mBuiltFlag = true; - -} -void DestructibleActorState_0p4::initStrings(void) -{ -} - -void DestructibleActorState_0p4::initDynamicArrays(void) -{ -} - -void DestructibleActorState_0p4::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - enableCrumbleEmitter = bool(true); - enableDustEmitter = bool(true); - lod = uint32_t(0); - forceLod = bool(false); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - destructibleParameters.alwaysDrawScatterMesh = bool(false); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleActorState_0p4::initReferences(void) -{ - actorParameters = NULL; - - actorChunks = NULL; - -} - -void DestructibleActorState_0p4::freeDynamicArrays(void) -{ -} - -void DestructibleActorState_0p4::freeStrings(void) -{ -} - -void DestructibleActorState_0p4::freeReferences(void) -{ - if (actorParameters) - { - actorParameters->destroy(); - } - - if (actorChunks) - { - actorChunks->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleActorState_0p4.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleActorState_0p4NS; + +const char* const DestructibleActorState_0p4Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 69; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 66, 67, 68, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 28, 29, 30, 31, 37, 62, 63, 64, 65, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 36, + 38, 39, 40, 41, 42, 43, 44, 50, 55, 45, 46, 47, 48, 49, 51, 52, 53, 54, 56, 57, 58, + 59, 60, 61, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableCrumbleEmitter), NULL, 0 }, // enableCrumbleEmitter + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->enableDustEmitter), NULL, 0 }, // enableDustEmitter + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->lod), NULL, 0 }, // lod + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->forceLod), NULL, 0 }, // forceLod + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(8), 24 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(32), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(39), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(44), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(53), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(58), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(62), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorParameters), NULL, 0 }, // actorParameters + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->actorChunks), NULL, 0 }, // actorChunks +}; + + +bool DestructibleActorState_0p4::mBuiltFlag = false; +NvParameterized::MutexType DestructibleActorState_0p4::mBuiltFlagMutex; + +DestructibleActorState_0p4::DestructibleActorState_0p4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleActorState_0p4FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleActorState_0p4::~DestructibleActorState_0p4() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleActorState_0p4::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleActorState_0p4(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p4::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleActorState_0p4::getParameterDefinitionTree(void) const +{ + DestructibleActorState_0p4* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleActorState_0p4::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleActorState_0p4::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleActorState_0p4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleActorState_0p4::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleActorState_0p4::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="enableCrumbleEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("enableCrumbleEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the crumble emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the crumble emitter is active", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="enableDustEmitter" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("enableDustEmitter", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the dust emitter is active.", true); + HintTable[1].init("shortDescription", "Whether or not the dust emitter is active", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="lod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("lod", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Destructible actor LOD.", true); + HintTable[1].init("shortDescription", "Destructible actor LOD", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="forceLod" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("forceLod", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to force LOD behavior on the actor.", true); + HintTable[1].init("shortDescription", "Whether or not to force LOD behavior on the actor", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Parameters that control destruction of a destructible actor.", true); + HintTable[1].init("shortDescription", "Parameters that control destruction of a destructible actor", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[38].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.alwaysDrawScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); + HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Optional user data pointer. Note: Any pointer references will not be properly serialized.", true); + HintTable[2].init("shortDescription", "Optional user data pointer", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="actorParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("actorParameters", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The destructible actor parameters.", true); + HintTable[2].init("shortDescription", "The destructible actor parameters", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorParam" }; + ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="actorChunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("actorChunks", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The actor's chunk data.", true); + HintTable[2].init("shortDescription", "The actor's chunk data", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleActorChunks" }; + ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(66); + Children[6] = PDEF_PTR(67); + Children[7] = PDEF_PTR(68); + + ParamDefTable[0].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=5, longName="destructibleParameters" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + Children[8] = PDEF_PTR(14); + Children[9] = PDEF_PTR(15); + Children[10] = PDEF_PTR(16); + Children[11] = PDEF_PTR(17); + Children[12] = PDEF_PTR(18); + Children[13] = PDEF_PTR(19); + Children[14] = PDEF_PTR(20); + Children[15] = PDEF_PTR(28); + Children[16] = PDEF_PTR(29); + Children[17] = PDEF_PTR(30); + Children[18] = PDEF_PTR(31); + Children[19] = PDEF_PTR(37); + Children[20] = PDEF_PTR(62); + Children[21] = PDEF_PTR(63); + Children[22] = PDEF_PTR(64); + Children[23] = PDEF_PTR(65); + + ParamDefTable[5].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=20, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(21); + Children[1] = PDEF_PTR(22); + Children[2] = PDEF_PTR(23); + Children[3] = PDEF_PTR(24); + Children[4] = PDEF_PTR(25); + Children[5] = PDEF_PTR(26); + Children[6] = PDEF_PTR(27); + + ParamDefTable[20].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=31, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + Children[3] = PDEF_PTR(35); + Children[4] = PDEF_PTR(36); + + ParamDefTable[31].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=37, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(38); + Children[1] = PDEF_PTR(39); + Children[2] = PDEF_PTR(40); + Children[3] = PDEF_PTR(41); + Children[4] = PDEF_PTR(42); + Children[5] = PDEF_PTR(43); + Children[6] = PDEF_PTR(44); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(55); + + ParamDefTable[37].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=44, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + + ParamDefTable[44].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + + ParamDefTable[50].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + + ParamDefTable[55].setChildren(Children, 6); + } + + mBuiltFlag = true; + +} +void DestructibleActorState_0p4::initStrings(void) +{ +} + +void DestructibleActorState_0p4::initDynamicArrays(void) +{ +} + +void DestructibleActorState_0p4::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + enableCrumbleEmitter = bool(true); + enableDustEmitter = bool(true); + lod = uint32_t(0); + forceLod = bool(false); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + destructibleParameters.alwaysDrawScatterMesh = bool(false); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleActorState_0p4::initReferences(void) +{ + actorParameters = NULL; + + actorChunks = NULL; + +} + +void DestructibleActorState_0p4::freeDynamicArrays(void) +{ +} + +void DestructibleActorState_0p4::freeStrings(void) +{ +} + +void DestructibleActorState_0p4::freeReferences(void) +{ + if (actorParameters) + { + actorParameters->destroy(); + } + + if (actorChunks) + { + actorChunks->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetCollisionDataSet_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetCollisionDataSet_0p0.cpp old mode 100644 new mode 100755 index ae03273..306acb1 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetCollisionDataSet_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetCollisionDataSet_0p0.cpp @@ -1,525 +1,525 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetCollisionDataSet_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetCollisionDataSet_0p0NS; - -const char* const DestructibleAssetCollisionDataSet_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 8; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 6, 5, 7, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->assetName), NULL, 0 }, // assetName - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingPlatform), NULL, 0 }, // cookingPlatform - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingVersionNum), NULL, 0 }, // cookingVersionNum - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scales), CHILDREN(5), 1 }, // scales - { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // scales[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreamsAtScale), CHILDREN(6), 1 }, // meshCookedCollisionStreamsAtScale - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreamsAtScale[] -}; - - -bool DestructibleAssetCollisionDataSet_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetCollisionDataSet_0p0::mBuiltFlagMutex; - -DestructibleAssetCollisionDataSet_0p0::DestructibleAssetCollisionDataSet_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetCollisionDataSet_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetCollisionDataSet_0p0::~DestructibleAssetCollisionDataSet_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetCollisionDataSet_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetCollisionDataSet_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet_0p0::getParameterDefinitionTree(void) const -{ - DestructibleAssetCollisionDataSet_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetCollisionDataSet_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetCollisionDataSet_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetCollisionDataSet_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - meshCookedCollisionStreamsAtScale (not an array of structs) */ - -void DestructibleAssetCollisionDataSet_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetCollisionDataSet_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="assetName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("assetName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the asset for which convex hulls are cooked.\n A convex hull may be cooked for each chunk in the asset, for each scale in the\n scales array.", true); - HintTable[1].init("shortDescription", "The name of the asset for which convex hulls are cooked", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="cookingPlatform" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("cookingPlatform", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The cooking platform for convex cooking. Currently unused.", true); - HintTable[1].init("shortDescription", "Currently unused", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="cookingVersionNum" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("cookingVersionNum", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A version number for convex cooking. Currently unused.", true); - HintTable[1].init("shortDescription", "Currently unused", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="scales" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("scales", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="scales[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("scales", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; - ParamDefTable[6].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="meshCookedCollisionStreamsAtScale[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); - HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; - ParamDefTable[7].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(6); - - ParamDefTable[0].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=4, longName="scales" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(7); - - ParamDefTable[6].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetCollisionDataSet_0p0::initStrings(void) -{ - assetName.isAllocated = true; - assetName.buf = NULL; -} - -void DestructibleAssetCollisionDataSet_0p0::initDynamicArrays(void) -{ - scales.buf = NULL; - scales.isAllocated = true; - scales.elementSize = sizeof(physx::PxVec3); - scales.arraySizes[0] = 0; - meshCookedCollisionStreamsAtScale.buf = NULL; - meshCookedCollisionStreamsAtScale.isAllocated = true; - meshCookedCollisionStreamsAtScale.elementSize = sizeof(NvParameterized::Interface*); - meshCookedCollisionStreamsAtScale.arraySizes[0] = 0; -} - -void DestructibleAssetCollisionDataSet_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - cookingPlatform = uint32_t(UINT32_MAX); - cookingVersionNum = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetCollisionDataSet_0p0::initReferences(void) -{ -} - -void DestructibleAssetCollisionDataSet_0p0::freeDynamicArrays(void) -{ - if (scales.isAllocated && scales.buf) - { - mParameterizedTraits->free(scales.buf); - } - if (meshCookedCollisionStreamsAtScale.isAllocated && meshCookedCollisionStreamsAtScale.buf) - { - mParameterizedTraits->free(meshCookedCollisionStreamsAtScale.buf); - } -} - -void DestructibleAssetCollisionDataSet_0p0::freeStrings(void) -{ - - if (assetName.isAllocated && assetName.buf) - { - mParameterizedTraits->strfree((char*)assetName.buf); - } -} - -void DestructibleAssetCollisionDataSet_0p0::freeReferences(void) -{ - - for (int i = 0; i < meshCookedCollisionStreamsAtScale.arraySizes[0]; ++i) - { - if (meshCookedCollisionStreamsAtScale.buf[i]) - { - meshCookedCollisionStreamsAtScale.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetCollisionDataSet_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetCollisionDataSet_0p0NS; + +const char* const DestructibleAssetCollisionDataSet_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 8; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 6, 5, 7, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->assetName), NULL, 0 }, // assetName + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingPlatform), NULL, 0 }, // cookingPlatform + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->cookingVersionNum), NULL, 0 }, // cookingVersionNum + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scales), CHILDREN(5), 1 }, // scales + { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // scales[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreamsAtScale), CHILDREN(6), 1 }, // meshCookedCollisionStreamsAtScale + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreamsAtScale[] +}; + + +bool DestructibleAssetCollisionDataSet_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetCollisionDataSet_0p0::mBuiltFlagMutex; + +DestructibleAssetCollisionDataSet_0p0::DestructibleAssetCollisionDataSet_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetCollisionDataSet_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetCollisionDataSet_0p0::~DestructibleAssetCollisionDataSet_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetCollisionDataSet_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetCollisionDataSet_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetCollisionDataSet_0p0::getParameterDefinitionTree(void) const +{ + DestructibleAssetCollisionDataSet_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetCollisionDataSet_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetCollisionDataSet_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetCollisionDataSet_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - meshCookedCollisionStreamsAtScale (not an array of structs) */ + +void DestructibleAssetCollisionDataSet_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetCollisionDataSet_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="assetName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("assetName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the asset for which convex hulls are cooked.\n A convex hull may be cooked for each chunk in the asset, for each scale in the\n scales array.", true); + HintTable[1].init("shortDescription", "The name of the asset for which convex hulls are cooked", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="cookingPlatform" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("cookingPlatform", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The cooking platform for convex cooking. Currently unused.", true); + HintTable[1].init("shortDescription", "Currently unused", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="cookingVersionNum" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("cookingVersionNum", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A version number for convex cooking. Currently unused.", true); + HintTable[1].init("shortDescription", "Currently unused", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="scales" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("scales", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="scales[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("scales", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "An array of scales at which chunks in the asset are cooked.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[1].init("shortDescription", "An array of scales at which chunks in the asset are cooked", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; + ParamDefTable[6].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="meshCookedCollisionStreamsAtScale[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("meshCookedCollisionStreamsAtScale", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of arrays of collision hull byte streams.\n The outer array corresponds to different scales (given in the scales array).\n The inner array corresponds to different chunks within the asset.\n The size of the outer array of meshCookedCollisionStreamsAtScale\n and scales must be equal.", true); + HintTable[2].init("shortDescription", "An array of arrays of collision hull byte streams", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStreamsAtScale" }; + ParamDefTable[7].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(6); + + ParamDefTable[0].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=4, longName="scales" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="meshCookedCollisionStreamsAtScale" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(7); + + ParamDefTable[6].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetCollisionDataSet_0p0::initStrings(void) +{ + assetName.isAllocated = true; + assetName.buf = NULL; +} + +void DestructibleAssetCollisionDataSet_0p0::initDynamicArrays(void) +{ + scales.buf = NULL; + scales.isAllocated = true; + scales.elementSize = sizeof(physx::PxVec3); + scales.arraySizes[0] = 0; + meshCookedCollisionStreamsAtScale.buf = NULL; + meshCookedCollisionStreamsAtScale.isAllocated = true; + meshCookedCollisionStreamsAtScale.elementSize = sizeof(NvParameterized::Interface*); + meshCookedCollisionStreamsAtScale.arraySizes[0] = 0; +} + +void DestructibleAssetCollisionDataSet_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + cookingPlatform = uint32_t(UINT32_MAX); + cookingVersionNum = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetCollisionDataSet_0p0::initReferences(void) +{ +} + +void DestructibleAssetCollisionDataSet_0p0::freeDynamicArrays(void) +{ + if (scales.isAllocated && scales.buf) + { + mParameterizedTraits->free(scales.buf); + } + if (meshCookedCollisionStreamsAtScale.isAllocated && meshCookedCollisionStreamsAtScale.buf) + { + mParameterizedTraits->free(meshCookedCollisionStreamsAtScale.buf); + } +} + +void DestructibleAssetCollisionDataSet_0p0::freeStrings(void) +{ + + if (assetName.isAllocated && assetName.buf) + { + mParameterizedTraits->strfree((char*)assetName.buf); + } +} + +void DestructibleAssetCollisionDataSet_0p0::freeReferences(void) +{ + + for (int i = 0; i < meshCookedCollisionStreamsAtScale.arraySizes[0]; ++i) + { + if (meshCookedCollisionStreamsAtScale.buf[i]) + { + meshCookedCollisionStreamsAtScale.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p0.cpp old mode 100644 new mode 100755 index 1ad81a7..4d02821 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p0.cpp @@ -1,2485 +1,2485 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p0NS; - -const char* const DestructibleAssetParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 77; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 14, 16, 55, 65, 66, 67, 68, 70, 71, 72, 73, 75, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, - 35, 36, 45, 46, 47, 48, 49, 37, 38, 39, 40, 41, 42, 43, 44, 50, 51, 52, 53, 54, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 69, 74, 76, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 16 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(16), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(17), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(25), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 25 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(51), 8 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(59), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(64), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(65), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(73), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(74), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(75), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] -}; - - -bool DestructibleAssetParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p0::mBuiltFlagMutex; - -DestructibleAssetParameters_0p0::DestructibleAssetParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p0::~DestructibleAssetParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p0::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); - HintTable[1].init("shortDescription", "The AABB of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.WORLD_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.grbVolumeLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); - HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.grbParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); - HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[73].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[74].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[16]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(16); - Children[6] = PDEF_PTR(55); - Children[7] = PDEF_PTR(65); - Children[8] = PDEF_PTR(66); - Children[9] = PDEF_PTR(67); - Children[10] = PDEF_PTR(68); - Children[11] = PDEF_PTR(70); - Children[12] = PDEF_PTR(71); - Children[13] = PDEF_PTR(72); - Children[14] = PDEF_PTR(73); - Children[15] = PDEF_PTR(75); - - ParamDefTable[0].setChildren(Children, 16); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - - ParamDefTable[5].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="destructibleParameters" - { - static Definition* Children[25]; - Children[0] = PDEF_PTR(17); - Children[1] = PDEF_PTR(18); - Children[2] = PDEF_PTR(19); - Children[3] = PDEF_PTR(20); - Children[4] = PDEF_PTR(21); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(23); - Children[7] = PDEF_PTR(24); - Children[8] = PDEF_PTR(25); - Children[9] = PDEF_PTR(26); - Children[10] = PDEF_PTR(27); - Children[11] = PDEF_PTR(28); - Children[12] = PDEF_PTR(29); - Children[13] = PDEF_PTR(30); - Children[14] = PDEF_PTR(31); - Children[15] = PDEF_PTR(32); - Children[16] = PDEF_PTR(33); - Children[17] = PDEF_PTR(34); - Children[18] = PDEF_PTR(35); - Children[19] = PDEF_PTR(36); - Children[20] = PDEF_PTR(45); - Children[21] = PDEF_PTR(46); - Children[22] = PDEF_PTR(47); - Children[23] = PDEF_PTR(48); - Children[24] = PDEF_PTR(49); - - ParamDefTable[16].setChildren(Children, 25); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - Children[7] = PDEF_PTR(44); - - ParamDefTable[36].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=56, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(64); - - ParamDefTable[56].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=68, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(69); - - ParamDefTable[68].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=73, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=75, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(76); - - ParamDefTable[75].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p0::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p0::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.formExtendedStructures = uint32_t(0); - destructibleParameters.supportDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.massScaleExponent = float(0.5); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); - destructibleParameters.flags.WORLD_SUPPORT = bool(false); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.grbVolumeLimit = float(0.2); - destructibleParameters.grbParticleSpacing = float(0.1); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p0::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p0::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p0::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } -} - -void DestructibleAssetParameters_0p0::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p0NS; + +const char* const DestructibleAssetParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 77; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 14, 16, 55, 65, 66, 67, 68, 70, 71, 72, 73, 75, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 45, 46, 47, 48, 49, 37, 38, 39, 40, 41, 42, 43, 44, 50, 51, 52, 53, 54, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 69, 74, 76, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 16 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(16), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(17), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(25), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(26), 25 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(51), 8 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(59), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(64), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(65), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(73), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(74), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(75), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] +}; + + +bool DestructibleAssetParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p0::mBuiltFlagMutex; + +DestructibleAssetParameters_0p0::DestructibleAssetParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p0::~DestructibleAssetParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p0::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); + HintTable[1].init("shortDescription", "The AABB of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.WORLD_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.grbVolumeLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); + HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.grbParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); + HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[73].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[74].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[16]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(16); + Children[6] = PDEF_PTR(55); + Children[7] = PDEF_PTR(65); + Children[8] = PDEF_PTR(66); + Children[9] = PDEF_PTR(67); + Children[10] = PDEF_PTR(68); + Children[11] = PDEF_PTR(70); + Children[12] = PDEF_PTR(71); + Children[13] = PDEF_PTR(72); + Children[14] = PDEF_PTR(73); + Children[15] = PDEF_PTR(75); + + ParamDefTable[0].setChildren(Children, 16); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + + ParamDefTable[5].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="destructibleParameters" + { + static Definition* Children[25]; + Children[0] = PDEF_PTR(17); + Children[1] = PDEF_PTR(18); + Children[2] = PDEF_PTR(19); + Children[3] = PDEF_PTR(20); + Children[4] = PDEF_PTR(21); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(23); + Children[7] = PDEF_PTR(24); + Children[8] = PDEF_PTR(25); + Children[9] = PDEF_PTR(26); + Children[10] = PDEF_PTR(27); + Children[11] = PDEF_PTR(28); + Children[12] = PDEF_PTR(29); + Children[13] = PDEF_PTR(30); + Children[14] = PDEF_PTR(31); + Children[15] = PDEF_PTR(32); + Children[16] = PDEF_PTR(33); + Children[17] = PDEF_PTR(34); + Children[18] = PDEF_PTR(35); + Children[19] = PDEF_PTR(36); + Children[20] = PDEF_PTR(45); + Children[21] = PDEF_PTR(46); + Children[22] = PDEF_PTR(47); + Children[23] = PDEF_PTR(48); + Children[24] = PDEF_PTR(49); + + ParamDefTable[16].setChildren(Children, 25); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + Children[7] = PDEF_PTR(44); + + ParamDefTable[36].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=56, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(64); + + ParamDefTable[56].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=68, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(69); + + ParamDefTable[68].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=73, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=75, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(76); + + ParamDefTable[75].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p0::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p0::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.formExtendedStructures = uint32_t(0); + destructibleParameters.supportDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.massScaleExponent = float(0.5); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); + destructibleParameters.flags.WORLD_SUPPORT = bool(false); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.grbVolumeLimit = float(0.2); + destructibleParameters.grbParticleSpacing = float(0.1); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p0::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p0::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p0::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } +} + +void DestructibleAssetParameters_0p0::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p1.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p1.cpp old mode 100644 new mode 100755 index 3c5e28f..035533a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p1.cpp @@ -1,2562 +1,2562 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p1NS; - -const char* const DestructibleAssetParameters_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 79; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 14, 16, 55, 65, 66, 67, 68, 70, 71, 72, 74, 75, 77, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 45, 46, 47, 48, 49, 37, 38, 39, 40, 41, 42, 43, 44, 50, 51, 52, 53, 54, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 69, 73, 76, 78, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 17 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(17), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(18), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(26), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(27), 25 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(52), 8 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(65), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(66), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(74), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(75), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(76), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(77), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] -}; - - -bool DestructibleAssetParameters_0p1::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p1::mBuiltFlagMutex; - -DestructibleAssetParameters_0p1::DestructibleAssetParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p1::~DestructibleAssetParameters_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p1::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); - HintTable[1].init("shortDescription", "The AABB of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.WORLD_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.grbVolumeLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); - HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.grbParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); - HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[75].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(16); - Children[6] = PDEF_PTR(55); - Children[7] = PDEF_PTR(65); - Children[8] = PDEF_PTR(66); - Children[9] = PDEF_PTR(67); - Children[10] = PDEF_PTR(68); - Children[11] = PDEF_PTR(70); - Children[12] = PDEF_PTR(71); - Children[13] = PDEF_PTR(72); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(75); - Children[16] = PDEF_PTR(77); - - ParamDefTable[0].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - - ParamDefTable[5].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="destructibleParameters" - { - static Definition* Children[25]; - Children[0] = PDEF_PTR(17); - Children[1] = PDEF_PTR(18); - Children[2] = PDEF_PTR(19); - Children[3] = PDEF_PTR(20); - Children[4] = PDEF_PTR(21); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(23); - Children[7] = PDEF_PTR(24); - Children[8] = PDEF_PTR(25); - Children[9] = PDEF_PTR(26); - Children[10] = PDEF_PTR(27); - Children[11] = PDEF_PTR(28); - Children[12] = PDEF_PTR(29); - Children[13] = PDEF_PTR(30); - Children[14] = PDEF_PTR(31); - Children[15] = PDEF_PTR(32); - Children[16] = PDEF_PTR(33); - Children[17] = PDEF_PTR(34); - Children[18] = PDEF_PTR(35); - Children[19] = PDEF_PTR(36); - Children[20] = PDEF_PTR(45); - Children[21] = PDEF_PTR(46); - Children[22] = PDEF_PTR(47); - Children[23] = PDEF_PTR(48); - Children[24] = PDEF_PTR(49); - - ParamDefTable[16].setChildren(Children, 25); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - Children[7] = PDEF_PTR(44); - - ParamDefTable[36].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(50); - Children[1] = PDEF_PTR(51); - Children[2] = PDEF_PTR(52); - Children[3] = PDEF_PTR(53); - Children[4] = PDEF_PTR(54); - - ParamDefTable[49].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=55, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=56, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - Children[7] = PDEF_PTR(64); - - ParamDefTable[56].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=68, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(69); - - ParamDefTable[68].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=72, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(73); - - ParamDefTable[72].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=75, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(76); - - ParamDefTable[75].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=77, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(78); - - ParamDefTable[77].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p1::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p1::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.formExtendedStructures = uint32_t(0); - destructibleParameters.supportDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.massScaleExponent = float(0.5); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); - destructibleParameters.flags.WORLD_SUPPORT = bool(false); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.grbVolumeLimit = float(0.2); - destructibleParameters.grbParticleSpacing = float(0.1); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p1::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p1::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p1::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p1::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p1NS; + +const char* const DestructibleAssetParameters_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 79; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 14, 16, 55, 65, 66, 67, 68, 70, 71, 72, 74, 75, 77, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 45, 46, 47, 48, 49, 37, 38, 39, 40, 41, 42, 43, 44, 50, 51, 52, 53, 54, + 56, 57, 58, 59, 60, 61, 62, 63, 64, 69, 73, 76, 78, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 17 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(17), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(18), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(26), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(27), 25 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(52), 8 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(65), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(66), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(74), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(75), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(76), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(77), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] +}; + + +bool DestructibleAssetParameters_0p1::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p1::mBuiltFlagMutex; + +DestructibleAssetParameters_0p1::DestructibleAssetParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p1::~DestructibleAssetParameters_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p1::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); + HintTable[1].init("shortDescription", "The AABB of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.WORLD_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.grbVolumeLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); + HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.grbParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); + HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[75].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(16); + Children[6] = PDEF_PTR(55); + Children[7] = PDEF_PTR(65); + Children[8] = PDEF_PTR(66); + Children[9] = PDEF_PTR(67); + Children[10] = PDEF_PTR(68); + Children[11] = PDEF_PTR(70); + Children[12] = PDEF_PTR(71); + Children[13] = PDEF_PTR(72); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(75); + Children[16] = PDEF_PTR(77); + + ParamDefTable[0].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + + ParamDefTable[5].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="destructibleParameters" + { + static Definition* Children[25]; + Children[0] = PDEF_PTR(17); + Children[1] = PDEF_PTR(18); + Children[2] = PDEF_PTR(19); + Children[3] = PDEF_PTR(20); + Children[4] = PDEF_PTR(21); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(23); + Children[7] = PDEF_PTR(24); + Children[8] = PDEF_PTR(25); + Children[9] = PDEF_PTR(26); + Children[10] = PDEF_PTR(27); + Children[11] = PDEF_PTR(28); + Children[12] = PDEF_PTR(29); + Children[13] = PDEF_PTR(30); + Children[14] = PDEF_PTR(31); + Children[15] = PDEF_PTR(32); + Children[16] = PDEF_PTR(33); + Children[17] = PDEF_PTR(34); + Children[18] = PDEF_PTR(35); + Children[19] = PDEF_PTR(36); + Children[20] = PDEF_PTR(45); + Children[21] = PDEF_PTR(46); + Children[22] = PDEF_PTR(47); + Children[23] = PDEF_PTR(48); + Children[24] = PDEF_PTR(49); + + ParamDefTable[16].setChildren(Children, 25); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + Children[7] = PDEF_PTR(44); + + ParamDefTable[36].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(50); + Children[1] = PDEF_PTR(51); + Children[2] = PDEF_PTR(52); + Children[3] = PDEF_PTR(53); + Children[4] = PDEF_PTR(54); + + ParamDefTable[49].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=55, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=56, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + Children[7] = PDEF_PTR(64); + + ParamDefTable[56].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=68, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(69); + + ParamDefTable[68].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=72, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(73); + + ParamDefTable[72].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=75, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(76); + + ParamDefTable[75].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=77, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(78); + + ParamDefTable[77].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p1::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p1::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.formExtendedStructures = uint32_t(0); + destructibleParameters.supportDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.massScaleExponent = float(0.5); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); + destructibleParameters.flags.WORLD_SUPPORT = bool(false); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.grbVolumeLimit = float(0.2); + destructibleParameters.grbParticleSpacing = float(0.1); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p1::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p1::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p1::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p1::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p10.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p10.cpp old mode 100644 new mode 100755 index d84f5fe..75a4319 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p10.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p10.cpp @@ -1,2819 +1,2819 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p10.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p10NS; - -const char* const DestructibleAssetParameters_0p10Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 87; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 14, 16, 18, 50, 61, 62, 63, 64, 66, 67, 68, 73, 74, 76, 77, 79, 81, - 82, 83, 84, 85, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 42, 43, 44, 36, 37, 38, 39, 40, 41, 45, 46, 47, - 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 69, 70, 71, 72, 75, 78, 80, 86, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 26 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(26), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(27), 7 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(34), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(35), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(56), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(62), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(67), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(68), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(77), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(78), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(79), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(82), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(83), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(84), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(85), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p10::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p10::mBuiltFlagMutex; - -DestructibleAssetParameters_0p10::DestructibleAssetParameters_0p10(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p10FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p10::~DestructibleAssetParameters_0p10() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p10::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p10(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p10::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p10::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p10* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p10::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p10::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p10::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p10::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p10::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[78].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[26]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(14); - Children[6] = PDEF_PTR(16); - Children[7] = PDEF_PTR(18); - Children[8] = PDEF_PTR(50); - Children[9] = PDEF_PTR(61); - Children[10] = PDEF_PTR(62); - Children[11] = PDEF_PTR(63); - Children[12] = PDEF_PTR(64); - Children[13] = PDEF_PTR(66); - Children[14] = PDEF_PTR(67); - Children[15] = PDEF_PTR(68); - Children[16] = PDEF_PTR(73); - Children[17] = PDEF_PTR(74); - Children[18] = PDEF_PTR(76); - Children[19] = PDEF_PTR(77); - Children[20] = PDEF_PTR(79); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(82); - Children[23] = PDEF_PTR(83); - Children[24] = PDEF_PTR(84); - Children[25] = PDEF_PTR(85); - - ParamDefTable[0].setChildren(Children, 26); - } - - // SetChildren for: nodeIndex=5, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="chunks[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(7); - Children[1] = PDEF_PTR(8); - Children[2] = PDEF_PTR(9); - Children[3] = PDEF_PTR(10); - Children[4] = PDEF_PTR(11); - Children[5] = PDEF_PTR(12); - Children[6] = PDEF_PTR(13); - - ParamDefTable[6].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(19); - Children[1] = PDEF_PTR(20); - Children[2] = PDEF_PTR(21); - Children[3] = PDEF_PTR(22); - Children[4] = PDEF_PTR(23); - Children[5] = PDEF_PTR(24); - Children[6] = PDEF_PTR(25); - Children[7] = PDEF_PTR(26); - Children[8] = PDEF_PTR(27); - Children[9] = PDEF_PTR(28); - Children[10] = PDEF_PTR(29); - Children[11] = PDEF_PTR(30); - Children[12] = PDEF_PTR(31); - Children[13] = PDEF_PTR(32); - Children[14] = PDEF_PTR(33); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(42); - Children[18] = PDEF_PTR(43); - Children[19] = PDEF_PTR(44); - - ParamDefTable[18].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=35, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(36); - Children[1] = PDEF_PTR(37); - Children[2] = PDEF_PTR(38); - Children[3] = PDEF_PTR(39); - Children[4] = PDEF_PTR(40); - Children[5] = PDEF_PTR(41); - - ParamDefTable[35].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - - ParamDefTable[44].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(51); - - ParamDefTable[50].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(52); - Children[1] = PDEF_PTR(53); - Children[2] = PDEF_PTR(54); - Children[3] = PDEF_PTR(55); - Children[4] = PDEF_PTR(56); - Children[5] = PDEF_PTR(57); - Children[6] = PDEF_PTR(58); - Children[7] = PDEF_PTR(59); - Children[8] = PDEF_PTR(60); - - ParamDefTable[51].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(65); - - ParamDefTable[64].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(69); - - ParamDefTable[68].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=69, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(70); - Children[1] = PDEF_PTR(71); - Children[2] = PDEF_PTR(72); - - ParamDefTable[69].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=74, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(75); - - ParamDefTable[74].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=77, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(78); - - ParamDefTable[77].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=79, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(80); - - ParamDefTable[79].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=85, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(86); - - ParamDefTable[85].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p10::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p10::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p10::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p10::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p10::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p10::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p10::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p10.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p10NS; + +const char* const DestructibleAssetParameters_0p10Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 87; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 14, 16, 18, 50, 61, 62, 63, 64, 66, 67, 68, 73, 74, 76, 77, 79, 81, + 82, 83, 84, 85, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 42, 43, 44, 36, 37, 38, 39, 40, 41, 45, 46, 47, + 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 69, 70, 71, 72, 75, 78, 80, 86, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 26 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(26), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(27), 7 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(34), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(35), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(56), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(62), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(67), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(68), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(77), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(78), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(79), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(82), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(83), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(84), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(85), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p10::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p10::mBuiltFlagMutex; + +DestructibleAssetParameters_0p10::DestructibleAssetParameters_0p10(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p10FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p10::~DestructibleAssetParameters_0p10() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p10::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p10(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p10::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p10::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p10* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p10::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p10::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p10::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p10::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p10::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[78].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[26]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(14); + Children[6] = PDEF_PTR(16); + Children[7] = PDEF_PTR(18); + Children[8] = PDEF_PTR(50); + Children[9] = PDEF_PTR(61); + Children[10] = PDEF_PTR(62); + Children[11] = PDEF_PTR(63); + Children[12] = PDEF_PTR(64); + Children[13] = PDEF_PTR(66); + Children[14] = PDEF_PTR(67); + Children[15] = PDEF_PTR(68); + Children[16] = PDEF_PTR(73); + Children[17] = PDEF_PTR(74); + Children[18] = PDEF_PTR(76); + Children[19] = PDEF_PTR(77); + Children[20] = PDEF_PTR(79); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(82); + Children[23] = PDEF_PTR(83); + Children[24] = PDEF_PTR(84); + Children[25] = PDEF_PTR(85); + + ParamDefTable[0].setChildren(Children, 26); + } + + // SetChildren for: nodeIndex=5, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="chunks[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(7); + Children[1] = PDEF_PTR(8); + Children[2] = PDEF_PTR(9); + Children[3] = PDEF_PTR(10); + Children[4] = PDEF_PTR(11); + Children[5] = PDEF_PTR(12); + Children[6] = PDEF_PTR(13); + + ParamDefTable[6].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(19); + Children[1] = PDEF_PTR(20); + Children[2] = PDEF_PTR(21); + Children[3] = PDEF_PTR(22); + Children[4] = PDEF_PTR(23); + Children[5] = PDEF_PTR(24); + Children[6] = PDEF_PTR(25); + Children[7] = PDEF_PTR(26); + Children[8] = PDEF_PTR(27); + Children[9] = PDEF_PTR(28); + Children[10] = PDEF_PTR(29); + Children[11] = PDEF_PTR(30); + Children[12] = PDEF_PTR(31); + Children[13] = PDEF_PTR(32); + Children[14] = PDEF_PTR(33); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(42); + Children[18] = PDEF_PTR(43); + Children[19] = PDEF_PTR(44); + + ParamDefTable[18].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=35, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(36); + Children[1] = PDEF_PTR(37); + Children[2] = PDEF_PTR(38); + Children[3] = PDEF_PTR(39); + Children[4] = PDEF_PTR(40); + Children[5] = PDEF_PTR(41); + + ParamDefTable[35].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + + ParamDefTable[44].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(51); + + ParamDefTable[50].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(52); + Children[1] = PDEF_PTR(53); + Children[2] = PDEF_PTR(54); + Children[3] = PDEF_PTR(55); + Children[4] = PDEF_PTR(56); + Children[5] = PDEF_PTR(57); + Children[6] = PDEF_PTR(58); + Children[7] = PDEF_PTR(59); + Children[8] = PDEF_PTR(60); + + ParamDefTable[51].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(65); + + ParamDefTable[64].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(69); + + ParamDefTable[68].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=69, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(70); + Children[1] = PDEF_PTR(71); + Children[2] = PDEF_PTR(72); + + ParamDefTable[69].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=74, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(75); + + ParamDefTable[74].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=77, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(78); + + ParamDefTable[77].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=79, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(80); + + ParamDefTable[79].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=85, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(86); + + ParamDefTable[85].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p10::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p10::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p10::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p10::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p10::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p10::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p10::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p11.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p11.cpp old mode 100644 new mode 100755 index d83303b..6e88e5a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p11.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p11.cpp @@ -1,2846 +1,2846 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p11.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p11NS; - -const char* const DestructibleAssetParameters_0p11Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 88; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 14, 16, 18, 51, 62, 63, 64, 65, 67, 68, 69, 74, 75, 77, 78, 80, 82, - 83, 84, 85, 86, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, - 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66, 70, 71, 72, 73, 76, 79, 81, - 87, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 26 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(26), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(27), 7 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(34), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(35), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(57), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(63), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(68), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(69), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(78), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(79), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(80), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(83), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(84), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(85), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(86), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p11::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p11::mBuiltFlagMutex; - -DestructibleAssetParameters_0p11::DestructibleAssetParameters_0p11(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p11FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p11::~DestructibleAssetParameters_0p11() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p11::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p11(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p11::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p11::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p11* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p11::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p11::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p11::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p11::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p11::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[78].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[79].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[26]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(14); - Children[6] = PDEF_PTR(16); - Children[7] = PDEF_PTR(18); - Children[8] = PDEF_PTR(51); - Children[9] = PDEF_PTR(62); - Children[10] = PDEF_PTR(63); - Children[11] = PDEF_PTR(64); - Children[12] = PDEF_PTR(65); - Children[13] = PDEF_PTR(67); - Children[14] = PDEF_PTR(68); - Children[15] = PDEF_PTR(69); - Children[16] = PDEF_PTR(74); - Children[17] = PDEF_PTR(75); - Children[18] = PDEF_PTR(77); - Children[19] = PDEF_PTR(78); - Children[20] = PDEF_PTR(80); - Children[21] = PDEF_PTR(82); - Children[22] = PDEF_PTR(83); - Children[23] = PDEF_PTR(84); - Children[24] = PDEF_PTR(85); - Children[25] = PDEF_PTR(86); - - ParamDefTable[0].setChildren(Children, 26); - } - - // SetChildren for: nodeIndex=5, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="chunks[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(7); - Children[1] = PDEF_PTR(8); - Children[2] = PDEF_PTR(9); - Children[3] = PDEF_PTR(10); - Children[4] = PDEF_PTR(11); - Children[5] = PDEF_PTR(12); - Children[6] = PDEF_PTR(13); - - ParamDefTable[6].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(19); - Children[1] = PDEF_PTR(20); - Children[2] = PDEF_PTR(21); - Children[3] = PDEF_PTR(22); - Children[4] = PDEF_PTR(23); - Children[5] = PDEF_PTR(24); - Children[6] = PDEF_PTR(25); - Children[7] = PDEF_PTR(26); - Children[8] = PDEF_PTR(27); - Children[9] = PDEF_PTR(28); - Children[10] = PDEF_PTR(29); - Children[11] = PDEF_PTR(30); - Children[12] = PDEF_PTR(31); - Children[13] = PDEF_PTR(32); - Children[14] = PDEF_PTR(33); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(36); - Children[18] = PDEF_PTR(43); - Children[19] = PDEF_PTR(44); - Children[20] = PDEF_PTR(45); - - ParamDefTable[18].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - - ParamDefTable[36].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - Children[8] = PDEF_PTR(61); - - ParamDefTable[52].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=65, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(66); - - ParamDefTable[65].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=69, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(70); - - ParamDefTable[69].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=70, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(71); - Children[1] = PDEF_PTR(72); - Children[2] = PDEF_PTR(73); - - ParamDefTable[70].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=75, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(76); - - ParamDefTable[75].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=78, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(79); - - ParamDefTable[78].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=80, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(81); - - ParamDefTable[80].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=86, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(87); - - ParamDefTable[86].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p11::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p11::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p11::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p11::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p11::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p11::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p11::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p11.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p11NS; + +const char* const DestructibleAssetParameters_0p11Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 88; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 14, 16, 18, 51, 62, 63, 64, 65, 67, 68, 69, 74, 75, 77, 78, 80, 82, + 83, 84, 85, 86, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, + 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 66, 70, 71, 72, 73, 76, 79, 81, + 87, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 26 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(26), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(27), 7 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(34), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(35), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(57), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(63), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(68), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(69), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(78), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(79), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(80), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(83), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(84), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(85), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(86), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p11::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p11::mBuiltFlagMutex; + +DestructibleAssetParameters_0p11::DestructibleAssetParameters_0p11(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p11FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p11::~DestructibleAssetParameters_0p11() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p11::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p11(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p11::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p11::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p11* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p11::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p11::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p11::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p11::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p11::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[78].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[79].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[26]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(14); + Children[6] = PDEF_PTR(16); + Children[7] = PDEF_PTR(18); + Children[8] = PDEF_PTR(51); + Children[9] = PDEF_PTR(62); + Children[10] = PDEF_PTR(63); + Children[11] = PDEF_PTR(64); + Children[12] = PDEF_PTR(65); + Children[13] = PDEF_PTR(67); + Children[14] = PDEF_PTR(68); + Children[15] = PDEF_PTR(69); + Children[16] = PDEF_PTR(74); + Children[17] = PDEF_PTR(75); + Children[18] = PDEF_PTR(77); + Children[19] = PDEF_PTR(78); + Children[20] = PDEF_PTR(80); + Children[21] = PDEF_PTR(82); + Children[22] = PDEF_PTR(83); + Children[23] = PDEF_PTR(84); + Children[24] = PDEF_PTR(85); + Children[25] = PDEF_PTR(86); + + ParamDefTable[0].setChildren(Children, 26); + } + + // SetChildren for: nodeIndex=5, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="chunks[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(7); + Children[1] = PDEF_PTR(8); + Children[2] = PDEF_PTR(9); + Children[3] = PDEF_PTR(10); + Children[4] = PDEF_PTR(11); + Children[5] = PDEF_PTR(12); + Children[6] = PDEF_PTR(13); + + ParamDefTable[6].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(19); + Children[1] = PDEF_PTR(20); + Children[2] = PDEF_PTR(21); + Children[3] = PDEF_PTR(22); + Children[4] = PDEF_PTR(23); + Children[5] = PDEF_PTR(24); + Children[6] = PDEF_PTR(25); + Children[7] = PDEF_PTR(26); + Children[8] = PDEF_PTR(27); + Children[9] = PDEF_PTR(28); + Children[10] = PDEF_PTR(29); + Children[11] = PDEF_PTR(30); + Children[12] = PDEF_PTR(31); + Children[13] = PDEF_PTR(32); + Children[14] = PDEF_PTR(33); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(36); + Children[18] = PDEF_PTR(43); + Children[19] = PDEF_PTR(44); + Children[20] = PDEF_PTR(45); + + ParamDefTable[18].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + + ParamDefTable[36].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + Children[8] = PDEF_PTR(61); + + ParamDefTable[52].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=65, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(66); + + ParamDefTable[65].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=69, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(70); + + ParamDefTable[69].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=70, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(71); + Children[1] = PDEF_PTR(72); + Children[2] = PDEF_PTR(73); + + ParamDefTable[70].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=75, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(76); + + ParamDefTable[75].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=78, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(79); + + ParamDefTable[78].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=80, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(81); + + ParamDefTable[80].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=86, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(87); + + ParamDefTable[86].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p11::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p11::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p11::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p11::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p11::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p11::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p11::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p12.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p12.cpp old mode 100644 new mode 100755 index 0f5a7ed..ad3f8c6 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p12.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p12.cpp @@ -1,2726 +1,2726 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p12.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p12NS; - -const char* const DestructibleAssetParameters_0p12Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 85; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 14, 16, 18, 51, 62, 63, 64, 65, 66, 67, 72, 74, 75, 77, 79, 80, 81, - 82, 83, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, - 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 68, 69, 70, 71, 73, 76, 78, 84, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(76), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(77), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(80), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(81), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(82), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(83), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p12::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p12::mBuiltFlagMutex; - -DestructibleAssetParameters_0p12::DestructibleAssetParameters_0p12(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p12FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p12::~DestructibleAssetParameters_0p12() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p12::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p12(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p12::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p12::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p12* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p12::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p12::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p12::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p12::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p12::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[75].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(14); - Children[6] = PDEF_PTR(16); - Children[7] = PDEF_PTR(18); - Children[8] = PDEF_PTR(51); - Children[9] = PDEF_PTR(62); - Children[10] = PDEF_PTR(63); - Children[11] = PDEF_PTR(64); - Children[12] = PDEF_PTR(65); - Children[13] = PDEF_PTR(66); - Children[14] = PDEF_PTR(67); - Children[15] = PDEF_PTR(72); - Children[16] = PDEF_PTR(74); - Children[17] = PDEF_PTR(75); - Children[18] = PDEF_PTR(77); - Children[19] = PDEF_PTR(79); - Children[20] = PDEF_PTR(80); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(82); - Children[23] = PDEF_PTR(83); - - ParamDefTable[0].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=5, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="chunks[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(7); - Children[1] = PDEF_PTR(8); - Children[2] = PDEF_PTR(9); - Children[3] = PDEF_PTR(10); - Children[4] = PDEF_PTR(11); - Children[5] = PDEF_PTR(12); - Children[6] = PDEF_PTR(13); - - ParamDefTable[6].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(19); - Children[1] = PDEF_PTR(20); - Children[2] = PDEF_PTR(21); - Children[3] = PDEF_PTR(22); - Children[4] = PDEF_PTR(23); - Children[5] = PDEF_PTR(24); - Children[6] = PDEF_PTR(25); - Children[7] = PDEF_PTR(26); - Children[8] = PDEF_PTR(27); - Children[9] = PDEF_PTR(28); - Children[10] = PDEF_PTR(29); - Children[11] = PDEF_PTR(30); - Children[12] = PDEF_PTR(31); - Children[13] = PDEF_PTR(32); - Children[14] = PDEF_PTR(33); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(36); - Children[18] = PDEF_PTR(43); - Children[19] = PDEF_PTR(44); - Children[20] = PDEF_PTR(45); - - ParamDefTable[18].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - - ParamDefTable[36].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - Children[8] = PDEF_PTR(61); - - ParamDefTable[52].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(68); - - ParamDefTable[67].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - - ParamDefTable[68].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=72, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(73); - - ParamDefTable[72].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=75, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(76); - - ParamDefTable[75].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=77, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(78); - - ParamDefTable[77].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=83, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(84); - - ParamDefTable[83].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p12::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p12::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p12::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p12::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p12::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p12::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p12::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p12.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p12NS; + +const char* const DestructibleAssetParameters_0p12Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 85; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 14, 16, 18, 51, 62, 63, 64, 65, 66, 67, 72, 74, 75, 77, 79, 80, 81, + 82, 83, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, + 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 68, 69, 70, 71, 73, 76, 78, 84, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(76), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(77), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(80), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(81), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(82), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(83), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p12::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p12::mBuiltFlagMutex; + +DestructibleAssetParameters_0p12::DestructibleAssetParameters_0p12(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p12FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p12::~DestructibleAssetParameters_0p12() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p12::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p12(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p12::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p12::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p12* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p12::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p12::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p12::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p12::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p12::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[75].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(14); + Children[6] = PDEF_PTR(16); + Children[7] = PDEF_PTR(18); + Children[8] = PDEF_PTR(51); + Children[9] = PDEF_PTR(62); + Children[10] = PDEF_PTR(63); + Children[11] = PDEF_PTR(64); + Children[12] = PDEF_PTR(65); + Children[13] = PDEF_PTR(66); + Children[14] = PDEF_PTR(67); + Children[15] = PDEF_PTR(72); + Children[16] = PDEF_PTR(74); + Children[17] = PDEF_PTR(75); + Children[18] = PDEF_PTR(77); + Children[19] = PDEF_PTR(79); + Children[20] = PDEF_PTR(80); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(82); + Children[23] = PDEF_PTR(83); + + ParamDefTable[0].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=5, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="chunks[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(7); + Children[1] = PDEF_PTR(8); + Children[2] = PDEF_PTR(9); + Children[3] = PDEF_PTR(10); + Children[4] = PDEF_PTR(11); + Children[5] = PDEF_PTR(12); + Children[6] = PDEF_PTR(13); + + ParamDefTable[6].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(19); + Children[1] = PDEF_PTR(20); + Children[2] = PDEF_PTR(21); + Children[3] = PDEF_PTR(22); + Children[4] = PDEF_PTR(23); + Children[5] = PDEF_PTR(24); + Children[6] = PDEF_PTR(25); + Children[7] = PDEF_PTR(26); + Children[8] = PDEF_PTR(27); + Children[9] = PDEF_PTR(28); + Children[10] = PDEF_PTR(29); + Children[11] = PDEF_PTR(30); + Children[12] = PDEF_PTR(31); + Children[13] = PDEF_PTR(32); + Children[14] = PDEF_PTR(33); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(36); + Children[18] = PDEF_PTR(43); + Children[19] = PDEF_PTR(44); + Children[20] = PDEF_PTR(45); + + ParamDefTable[18].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + + ParamDefTable[36].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + Children[8] = PDEF_PTR(61); + + ParamDefTable[52].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(68); + + ParamDefTable[67].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + + ParamDefTable[68].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=72, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(73); + + ParamDefTable[72].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=75, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(76); + + ParamDefTable[75].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=77, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(78); + + ParamDefTable[77].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=83, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(84); + + ParamDefTable[83].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p12::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p12::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p12::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p12::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p12::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p12::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p12::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p13.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p13.cpp old mode 100644 new mode 100755 index f54e71d..30e5744 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p13.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p13.cpp @@ -1,2752 +1,2752 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p13.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p13NS; - -const char* const DestructibleAssetParameters_0p13Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 86; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 14, 16, 18, 52, 63, 64, 65, 66, 67, 68, 73, 75, 76, 78, 80, 81, 82, - 83, 84, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, - 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 72, 74, 77, 79, 85, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(62), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(67), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(68), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(77), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(78), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(81), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(82), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(83), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(84), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p13::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p13::mBuiltFlagMutex; - -DestructibleAssetParameters_0p13::DestructibleAssetParameters_0p13(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p13FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p13::~DestructibleAssetParameters_0p13() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p13::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p13(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p13::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p13::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p13* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p13::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p13::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p13::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p13::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p13::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(14); - Children[6] = PDEF_PTR(16); - Children[7] = PDEF_PTR(18); - Children[8] = PDEF_PTR(52); - Children[9] = PDEF_PTR(63); - Children[10] = PDEF_PTR(64); - Children[11] = PDEF_PTR(65); - Children[12] = PDEF_PTR(66); - Children[13] = PDEF_PTR(67); - Children[14] = PDEF_PTR(68); - Children[15] = PDEF_PTR(73); - Children[16] = PDEF_PTR(75); - Children[17] = PDEF_PTR(76); - Children[18] = PDEF_PTR(78); - Children[19] = PDEF_PTR(80); - Children[20] = PDEF_PTR(81); - Children[21] = PDEF_PTR(82); - Children[22] = PDEF_PTR(83); - Children[23] = PDEF_PTR(84); - - ParamDefTable[0].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=5, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="chunks[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(7); - Children[1] = PDEF_PTR(8); - Children[2] = PDEF_PTR(9); - Children[3] = PDEF_PTR(10); - Children[4] = PDEF_PTR(11); - Children[5] = PDEF_PTR(12); - Children[6] = PDEF_PTR(13); - - ParamDefTable[6].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(19); - Children[1] = PDEF_PTR(20); - Children[2] = PDEF_PTR(21); - Children[3] = PDEF_PTR(22); - Children[4] = PDEF_PTR(23); - Children[5] = PDEF_PTR(24); - Children[6] = PDEF_PTR(25); - Children[7] = PDEF_PTR(26); - Children[8] = PDEF_PTR(27); - Children[9] = PDEF_PTR(28); - Children[10] = PDEF_PTR(29); - Children[11] = PDEF_PTR(30); - Children[12] = PDEF_PTR(31); - Children[13] = PDEF_PTR(32); - Children[14] = PDEF_PTR(33); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(36); - Children[18] = PDEF_PTR(44); - Children[19] = PDEF_PTR(45); - Children[20] = PDEF_PTR(46); - - ParamDefTable[18].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - Children[6] = PDEF_PTR(43); - - ParamDefTable[36].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(47); - Children[1] = PDEF_PTR(48); - Children[2] = PDEF_PTR(49); - Children[3] = PDEF_PTR(50); - Children[4] = PDEF_PTR(51); - - ParamDefTable[46].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(53); - - ParamDefTable[52].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(60); - Children[7] = PDEF_PTR(61); - Children[8] = PDEF_PTR(62); - - ParamDefTable[53].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(69); - - ParamDefTable[68].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=69, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(70); - Children[1] = PDEF_PTR(71); - Children[2] = PDEF_PTR(72); - - ParamDefTable[69].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=73, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(77); - - ParamDefTable[76].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(79); - - ParamDefTable[78].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=84, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(85); - - ParamDefTable[84].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p13::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p13::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p13::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p13::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p13::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p13::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p13::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p13.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p13NS; + +const char* const DestructibleAssetParameters_0p13Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 86; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 14, 16, 18, 52, 63, 64, 65, 66, 67, 68, 73, 75, 76, 78, 80, 81, 82, + 83, 84, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 44, 45, 46, 37, 38, 39, 40, 41, 42, 43, 47, 48, 49, + 50, 51, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 72, 74, 77, 79, 85, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(62), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(67), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(68), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(77), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(78), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(81), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(82), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(83), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(84), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p13::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p13::mBuiltFlagMutex; + +DestructibleAssetParameters_0p13::DestructibleAssetParameters_0p13(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p13FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p13::~DestructibleAssetParameters_0p13() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p13::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p13(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p13::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p13::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p13* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p13::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p13::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p13::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p13::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p13::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(14); + Children[6] = PDEF_PTR(16); + Children[7] = PDEF_PTR(18); + Children[8] = PDEF_PTR(52); + Children[9] = PDEF_PTR(63); + Children[10] = PDEF_PTR(64); + Children[11] = PDEF_PTR(65); + Children[12] = PDEF_PTR(66); + Children[13] = PDEF_PTR(67); + Children[14] = PDEF_PTR(68); + Children[15] = PDEF_PTR(73); + Children[16] = PDEF_PTR(75); + Children[17] = PDEF_PTR(76); + Children[18] = PDEF_PTR(78); + Children[19] = PDEF_PTR(80); + Children[20] = PDEF_PTR(81); + Children[21] = PDEF_PTR(82); + Children[22] = PDEF_PTR(83); + Children[23] = PDEF_PTR(84); + + ParamDefTable[0].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=5, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="chunks[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(7); + Children[1] = PDEF_PTR(8); + Children[2] = PDEF_PTR(9); + Children[3] = PDEF_PTR(10); + Children[4] = PDEF_PTR(11); + Children[5] = PDEF_PTR(12); + Children[6] = PDEF_PTR(13); + + ParamDefTable[6].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(19); + Children[1] = PDEF_PTR(20); + Children[2] = PDEF_PTR(21); + Children[3] = PDEF_PTR(22); + Children[4] = PDEF_PTR(23); + Children[5] = PDEF_PTR(24); + Children[6] = PDEF_PTR(25); + Children[7] = PDEF_PTR(26); + Children[8] = PDEF_PTR(27); + Children[9] = PDEF_PTR(28); + Children[10] = PDEF_PTR(29); + Children[11] = PDEF_PTR(30); + Children[12] = PDEF_PTR(31); + Children[13] = PDEF_PTR(32); + Children[14] = PDEF_PTR(33); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(36); + Children[18] = PDEF_PTR(44); + Children[19] = PDEF_PTR(45); + Children[20] = PDEF_PTR(46); + + ParamDefTable[18].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + Children[6] = PDEF_PTR(43); + + ParamDefTable[36].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(47); + Children[1] = PDEF_PTR(48); + Children[2] = PDEF_PTR(49); + Children[3] = PDEF_PTR(50); + Children[4] = PDEF_PTR(51); + + ParamDefTable[46].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(53); + + ParamDefTable[52].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(60); + Children[7] = PDEF_PTR(61); + Children[8] = PDEF_PTR(62); + + ParamDefTable[53].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(69); + + ParamDefTable[68].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=69, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(70); + Children[1] = PDEF_PTR(71); + Children[2] = PDEF_PTR(72); + + ParamDefTable[69].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=73, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(77); + + ParamDefTable[76].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(79); + + ParamDefTable[78].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=84, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(85); + + ParamDefTable[84].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p13::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p13::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p13::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p13::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p13::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p13::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p13::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p14.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p14.cpp old mode 100644 new mode 100755 index 468eb02..9110ac0 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p14.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p14.cpp @@ -1,3154 +1,3154 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p14.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p14NS; - -const char* const DestructibleAssetParameters_0p14Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 100; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 12, 20, 21, 31, 33, 35, 66, 77, 78, 79, 80, 81, 82, 87, 89, 90, 92, - 94, 95, 96, 97, 98, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, - 26, 27, 28, 29, 30, 32, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, - 50, 58, 59, 60, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 83, 84, 85, 86, 88, 91, 93, 99, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 6 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(33), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(34), 6 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(40), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(41), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(49), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(50), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(51), 18 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(69), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(76), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(81), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(82), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(91), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(92), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(95), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(96), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(97), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(98), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p14::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p14::mBuiltFlagMutex; - -DestructibleAssetParameters_0p14::DestructibleAssetParameters_0p14(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p14FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p14::~DestructibleAssetParameters_0p14() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p14::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p14(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p14::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p14::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p14* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p14::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p14::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p14::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p14::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p14::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[31].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[32].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[79].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[80].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[90].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[91].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[27]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(12); - Children[6] = PDEF_PTR(20); - Children[7] = PDEF_PTR(21); - Children[8] = PDEF_PTR(31); - Children[9] = PDEF_PTR(33); - Children[10] = PDEF_PTR(35); - Children[11] = PDEF_PTR(66); - Children[12] = PDEF_PTR(77); - Children[13] = PDEF_PTR(78); - Children[14] = PDEF_PTR(79); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(87); - Children[19] = PDEF_PTR(89); - Children[20] = PDEF_PTR(90); - Children[21] = PDEF_PTR(92); - Children[22] = PDEF_PTR(94); - Children[23] = PDEF_PTR(95); - Children[24] = PDEF_PTR(96); - Children[25] = PDEF_PTR(97); - Children[26] = PDEF_PTR(98); - - ParamDefTable[0].setChildren(Children, 27); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - - ParamDefTable[5].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=12, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(13); - - ParamDefTable[12].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=13, longName="behaviorGroups[]" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - Children[3] = PDEF_PTR(17); - Children[4] = PDEF_PTR(18); - Children[5] = PDEF_PTR(19); - - ParamDefTable[13].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=21, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(22); - - ParamDefTable[21].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=22, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(23); - Children[1] = PDEF_PTR(24); - Children[2] = PDEF_PTR(25); - Children[3] = PDEF_PTR(26); - Children[4] = PDEF_PTR(27); - Children[5] = PDEF_PTR(28); - Children[6] = PDEF_PTR(29); - Children[7] = PDEF_PTR(30); - - ParamDefTable[22].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=31, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(32); - - ParamDefTable[31].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=33, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(34); - - ParamDefTable[33].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=35, longName="destructibleParameters" - { - static Definition* Children[18]; - Children[0] = PDEF_PTR(36); - Children[1] = PDEF_PTR(37); - Children[2] = PDEF_PTR(38); - Children[3] = PDEF_PTR(39); - Children[4] = PDEF_PTR(40); - Children[5] = PDEF_PTR(41); - Children[6] = PDEF_PTR(42); - Children[7] = PDEF_PTR(43); - Children[8] = PDEF_PTR(44); - Children[9] = PDEF_PTR(45); - Children[10] = PDEF_PTR(46); - Children[11] = PDEF_PTR(47); - Children[12] = PDEF_PTR(48); - Children[13] = PDEF_PTR(49); - Children[14] = PDEF_PTR(50); - Children[15] = PDEF_PTR(58); - Children[16] = PDEF_PTR(59); - Children[17] = PDEF_PTR(60); - - ParamDefTable[35].setChildren(Children, 18); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - Children[5] = PDEF_PTR(56); - Children[6] = PDEF_PTR(57); - - ParamDefTable[50].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=60, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(61); - Children[1] = PDEF_PTR(62); - Children[2] = PDEF_PTR(63); - Children[3] = PDEF_PTR(64); - Children[4] = PDEF_PTR(65); - - ParamDefTable[60].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=66, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(67); - - ParamDefTable[66].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=67, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(68); - Children[1] = PDEF_PTR(69); - Children[2] = PDEF_PTR(70); - Children[3] = PDEF_PTR(71); - Children[4] = PDEF_PTR(72); - Children[5] = PDEF_PTR(73); - Children[6] = PDEF_PTR(74); - Children[7] = PDEF_PTR(75); - Children[8] = PDEF_PTR(76); - - ParamDefTable[67].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=82, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(83); - - ParamDefTable[82].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=83, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - - ParamDefTable[83].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=87, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(88); - - ParamDefTable[87].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=90, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(91); - - ParamDefTable[90].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=92, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(93); - - ParamDefTable[92].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=98, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(99); - - ParamDefTable[98].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p14::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p14::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p14::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p14::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p14::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p14::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p14::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p14.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p14NS; + +const char* const DestructibleAssetParameters_0p14Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 100; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 12, 20, 21, 31, 33, 35, 66, 77, 78, 79, 80, 81, 82, 87, 89, 90, 92, + 94, 95, 96, 97, 98, 6, 7, 8, 9, 10, 11, 13, 14, 15, 16, 17, 18, 19, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 32, 34, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, + 50, 58, 59, 60, 51, 52, 53, 54, 55, 56, 57, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 83, 84, 85, 86, 88, 91, 93, 99, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 6 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(33), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(34), 6 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(40), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(41), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(49), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(50), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(51), 18 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(69), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(76), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(81), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(82), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(91), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(92), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(95), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(96), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(97), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(98), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p14::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p14::mBuiltFlagMutex; + +DestructibleAssetParameters_0p14::DestructibleAssetParameters_0p14(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p14FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p14::~DestructibleAssetParameters_0p14() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p14::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p14(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p14::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p14::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p14* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p14::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p14::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p14::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p14::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p14::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[31].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[32].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[79].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[80].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[90].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[91].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[27]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(12); + Children[6] = PDEF_PTR(20); + Children[7] = PDEF_PTR(21); + Children[8] = PDEF_PTR(31); + Children[9] = PDEF_PTR(33); + Children[10] = PDEF_PTR(35); + Children[11] = PDEF_PTR(66); + Children[12] = PDEF_PTR(77); + Children[13] = PDEF_PTR(78); + Children[14] = PDEF_PTR(79); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(87); + Children[19] = PDEF_PTR(89); + Children[20] = PDEF_PTR(90); + Children[21] = PDEF_PTR(92); + Children[22] = PDEF_PTR(94); + Children[23] = PDEF_PTR(95); + Children[24] = PDEF_PTR(96); + Children[25] = PDEF_PTR(97); + Children[26] = PDEF_PTR(98); + + ParamDefTable[0].setChildren(Children, 27); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + + ParamDefTable[5].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=12, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(13); + + ParamDefTable[12].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=13, longName="behaviorGroups[]" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + Children[3] = PDEF_PTR(17); + Children[4] = PDEF_PTR(18); + Children[5] = PDEF_PTR(19); + + ParamDefTable[13].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=21, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(22); + + ParamDefTable[21].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=22, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(23); + Children[1] = PDEF_PTR(24); + Children[2] = PDEF_PTR(25); + Children[3] = PDEF_PTR(26); + Children[4] = PDEF_PTR(27); + Children[5] = PDEF_PTR(28); + Children[6] = PDEF_PTR(29); + Children[7] = PDEF_PTR(30); + + ParamDefTable[22].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=31, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(32); + + ParamDefTable[31].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=33, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(34); + + ParamDefTable[33].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=35, longName="destructibleParameters" + { + static Definition* Children[18]; + Children[0] = PDEF_PTR(36); + Children[1] = PDEF_PTR(37); + Children[2] = PDEF_PTR(38); + Children[3] = PDEF_PTR(39); + Children[4] = PDEF_PTR(40); + Children[5] = PDEF_PTR(41); + Children[6] = PDEF_PTR(42); + Children[7] = PDEF_PTR(43); + Children[8] = PDEF_PTR(44); + Children[9] = PDEF_PTR(45); + Children[10] = PDEF_PTR(46); + Children[11] = PDEF_PTR(47); + Children[12] = PDEF_PTR(48); + Children[13] = PDEF_PTR(49); + Children[14] = PDEF_PTR(50); + Children[15] = PDEF_PTR(58); + Children[16] = PDEF_PTR(59); + Children[17] = PDEF_PTR(60); + + ParamDefTable[35].setChildren(Children, 18); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + Children[5] = PDEF_PTR(56); + Children[6] = PDEF_PTR(57); + + ParamDefTable[50].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=60, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(61); + Children[1] = PDEF_PTR(62); + Children[2] = PDEF_PTR(63); + Children[3] = PDEF_PTR(64); + Children[4] = PDEF_PTR(65); + + ParamDefTable[60].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=66, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(67); + + ParamDefTable[66].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=67, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(68); + Children[1] = PDEF_PTR(69); + Children[2] = PDEF_PTR(70); + Children[3] = PDEF_PTR(71); + Children[4] = PDEF_PTR(72); + Children[5] = PDEF_PTR(73); + Children[6] = PDEF_PTR(74); + Children[7] = PDEF_PTR(75); + Children[8] = PDEF_PTR(76); + + ParamDefTable[67].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=82, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(83); + + ParamDefTable[82].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=83, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + + ParamDefTable[83].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=87, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(88); + + ParamDefTable[87].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=90, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(91); + + ParamDefTable[90].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=92, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(93); + + ParamDefTable[92].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=98, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(99); + + ParamDefTable[98].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p14::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p14::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p14::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p14::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p14::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p14::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p14::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p15.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p15.cpp old mode 100644 new mode 100755 index 130b3dd..d9ebdb1 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p15.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p15.cpp @@ -1,3307 +1,3307 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p15.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p15NS; - -const char* const DestructibleAssetParameters_0p15Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 106; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 15, 26, 27, 37, 39, 41, 72, 83, 84, 85, 86, 87, 88, 93, 95, 96, 98, - 100, 101, 102, 103, 104, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 64, 65, 66, 57, 58, 59, 60, 61, 62, 63, 67, 68, - 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 89, 90, 91, 92, 94, 97, 99, 105, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 9 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // defaultBehaviorGroup.minimumDamageRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageRadiusMultiplier - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageFalloffExponent - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(36), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(37), 9 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // behaviorGroups[].minimumDamageRadius - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // behaviorGroups[].damageRadiusMultiplier - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // behaviorGroups[].damageFalloffExponent - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(46), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(47), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(55), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(56), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(57), 18 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(75), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(82), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(87), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(88), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(97), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(98), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(101), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(102), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(103), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(104), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p15::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p15::mBuiltFlagMutex; - -DestructibleAssetParameters_0p15::DestructibleAssetParameters_0p15(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p15FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p15::~DestructibleAssetParameters_0p15() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p15::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p15(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p15::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p15::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p15* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p15::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p15::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p15::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p15::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p15::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.minimumDamageRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageRadiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageFalloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="behaviorGroups[].minimumDamageRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="behaviorGroups[].damageRadiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups[].damageFalloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[37].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[38].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[85].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[86].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[96].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[97].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[27]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(15); - Children[6] = PDEF_PTR(26); - Children[7] = PDEF_PTR(27); - Children[8] = PDEF_PTR(37); - Children[9] = PDEF_PTR(39); - Children[10] = PDEF_PTR(41); - Children[11] = PDEF_PTR(72); - Children[12] = PDEF_PTR(83); - Children[13] = PDEF_PTR(84); - Children[14] = PDEF_PTR(85); - Children[15] = PDEF_PTR(86); - Children[16] = PDEF_PTR(87); - Children[17] = PDEF_PTR(88); - Children[18] = PDEF_PTR(93); - Children[19] = PDEF_PTR(95); - Children[20] = PDEF_PTR(96); - Children[21] = PDEF_PTR(98); - Children[22] = PDEF_PTR(100); - Children[23] = PDEF_PTR(101); - Children[24] = PDEF_PTR(102); - Children[25] = PDEF_PTR(103); - Children[26] = PDEF_PTR(104); - - ParamDefTable[0].setChildren(Children, 27); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - Children[8] = PDEF_PTR(14); - - ParamDefTable[5].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=15, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="behaviorGroups[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(17); - Children[1] = PDEF_PTR(18); - Children[2] = PDEF_PTR(19); - Children[3] = PDEF_PTR(20); - Children[4] = PDEF_PTR(21); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(23); - Children[7] = PDEF_PTR(24); - Children[8] = PDEF_PTR(25); - - ParamDefTable[16].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=27, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(28); - - ParamDefTable[27].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=28, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(29); - Children[1] = PDEF_PTR(30); - Children[2] = PDEF_PTR(31); - Children[3] = PDEF_PTR(32); - Children[4] = PDEF_PTR(33); - Children[5] = PDEF_PTR(34); - Children[6] = PDEF_PTR(35); - Children[7] = PDEF_PTR(36); - - ParamDefTable[28].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=37, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(38); - - ParamDefTable[37].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=39, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(40); - - ParamDefTable[39].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=41, longName="destructibleParameters" - { - static Definition* Children[18]; - Children[0] = PDEF_PTR(42); - Children[1] = PDEF_PTR(43); - Children[2] = PDEF_PTR(44); - Children[3] = PDEF_PTR(45); - Children[4] = PDEF_PTR(46); - Children[5] = PDEF_PTR(47); - Children[6] = PDEF_PTR(48); - Children[7] = PDEF_PTR(49); - Children[8] = PDEF_PTR(50); - Children[9] = PDEF_PTR(51); - Children[10] = PDEF_PTR(52); - Children[11] = PDEF_PTR(53); - Children[12] = PDEF_PTR(54); - Children[13] = PDEF_PTR(55); - Children[14] = PDEF_PTR(56); - Children[15] = PDEF_PTR(64); - Children[16] = PDEF_PTR(65); - Children[17] = PDEF_PTR(66); - - ParamDefTable[41].setChildren(Children, 18); - } - - // SetChildren for: nodeIndex=56, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(57); - Children[1] = PDEF_PTR(58); - Children[2] = PDEF_PTR(59); - Children[3] = PDEF_PTR(60); - Children[4] = PDEF_PTR(61); - Children[5] = PDEF_PTR(62); - Children[6] = PDEF_PTR(63); - - ParamDefTable[56].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=66, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(67); - Children[1] = PDEF_PTR(68); - Children[2] = PDEF_PTR(69); - Children[3] = PDEF_PTR(70); - Children[4] = PDEF_PTR(71); - - ParamDefTable[66].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=72, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(73); - - ParamDefTable[72].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=73, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(74); - Children[1] = PDEF_PTR(75); - Children[2] = PDEF_PTR(76); - Children[3] = PDEF_PTR(77); - Children[4] = PDEF_PTR(78); - Children[5] = PDEF_PTR(79); - Children[6] = PDEF_PTR(80); - Children[7] = PDEF_PTR(81); - Children[8] = PDEF_PTR(82); - - ParamDefTable[73].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=88, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(89); - - ParamDefTable[88].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=89, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(90); - Children[1] = PDEF_PTR(91); - Children[2] = PDEF_PTR(92); - - ParamDefTable[89].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=93, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(94); - - ParamDefTable[93].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=96, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(97); - - ParamDefTable[96].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=98, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(99); - - ParamDefTable[98].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=104, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(105); - - ParamDefTable[104].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p15::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p15::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p15::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.minimumDamageRadius = float(0); - defaultBehaviorGroup.damageRadiusMultiplier = float(1); - defaultBehaviorGroup.damageFalloffExponent = float(1); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p15::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p15::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p15::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p15::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p15.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p15NS; + +const char* const DestructibleAssetParameters_0p15Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 106; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 15, 26, 27, 37, 39, 41, 72, 83, 84, 85, 86, 87, 88, 93, 95, 96, 98, + 100, 101, 102, 103, 104, 6, 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 28, 29, 30, 31, 32, 33, 34, 35, 36, 38, 40, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 64, 65, 66, 57, 58, 59, 60, 61, 62, 63, 67, 68, + 69, 70, 71, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 89, 90, 91, 92, 94, 97, 99, 105, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 9 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // defaultBehaviorGroup.minimumDamageRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageRadiusMultiplier + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageFalloffExponent + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(36), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(37), 9 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->minimumDamageRadius), NULL, 0 }, // behaviorGroups[].minimumDamageRadius + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageRadiusMultiplier), NULL, 0 }, // behaviorGroups[].damageRadiusMultiplier + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageFalloffExponent), NULL, 0 }, // behaviorGroups[].damageFalloffExponent + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(46), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(47), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(55), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(56), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(57), 18 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(75), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(82), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(87), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(88), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(97), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(98), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(101), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(102), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(103), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(104), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p15::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p15::mBuiltFlagMutex; + +DestructibleAssetParameters_0p15::DestructibleAssetParameters_0p15(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p15FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p15::~DestructibleAssetParameters_0p15() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p15::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p15(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p15::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p15::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p15* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p15::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p15::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p15::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p15::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p15::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.minimumDamageRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageRadiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageFalloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n minimumDamageRadius, damageRadiusMultiplier, and damageFalloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="behaviorGroups[].minimumDamageRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("minimumDamageRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="behaviorGroups[].damageRadiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageRadiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups[].damageFalloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("damageFalloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumDamageRadius + (input radius) * damageRadiusMultiplier.\n Within the minimumDamageRadius, the full damage is applied to chunks. Past the minimumDamageRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumDamageRadius))^damageFalloffExponent.\n Note: damageFalloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n damageFalloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[37].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[38].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[85].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[86].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[96].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[97].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[27]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(15); + Children[6] = PDEF_PTR(26); + Children[7] = PDEF_PTR(27); + Children[8] = PDEF_PTR(37); + Children[9] = PDEF_PTR(39); + Children[10] = PDEF_PTR(41); + Children[11] = PDEF_PTR(72); + Children[12] = PDEF_PTR(83); + Children[13] = PDEF_PTR(84); + Children[14] = PDEF_PTR(85); + Children[15] = PDEF_PTR(86); + Children[16] = PDEF_PTR(87); + Children[17] = PDEF_PTR(88); + Children[18] = PDEF_PTR(93); + Children[19] = PDEF_PTR(95); + Children[20] = PDEF_PTR(96); + Children[21] = PDEF_PTR(98); + Children[22] = PDEF_PTR(100); + Children[23] = PDEF_PTR(101); + Children[24] = PDEF_PTR(102); + Children[25] = PDEF_PTR(103); + Children[26] = PDEF_PTR(104); + + ParamDefTable[0].setChildren(Children, 27); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + Children[8] = PDEF_PTR(14); + + ParamDefTable[5].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=15, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="behaviorGroups[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(17); + Children[1] = PDEF_PTR(18); + Children[2] = PDEF_PTR(19); + Children[3] = PDEF_PTR(20); + Children[4] = PDEF_PTR(21); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(23); + Children[7] = PDEF_PTR(24); + Children[8] = PDEF_PTR(25); + + ParamDefTable[16].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=27, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(28); + + ParamDefTable[27].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=28, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(29); + Children[1] = PDEF_PTR(30); + Children[2] = PDEF_PTR(31); + Children[3] = PDEF_PTR(32); + Children[4] = PDEF_PTR(33); + Children[5] = PDEF_PTR(34); + Children[6] = PDEF_PTR(35); + Children[7] = PDEF_PTR(36); + + ParamDefTable[28].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=37, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(38); + + ParamDefTable[37].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=39, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(40); + + ParamDefTable[39].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=41, longName="destructibleParameters" + { + static Definition* Children[18]; + Children[0] = PDEF_PTR(42); + Children[1] = PDEF_PTR(43); + Children[2] = PDEF_PTR(44); + Children[3] = PDEF_PTR(45); + Children[4] = PDEF_PTR(46); + Children[5] = PDEF_PTR(47); + Children[6] = PDEF_PTR(48); + Children[7] = PDEF_PTR(49); + Children[8] = PDEF_PTR(50); + Children[9] = PDEF_PTR(51); + Children[10] = PDEF_PTR(52); + Children[11] = PDEF_PTR(53); + Children[12] = PDEF_PTR(54); + Children[13] = PDEF_PTR(55); + Children[14] = PDEF_PTR(56); + Children[15] = PDEF_PTR(64); + Children[16] = PDEF_PTR(65); + Children[17] = PDEF_PTR(66); + + ParamDefTable[41].setChildren(Children, 18); + } + + // SetChildren for: nodeIndex=56, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(57); + Children[1] = PDEF_PTR(58); + Children[2] = PDEF_PTR(59); + Children[3] = PDEF_PTR(60); + Children[4] = PDEF_PTR(61); + Children[5] = PDEF_PTR(62); + Children[6] = PDEF_PTR(63); + + ParamDefTable[56].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=66, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(67); + Children[1] = PDEF_PTR(68); + Children[2] = PDEF_PTR(69); + Children[3] = PDEF_PTR(70); + Children[4] = PDEF_PTR(71); + + ParamDefTable[66].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=72, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(73); + + ParamDefTable[72].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=73, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(74); + Children[1] = PDEF_PTR(75); + Children[2] = PDEF_PTR(76); + Children[3] = PDEF_PTR(77); + Children[4] = PDEF_PTR(78); + Children[5] = PDEF_PTR(79); + Children[6] = PDEF_PTR(80); + Children[7] = PDEF_PTR(81); + Children[8] = PDEF_PTR(82); + + ParamDefTable[73].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=88, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(89); + + ParamDefTable[88].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=89, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(90); + Children[1] = PDEF_PTR(91); + Children[2] = PDEF_PTR(92); + + ParamDefTable[89].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=93, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(94); + + ParamDefTable[93].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=96, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(97); + + ParamDefTable[96].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=98, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(99); + + ParamDefTable[98].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=104, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(105); + + ParamDefTable[104].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p15::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p15::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p15::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.minimumDamageRadius = float(0); + defaultBehaviorGroup.damageRadiusMultiplier = float(1); + defaultBehaviorGroup.damageFalloffExponent = float(1); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p15::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p15::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p15::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p15::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p16.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p16.cpp old mode 100644 new mode 100755 index 2393231..bdee7ba --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p16.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p16.cpp @@ -1,3640 +1,3640 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p16.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p16NS; - -const char* const DestructibleAssetParameters_0p16Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 118; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 21, 38, 39, 49, 51, 53, 84, 95, 96, 97, 98, 99, 100, 105, 107, 108, - 110, 112, 113, 114, 115, 116, 6, 7, 8, 9, 13, 17, 18, 19, 20, 10, 11, 12, 14, 15, - 16, 22, 23, 24, 25, 26, 30, 34, 35, 36, 37, 27, 28, 29, 31, 32, 33, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 50, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 76, 77, 78, 69, 70, 71, 72, 73, 74, 75, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 101, 102, 103, 104, 106, 109, 111, 117, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 9 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(36), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(39), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(42), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(43), 9 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(52), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(55), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(58), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(59), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(67), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(68), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(69), 18 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(87), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(94), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(99), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(100), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(109), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(110), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(113), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(114), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(115), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(116), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p16::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p16::mBuiltFlagMutex; - -DestructibleAssetParameters_0p16::DestructibleAssetParameters_0p16(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p16FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p16::~DestructibleAssetParameters_0p16() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p16::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p16(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p16::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p16::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p16* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p16::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p16::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p16::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p16::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p16::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[49].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[50].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[97].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[98].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[108].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[109].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[27]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(21); - Children[6] = PDEF_PTR(38); - Children[7] = PDEF_PTR(39); - Children[8] = PDEF_PTR(49); - Children[9] = PDEF_PTR(51); - Children[10] = PDEF_PTR(53); - Children[11] = PDEF_PTR(84); - Children[12] = PDEF_PTR(95); - Children[13] = PDEF_PTR(96); - Children[14] = PDEF_PTR(97); - Children[15] = PDEF_PTR(98); - Children[16] = PDEF_PTR(99); - Children[17] = PDEF_PTR(100); - Children[18] = PDEF_PTR(105); - Children[19] = PDEF_PTR(107); - Children[20] = PDEF_PTR(108); - Children[21] = PDEF_PTR(110); - Children[22] = PDEF_PTR(112); - Children[23] = PDEF_PTR(113); - Children[24] = PDEF_PTR(114); - Children[25] = PDEF_PTR(115); - Children[26] = PDEF_PTR(116); - - ParamDefTable[0].setChildren(Children, 27); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - - ParamDefTable[5].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=21, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(22); - - ParamDefTable[21].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=22, longName="behaviorGroups[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(23); - Children[1] = PDEF_PTR(24); - Children[2] = PDEF_PTR(25); - Children[3] = PDEF_PTR(26); - Children[4] = PDEF_PTR(30); - Children[5] = PDEF_PTR(34); - Children[6] = PDEF_PTR(35); - Children[7] = PDEF_PTR(36); - Children[8] = PDEF_PTR(37); - - ParamDefTable[22].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=26, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(27); - Children[1] = PDEF_PTR(28); - Children[2] = PDEF_PTR(29); - - ParamDefTable[26].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(31); - Children[1] = PDEF_PTR(32); - Children[2] = PDEF_PTR(33); - - ParamDefTable[30].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=39, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(40); - - ParamDefTable[39].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=40, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(41); - Children[1] = PDEF_PTR(42); - Children[2] = PDEF_PTR(43); - Children[3] = PDEF_PTR(44); - Children[4] = PDEF_PTR(45); - Children[5] = PDEF_PTR(46); - Children[6] = PDEF_PTR(47); - Children[7] = PDEF_PTR(48); - - ParamDefTable[40].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=49, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=51, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="destructibleParameters" - { - static Definition* Children[18]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(60); - Children[7] = PDEF_PTR(61); - Children[8] = PDEF_PTR(62); - Children[9] = PDEF_PTR(63); - Children[10] = PDEF_PTR(64); - Children[11] = PDEF_PTR(65); - Children[12] = PDEF_PTR(66); - Children[13] = PDEF_PTR(67); - Children[14] = PDEF_PTR(68); - Children[15] = PDEF_PTR(76); - Children[16] = PDEF_PTR(77); - Children[17] = PDEF_PTR(78); - - ParamDefTable[53].setChildren(Children, 18); - } - - // SetChildren for: nodeIndex=68, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - Children[3] = PDEF_PTR(72); - Children[4] = PDEF_PTR(73); - Children[5] = PDEF_PTR(74); - Children[6] = PDEF_PTR(75); - - ParamDefTable[68].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=78, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(79); - Children[1] = PDEF_PTR(80); - Children[2] = PDEF_PTR(81); - Children[3] = PDEF_PTR(82); - Children[4] = PDEF_PTR(83); - - ParamDefTable[78].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=84, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(85); - - ParamDefTable[84].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=85, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - Children[5] = PDEF_PTR(91); - Children[6] = PDEF_PTR(92); - Children[7] = PDEF_PTR(93); - Children[8] = PDEF_PTR(94); - - ParamDefTable[85].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=100, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(101); - - ParamDefTable[100].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=101, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(102); - Children[1] = PDEF_PTR(103); - Children[2] = PDEF_PTR(104); - - ParamDefTable[101].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=105, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(106); - - ParamDefTable[105].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=108, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(109); - - ParamDefTable[108].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=110, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(111); - - ParamDefTable[110].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=116, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(117); - - ParamDefTable[116].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p16::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p16::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p16::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p16::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p16::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p16::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p16::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p16.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p16NS; + +const char* const DestructibleAssetParameters_0p16Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 118; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 21, 38, 39, 49, 51, 53, 84, 95, 96, 97, 98, 99, 100, 105, 107, 108, + 110, 112, 113, 114, 115, 116, 6, 7, 8, 9, 13, 17, 18, 19, 20, 10, 11, 12, 14, 15, + 16, 22, 23, 24, 25, 26, 30, 34, 35, 36, 37, 27, 28, 29, 31, 32, 33, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 50, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 76, 77, 78, 69, 70, 71, 72, 73, 74, 75, 79, 80, 81, 82, 83, 85, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 101, 102, 103, 104, 106, 109, 111, 117, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 9 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(36), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(39), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(42), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(43), 9 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(52), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(55), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(58), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(59), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(67), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(68), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(69), 18 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(87), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(94), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(99), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(100), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(109), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(110), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(113), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(114), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(115), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(116), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p16::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p16::mBuiltFlagMutex; + +DestructibleAssetParameters_0p16::DestructibleAssetParameters_0p16(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p16FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p16::~DestructibleAssetParameters_0p16() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p16::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p16(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p16::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p16::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p16* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p16::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p16::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p16::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p16::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p16::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[49].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[50].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[97].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[98].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[108].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[109].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[27]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(21); + Children[6] = PDEF_PTR(38); + Children[7] = PDEF_PTR(39); + Children[8] = PDEF_PTR(49); + Children[9] = PDEF_PTR(51); + Children[10] = PDEF_PTR(53); + Children[11] = PDEF_PTR(84); + Children[12] = PDEF_PTR(95); + Children[13] = PDEF_PTR(96); + Children[14] = PDEF_PTR(97); + Children[15] = PDEF_PTR(98); + Children[16] = PDEF_PTR(99); + Children[17] = PDEF_PTR(100); + Children[18] = PDEF_PTR(105); + Children[19] = PDEF_PTR(107); + Children[20] = PDEF_PTR(108); + Children[21] = PDEF_PTR(110); + Children[22] = PDEF_PTR(112); + Children[23] = PDEF_PTR(113); + Children[24] = PDEF_PTR(114); + Children[25] = PDEF_PTR(115); + Children[26] = PDEF_PTR(116); + + ParamDefTable[0].setChildren(Children, 27); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + + ParamDefTable[5].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=21, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(22); + + ParamDefTable[21].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=22, longName="behaviorGroups[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(23); + Children[1] = PDEF_PTR(24); + Children[2] = PDEF_PTR(25); + Children[3] = PDEF_PTR(26); + Children[4] = PDEF_PTR(30); + Children[5] = PDEF_PTR(34); + Children[6] = PDEF_PTR(35); + Children[7] = PDEF_PTR(36); + Children[8] = PDEF_PTR(37); + + ParamDefTable[22].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=26, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(27); + Children[1] = PDEF_PTR(28); + Children[2] = PDEF_PTR(29); + + ParamDefTable[26].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(31); + Children[1] = PDEF_PTR(32); + Children[2] = PDEF_PTR(33); + + ParamDefTable[30].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=39, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(40); + + ParamDefTable[39].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=40, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(41); + Children[1] = PDEF_PTR(42); + Children[2] = PDEF_PTR(43); + Children[3] = PDEF_PTR(44); + Children[4] = PDEF_PTR(45); + Children[5] = PDEF_PTR(46); + Children[6] = PDEF_PTR(47); + Children[7] = PDEF_PTR(48); + + ParamDefTable[40].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=49, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=51, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="destructibleParameters" + { + static Definition* Children[18]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(60); + Children[7] = PDEF_PTR(61); + Children[8] = PDEF_PTR(62); + Children[9] = PDEF_PTR(63); + Children[10] = PDEF_PTR(64); + Children[11] = PDEF_PTR(65); + Children[12] = PDEF_PTR(66); + Children[13] = PDEF_PTR(67); + Children[14] = PDEF_PTR(68); + Children[15] = PDEF_PTR(76); + Children[16] = PDEF_PTR(77); + Children[17] = PDEF_PTR(78); + + ParamDefTable[53].setChildren(Children, 18); + } + + // SetChildren for: nodeIndex=68, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + Children[3] = PDEF_PTR(72); + Children[4] = PDEF_PTR(73); + Children[5] = PDEF_PTR(74); + Children[6] = PDEF_PTR(75); + + ParamDefTable[68].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=78, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(79); + Children[1] = PDEF_PTR(80); + Children[2] = PDEF_PTR(81); + Children[3] = PDEF_PTR(82); + Children[4] = PDEF_PTR(83); + + ParamDefTable[78].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=84, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(85); + + ParamDefTable[84].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=85, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + Children[5] = PDEF_PTR(91); + Children[6] = PDEF_PTR(92); + Children[7] = PDEF_PTR(93); + Children[8] = PDEF_PTR(94); + + ParamDefTable[85].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=100, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(101); + + ParamDefTable[100].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=101, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(102); + Children[1] = PDEF_PTR(103); + Children[2] = PDEF_PTR(104); + + ParamDefTable[101].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=105, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(106); + + ParamDefTable[105].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=108, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(109); + + ParamDefTable[108].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=110, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(111); + + ParamDefTable[110].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=116, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(117); + + ParamDefTable[116].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p16::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p16::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p16::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p16::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p16::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p16::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p16::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p17.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p17.cpp old mode 100644 new mode 100755 index 3d71d5c..250e6a4 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p17.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p17.cpp @@ -1,3666 +1,3666 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p17.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p17NS; - -const char* const DestructibleAssetParameters_0p17Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 119; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 21, 38, 39, 49, 51, 53, 85, 96, 97, 98, 99, 100, 101, 106, 108, 109, - 111, 113, 114, 115, 116, 117, 6, 7, 8, 9, 13, 17, 18, 19, 20, 10, 11, 12, 14, 15, - 16, 22, 23, 24, 25, 26, 30, 34, 35, 36, 37, 27, 28, 29, 31, 32, 33, 40, 41, 42, 43, - 44, 45, 46, 47, 48, 50, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 76, 77, 78, 79, 69, 70, 71, 72, 73, 74, 75, 80, 81, 82, 83, 84, 86, 87, 88, 89, - 90, 91, 92, 93, 94, 95, 102, 103, 104, 105, 107, 110, 112, 118, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 9 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(36), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(39), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(42), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(43), 9 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(52), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(55), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(58), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(59), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(67), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(68), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(69), 19 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(88), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(95), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(100), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(101), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(110), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(111), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(114), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(115), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(116), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(117), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p17::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p17::mBuiltFlagMutex; - -DestructibleAssetParameters_0p17::DestructibleAssetParameters_0p17(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p17FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p17::~DestructibleAssetParameters_0p17() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p17::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p17(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p17::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p17::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p17* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p17::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p17::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p17::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p17::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p17::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[49].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[50].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[98].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[99].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[109].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[110].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[27]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(21); - Children[6] = PDEF_PTR(38); - Children[7] = PDEF_PTR(39); - Children[8] = PDEF_PTR(49); - Children[9] = PDEF_PTR(51); - Children[10] = PDEF_PTR(53); - Children[11] = PDEF_PTR(85); - Children[12] = PDEF_PTR(96); - Children[13] = PDEF_PTR(97); - Children[14] = PDEF_PTR(98); - Children[15] = PDEF_PTR(99); - Children[16] = PDEF_PTR(100); - Children[17] = PDEF_PTR(101); - Children[18] = PDEF_PTR(106); - Children[19] = PDEF_PTR(108); - Children[20] = PDEF_PTR(109); - Children[21] = PDEF_PTR(111); - Children[22] = PDEF_PTR(113); - Children[23] = PDEF_PTR(114); - Children[24] = PDEF_PTR(115); - Children[25] = PDEF_PTR(116); - Children[26] = PDEF_PTR(117); - - ParamDefTable[0].setChildren(Children, 27); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - - ParamDefTable[5].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=21, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(22); - - ParamDefTable[21].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=22, longName="behaviorGroups[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(23); - Children[1] = PDEF_PTR(24); - Children[2] = PDEF_PTR(25); - Children[3] = PDEF_PTR(26); - Children[4] = PDEF_PTR(30); - Children[5] = PDEF_PTR(34); - Children[6] = PDEF_PTR(35); - Children[7] = PDEF_PTR(36); - Children[8] = PDEF_PTR(37); - - ParamDefTable[22].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=26, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(27); - Children[1] = PDEF_PTR(28); - Children[2] = PDEF_PTR(29); - - ParamDefTable[26].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(31); - Children[1] = PDEF_PTR(32); - Children[2] = PDEF_PTR(33); - - ParamDefTable[30].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=39, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(40); - - ParamDefTable[39].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=40, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(41); - Children[1] = PDEF_PTR(42); - Children[2] = PDEF_PTR(43); - Children[3] = PDEF_PTR(44); - Children[4] = PDEF_PTR(45); - Children[5] = PDEF_PTR(46); - Children[6] = PDEF_PTR(47); - Children[7] = PDEF_PTR(48); - - ParamDefTable[40].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=49, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=51, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="destructibleParameters" - { - static Definition* Children[19]; - Children[0] = PDEF_PTR(54); - Children[1] = PDEF_PTR(55); - Children[2] = PDEF_PTR(56); - Children[3] = PDEF_PTR(57); - Children[4] = PDEF_PTR(58); - Children[5] = PDEF_PTR(59); - Children[6] = PDEF_PTR(60); - Children[7] = PDEF_PTR(61); - Children[8] = PDEF_PTR(62); - Children[9] = PDEF_PTR(63); - Children[10] = PDEF_PTR(64); - Children[11] = PDEF_PTR(65); - Children[12] = PDEF_PTR(66); - Children[13] = PDEF_PTR(67); - Children[14] = PDEF_PTR(68); - Children[15] = PDEF_PTR(76); - Children[16] = PDEF_PTR(77); - Children[17] = PDEF_PTR(78); - Children[18] = PDEF_PTR(79); - - ParamDefTable[53].setChildren(Children, 19); - } - - // SetChildren for: nodeIndex=68, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - Children[3] = PDEF_PTR(72); - Children[4] = PDEF_PTR(73); - Children[5] = PDEF_PTR(74); - Children[6] = PDEF_PTR(75); - - ParamDefTable[68].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=79, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(80); - Children[1] = PDEF_PTR(81); - Children[2] = PDEF_PTR(82); - Children[3] = PDEF_PTR(83); - Children[4] = PDEF_PTR(84); - - ParamDefTable[79].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=85, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(86); - - ParamDefTable[85].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=86, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(87); - Children[1] = PDEF_PTR(88); - Children[2] = PDEF_PTR(89); - Children[3] = PDEF_PTR(90); - Children[4] = PDEF_PTR(91); - Children[5] = PDEF_PTR(92); - Children[6] = PDEF_PTR(93); - Children[7] = PDEF_PTR(94); - Children[8] = PDEF_PTR(95); - - ParamDefTable[86].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=101, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(102); - - ParamDefTable[101].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=102, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(103); - Children[1] = PDEF_PTR(104); - Children[2] = PDEF_PTR(105); - - ParamDefTable[102].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=106, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(107); - - ParamDefTable[106].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=109, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(110); - - ParamDefTable[109].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=111, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(112); - - ParamDefTable[111].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=117, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(118); - - ParamDefTable[117].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p17::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p17::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p17::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p17::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p17::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p17::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p17::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p17.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p17NS; + +const char* const DestructibleAssetParameters_0p17Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 119; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 21, 38, 39, 49, 51, 53, 85, 96, 97, 98, 99, 100, 101, 106, 108, 109, + 111, 113, 114, 115, 116, 117, 6, 7, 8, 9, 13, 17, 18, 19, 20, 10, 11, 12, 14, 15, + 16, 22, 23, 24, 25, 26, 30, 34, 35, 36, 37, 27, 28, 29, 31, 32, 33, 40, 41, 42, 43, + 44, 45, 46, 47, 48, 50, 52, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 76, 77, 78, 79, 69, 70, 71, 72, 73, 74, 75, 80, 81, 82, 83, 84, 86, 87, 88, 89, + 90, 91, 92, 93, 94, 95, 102, 103, 104, 105, 107, 110, 112, 118, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 9 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(36), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(39), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(42), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(43), 9 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(52), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(55), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(58), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(59), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(67), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(68), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(69), 19 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(88), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(95), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(100), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(101), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(110), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(111), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(114), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(115), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(116), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(117), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p17::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p17::mBuiltFlagMutex; + +DestructibleAssetParameters_0p17::DestructibleAssetParameters_0p17(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p17FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p17::~DestructibleAssetParameters_0p17() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p17::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p17(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p17::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p17::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p17* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p17::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p17::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p17::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p17::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p17::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[49].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[50].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[98].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[99].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[109].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[110].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[27]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(21); + Children[6] = PDEF_PTR(38); + Children[7] = PDEF_PTR(39); + Children[8] = PDEF_PTR(49); + Children[9] = PDEF_PTR(51); + Children[10] = PDEF_PTR(53); + Children[11] = PDEF_PTR(85); + Children[12] = PDEF_PTR(96); + Children[13] = PDEF_PTR(97); + Children[14] = PDEF_PTR(98); + Children[15] = PDEF_PTR(99); + Children[16] = PDEF_PTR(100); + Children[17] = PDEF_PTR(101); + Children[18] = PDEF_PTR(106); + Children[19] = PDEF_PTR(108); + Children[20] = PDEF_PTR(109); + Children[21] = PDEF_PTR(111); + Children[22] = PDEF_PTR(113); + Children[23] = PDEF_PTR(114); + Children[24] = PDEF_PTR(115); + Children[25] = PDEF_PTR(116); + Children[26] = PDEF_PTR(117); + + ParamDefTable[0].setChildren(Children, 27); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + + ParamDefTable[5].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=21, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(22); + + ParamDefTable[21].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=22, longName="behaviorGroups[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(23); + Children[1] = PDEF_PTR(24); + Children[2] = PDEF_PTR(25); + Children[3] = PDEF_PTR(26); + Children[4] = PDEF_PTR(30); + Children[5] = PDEF_PTR(34); + Children[6] = PDEF_PTR(35); + Children[7] = PDEF_PTR(36); + Children[8] = PDEF_PTR(37); + + ParamDefTable[22].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=26, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(27); + Children[1] = PDEF_PTR(28); + Children[2] = PDEF_PTR(29); + + ParamDefTable[26].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=30, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(31); + Children[1] = PDEF_PTR(32); + Children[2] = PDEF_PTR(33); + + ParamDefTable[30].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=39, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(40); + + ParamDefTable[39].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=40, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(41); + Children[1] = PDEF_PTR(42); + Children[2] = PDEF_PTR(43); + Children[3] = PDEF_PTR(44); + Children[4] = PDEF_PTR(45); + Children[5] = PDEF_PTR(46); + Children[6] = PDEF_PTR(47); + Children[7] = PDEF_PTR(48); + + ParamDefTable[40].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=49, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=51, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="destructibleParameters" + { + static Definition* Children[19]; + Children[0] = PDEF_PTR(54); + Children[1] = PDEF_PTR(55); + Children[2] = PDEF_PTR(56); + Children[3] = PDEF_PTR(57); + Children[4] = PDEF_PTR(58); + Children[5] = PDEF_PTR(59); + Children[6] = PDEF_PTR(60); + Children[7] = PDEF_PTR(61); + Children[8] = PDEF_PTR(62); + Children[9] = PDEF_PTR(63); + Children[10] = PDEF_PTR(64); + Children[11] = PDEF_PTR(65); + Children[12] = PDEF_PTR(66); + Children[13] = PDEF_PTR(67); + Children[14] = PDEF_PTR(68); + Children[15] = PDEF_PTR(76); + Children[16] = PDEF_PTR(77); + Children[17] = PDEF_PTR(78); + Children[18] = PDEF_PTR(79); + + ParamDefTable[53].setChildren(Children, 19); + } + + // SetChildren for: nodeIndex=68, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + Children[3] = PDEF_PTR(72); + Children[4] = PDEF_PTR(73); + Children[5] = PDEF_PTR(74); + Children[6] = PDEF_PTR(75); + + ParamDefTable[68].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=79, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(80); + Children[1] = PDEF_PTR(81); + Children[2] = PDEF_PTR(82); + Children[3] = PDEF_PTR(83); + Children[4] = PDEF_PTR(84); + + ParamDefTable[79].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=85, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(86); + + ParamDefTable[85].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=86, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(87); + Children[1] = PDEF_PTR(88); + Children[2] = PDEF_PTR(89); + Children[3] = PDEF_PTR(90); + Children[4] = PDEF_PTR(91); + Children[5] = PDEF_PTR(92); + Children[6] = PDEF_PTR(93); + Children[7] = PDEF_PTR(94); + Children[8] = PDEF_PTR(95); + + ParamDefTable[86].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=101, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(102); + + ParamDefTable[101].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=102, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(103); + Children[1] = PDEF_PTR(104); + Children[2] = PDEF_PTR(105); + + ParamDefTable[102].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=106, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(107); + + ParamDefTable[106].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=109, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(110); + + ParamDefTable[109].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=111, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(112); + + ParamDefTable[111].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=117, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(118); + + ParamDefTable[117].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p17::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p17::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p17::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p17::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p17::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p17::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p17::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p18.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p18.cpp old mode 100644 new mode 100755 index a4cf27d..c39be61 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p18.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p18.cpp @@ -1,3717 +1,3717 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p18.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p18NS; - -const char* const DestructibleAssetParameters_0p18Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 121; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 22, 40, 41, 51, 53, 55, 87, 98, 99, 100, 101, 102, 103, 108, 110, - 111, 113, 115, 116, 117, 118, 119, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 10, 11, 12, - 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, 32, 33, 34, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 78, 79, 80, 81, 71, 72, 73, 74, 75, 76, 77, 82, 83, 84, 85, 86, 88, - 89, 90, 91, 92, 93, 94, 95, 96, 97, 104, 105, 106, 107, 109, 112, 114, 120, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(37), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(43), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(44), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(54), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(60), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(61), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(69), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(70), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(71), 19 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(90), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(97), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(102), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(103), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(112), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(113), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(116), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(117), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(118), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(119), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p18::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p18::mBuiltFlagMutex; - -DestructibleAssetParameters_0p18::DestructibleAssetParameters_0p18(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p18FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p18::~DestructibleAssetParameters_0p18() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p18::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p18(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p18::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p18::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p18* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p18::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p18::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p18::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p18::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p18::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[51].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[52].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[100].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[101].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[111].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[112].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[27]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(40); - Children[7] = PDEF_PTR(41); - Children[8] = PDEF_PTR(51); - Children[9] = PDEF_PTR(53); - Children[10] = PDEF_PTR(55); - Children[11] = PDEF_PTR(87); - Children[12] = PDEF_PTR(98); - Children[13] = PDEF_PTR(99); - Children[14] = PDEF_PTR(100); - Children[15] = PDEF_PTR(101); - Children[16] = PDEF_PTR(102); - Children[17] = PDEF_PTR(103); - Children[18] = PDEF_PTR(108); - Children[19] = PDEF_PTR(110); - Children[20] = PDEF_PTR(111); - Children[21] = PDEF_PTR(113); - Children[22] = PDEF_PTR(115); - Children[23] = PDEF_PTR(116); - Children[24] = PDEF_PTR(117); - Children[25] = PDEF_PTR(118); - Children[26] = PDEF_PTR(119); - - ParamDefTable[0].setChildren(Children, 27); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - - ParamDefTable[5].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=22, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(23); - - ParamDefTable[22].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(31); - Children[5] = PDEF_PTR(35); - Children[6] = PDEF_PTR(36); - Children[7] = PDEF_PTR(37); - Children[8] = PDEF_PTR(38); - Children[9] = PDEF_PTR(39); - - ParamDefTable[23].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(28); - Children[1] = PDEF_PTR(29); - Children[2] = PDEF_PTR(30); - - ParamDefTable[27].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - - ParamDefTable[31].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=41, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(42); - - ParamDefTable[41].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=42, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(43); - Children[1] = PDEF_PTR(44); - Children[2] = PDEF_PTR(45); - Children[3] = PDEF_PTR(46); - Children[4] = PDEF_PTR(47); - Children[5] = PDEF_PTR(48); - Children[6] = PDEF_PTR(49); - Children[7] = PDEF_PTR(50); - - ParamDefTable[42].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=51, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=53, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=55, longName="destructibleParameters" - { - static Definition* Children[19]; - Children[0] = PDEF_PTR(56); - Children[1] = PDEF_PTR(57); - Children[2] = PDEF_PTR(58); - Children[3] = PDEF_PTR(59); - Children[4] = PDEF_PTR(60); - Children[5] = PDEF_PTR(61); - Children[6] = PDEF_PTR(62); - Children[7] = PDEF_PTR(63); - Children[8] = PDEF_PTR(64); - Children[9] = PDEF_PTR(65); - Children[10] = PDEF_PTR(66); - Children[11] = PDEF_PTR(67); - Children[12] = PDEF_PTR(68); - Children[13] = PDEF_PTR(69); - Children[14] = PDEF_PTR(70); - Children[15] = PDEF_PTR(78); - Children[16] = PDEF_PTR(79); - Children[17] = PDEF_PTR(80); - Children[18] = PDEF_PTR(81); - - ParamDefTable[55].setChildren(Children, 19); - } - - // SetChildren for: nodeIndex=70, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(71); - Children[1] = PDEF_PTR(72); - Children[2] = PDEF_PTR(73); - Children[3] = PDEF_PTR(74); - Children[4] = PDEF_PTR(75); - Children[5] = PDEF_PTR(76); - Children[6] = PDEF_PTR(77); - - ParamDefTable[70].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(82); - Children[1] = PDEF_PTR(83); - Children[2] = PDEF_PTR(84); - Children[3] = PDEF_PTR(85); - Children[4] = PDEF_PTR(86); - - ParamDefTable[81].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=87, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(88); - - ParamDefTable[87].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=88, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(89); - Children[1] = PDEF_PTR(90); - Children[2] = PDEF_PTR(91); - Children[3] = PDEF_PTR(92); - Children[4] = PDEF_PTR(93); - Children[5] = PDEF_PTR(94); - Children[6] = PDEF_PTR(95); - Children[7] = PDEF_PTR(96); - Children[8] = PDEF_PTR(97); - - ParamDefTable[88].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=103, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(104); - - ParamDefTable[103].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=104, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - - ParamDefTable[104].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=108, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(109); - - ParamDefTable[108].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=111, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(112); - - ParamDefTable[111].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=113, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(114); - - ParamDefTable[113].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=119, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(120); - - ParamDefTable[119].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p18::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p18::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p18::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p18::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p18::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p18::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p18::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p18.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p18NS; + +const char* const DestructibleAssetParameters_0p18Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 121; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 22, 40, 41, 51, 53, 55, 87, 98, 99, 100, 101, 102, 103, 108, 110, + 111, 113, 115, 116, 117, 118, 119, 6, 7, 8, 9, 13, 17, 18, 19, 20, 21, 10, 11, 12, + 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, 32, 33, 34, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 78, 79, 80, 81, 71, 72, 73, 74, 75, 76, 77, 82, 83, 84, 85, 86, 88, + 89, 90, 91, 92, 93, 94, 95, 96, 97, 104, 105, 106, 107, 109, 112, 114, 120, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 27 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(27), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(37), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(43), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(44), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(54), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(60), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(61), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(69), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(70), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(71), 19 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(90), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(97), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(102), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(103), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(112), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(113), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(116), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(117), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(118), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(119), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p18::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p18::mBuiltFlagMutex; + +DestructibleAssetParameters_0p18::DestructibleAssetParameters_0p18(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p18FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p18::~DestructibleAssetParameters_0p18() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p18::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p18(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p18::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p18::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p18* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p18::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p18::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p18::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p18::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p18::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[51].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[52].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[100].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[101].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[111].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[112].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[27]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(40); + Children[7] = PDEF_PTR(41); + Children[8] = PDEF_PTR(51); + Children[9] = PDEF_PTR(53); + Children[10] = PDEF_PTR(55); + Children[11] = PDEF_PTR(87); + Children[12] = PDEF_PTR(98); + Children[13] = PDEF_PTR(99); + Children[14] = PDEF_PTR(100); + Children[15] = PDEF_PTR(101); + Children[16] = PDEF_PTR(102); + Children[17] = PDEF_PTR(103); + Children[18] = PDEF_PTR(108); + Children[19] = PDEF_PTR(110); + Children[20] = PDEF_PTR(111); + Children[21] = PDEF_PTR(113); + Children[22] = PDEF_PTR(115); + Children[23] = PDEF_PTR(116); + Children[24] = PDEF_PTR(117); + Children[25] = PDEF_PTR(118); + Children[26] = PDEF_PTR(119); + + ParamDefTable[0].setChildren(Children, 27); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + + ParamDefTable[5].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=22, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(23); + + ParamDefTable[22].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(31); + Children[5] = PDEF_PTR(35); + Children[6] = PDEF_PTR(36); + Children[7] = PDEF_PTR(37); + Children[8] = PDEF_PTR(38); + Children[9] = PDEF_PTR(39); + + ParamDefTable[23].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(28); + Children[1] = PDEF_PTR(29); + Children[2] = PDEF_PTR(30); + + ParamDefTable[27].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + + ParamDefTable[31].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=41, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(42); + + ParamDefTable[41].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=42, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(43); + Children[1] = PDEF_PTR(44); + Children[2] = PDEF_PTR(45); + Children[3] = PDEF_PTR(46); + Children[4] = PDEF_PTR(47); + Children[5] = PDEF_PTR(48); + Children[6] = PDEF_PTR(49); + Children[7] = PDEF_PTR(50); + + ParamDefTable[42].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=51, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=53, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=55, longName="destructibleParameters" + { + static Definition* Children[19]; + Children[0] = PDEF_PTR(56); + Children[1] = PDEF_PTR(57); + Children[2] = PDEF_PTR(58); + Children[3] = PDEF_PTR(59); + Children[4] = PDEF_PTR(60); + Children[5] = PDEF_PTR(61); + Children[6] = PDEF_PTR(62); + Children[7] = PDEF_PTR(63); + Children[8] = PDEF_PTR(64); + Children[9] = PDEF_PTR(65); + Children[10] = PDEF_PTR(66); + Children[11] = PDEF_PTR(67); + Children[12] = PDEF_PTR(68); + Children[13] = PDEF_PTR(69); + Children[14] = PDEF_PTR(70); + Children[15] = PDEF_PTR(78); + Children[16] = PDEF_PTR(79); + Children[17] = PDEF_PTR(80); + Children[18] = PDEF_PTR(81); + + ParamDefTable[55].setChildren(Children, 19); + } + + // SetChildren for: nodeIndex=70, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(71); + Children[1] = PDEF_PTR(72); + Children[2] = PDEF_PTR(73); + Children[3] = PDEF_PTR(74); + Children[4] = PDEF_PTR(75); + Children[5] = PDEF_PTR(76); + Children[6] = PDEF_PTR(77); + + ParamDefTable[70].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=81, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(82); + Children[1] = PDEF_PTR(83); + Children[2] = PDEF_PTR(84); + Children[3] = PDEF_PTR(85); + Children[4] = PDEF_PTR(86); + + ParamDefTable[81].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=87, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(88); + + ParamDefTable[87].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=88, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(89); + Children[1] = PDEF_PTR(90); + Children[2] = PDEF_PTR(91); + Children[3] = PDEF_PTR(92); + Children[4] = PDEF_PTR(93); + Children[5] = PDEF_PTR(94); + Children[6] = PDEF_PTR(95); + Children[7] = PDEF_PTR(96); + Children[8] = PDEF_PTR(97); + + ParamDefTable[88].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=103, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(104); + + ParamDefTable[103].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=104, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + + ParamDefTable[104].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=108, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(109); + + ParamDefTable[108].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=111, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(112); + + ParamDefTable[111].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=113, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(114); + + ParamDefTable[113].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=119, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(120); + + ParamDefTable[119].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p18::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p18::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p18::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p18::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p18::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p18::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p18::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p19.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p19.cpp old mode 100644 new mode 100755 index abd645c..11b5053 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p19.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p19.cpp @@ -1,4048 +1,4048 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p19.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p19NS; - -const char* const DestructibleAssetParameters_0p19Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 131; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 89, 100, 101, 102, 103, 104, 105, 110, 112, - 113, 115, 117, 118, 119, 120, 121, 123, 125, 127, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, - 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 73, 74, 75, 76, 77, 78, 79, - 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 106, 107, 108, 109, 111, - 114, 116, 122, 124, 126, 128, 129, 130, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 19 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(95), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(102), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(107), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(108), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(117), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(118), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(121), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(122), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(123), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(124), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(125), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(126), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(127), 1 }, // scatterMeshTransforms - { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(128), 2 }, // scatterMeshTransforms[] - { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix - { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector -}; - - -bool DestructibleAssetParameters_0p19::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p19::mBuiltFlagMutex; - -DestructibleAssetParameters_0p19::DestructibleAssetParameters_0p19(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p19FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p19::~DestructibleAssetParameters_0p19() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p19::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p19(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p19::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p19::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p19* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p19::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p19::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p19::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p19::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p19::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[102].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[103].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[113].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[114].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[123].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[124].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="scatterMeshTransforms[].matrix" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("matrix", TYPE_MAT33, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); - HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="scatterMeshTransforms[].vector" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("vector", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); - HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(40); - Children[7] = PDEF_PTR(41); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(55); - Children[10] = PDEF_PTR(57); - Children[11] = PDEF_PTR(89); - Children[12] = PDEF_PTR(100); - Children[13] = PDEF_PTR(101); - Children[14] = PDEF_PTR(102); - Children[15] = PDEF_PTR(103); - Children[16] = PDEF_PTR(104); - Children[17] = PDEF_PTR(105); - Children[18] = PDEF_PTR(110); - Children[19] = PDEF_PTR(112); - Children[20] = PDEF_PTR(113); - Children[21] = PDEF_PTR(115); - Children[22] = PDEF_PTR(117); - Children[23] = PDEF_PTR(118); - Children[24] = PDEF_PTR(119); - Children[25] = PDEF_PTR(120); - Children[26] = PDEF_PTR(121); - Children[27] = PDEF_PTR(123); - Children[28] = PDEF_PTR(125); - Children[29] = PDEF_PTR(127); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - - ParamDefTable[5].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=22, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(23); - - ParamDefTable[22].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(31); - Children[5] = PDEF_PTR(35); - Children[6] = PDEF_PTR(36); - Children[7] = PDEF_PTR(37); - Children[8] = PDEF_PTR(38); - Children[9] = PDEF_PTR(39); - - ParamDefTable[23].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(28); - Children[1] = PDEF_PTR(29); - Children[2] = PDEF_PTR(30); - - ParamDefTable[27].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - - ParamDefTable[31].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=41, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(42); - - ParamDefTable[41].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=42, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(43); - Children[1] = PDEF_PTR(44); - Children[2] = PDEF_PTR(45); - Children[3] = PDEF_PTR(46); - Children[4] = PDEF_PTR(47); - Children[5] = PDEF_PTR(48); - Children[6] = PDEF_PTR(49); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(51); - Children[9] = PDEF_PTR(52); - - ParamDefTable[42].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="destructibleParameters" - { - static Definition* Children[19]; - Children[0] = PDEF_PTR(58); - Children[1] = PDEF_PTR(59); - Children[2] = PDEF_PTR(60); - Children[3] = PDEF_PTR(61); - Children[4] = PDEF_PTR(62); - Children[5] = PDEF_PTR(63); - Children[6] = PDEF_PTR(64); - Children[7] = PDEF_PTR(65); - Children[8] = PDEF_PTR(66); - Children[9] = PDEF_PTR(67); - Children[10] = PDEF_PTR(68); - Children[11] = PDEF_PTR(69); - Children[12] = PDEF_PTR(70); - Children[13] = PDEF_PTR(71); - Children[14] = PDEF_PTR(72); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - - ParamDefTable[57].setChildren(Children, 19); - } - - // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(73); - Children[1] = PDEF_PTR(74); - Children[2] = PDEF_PTR(75); - Children[3] = PDEF_PTR(76); - Children[4] = PDEF_PTR(77); - Children[5] = PDEF_PTR(78); - Children[6] = PDEF_PTR(79); - - ParamDefTable[72].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - - ParamDefTable[83].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=89, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(90); - - ParamDefTable[89].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=90, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(91); - Children[1] = PDEF_PTR(92); - Children[2] = PDEF_PTR(93); - Children[3] = PDEF_PTR(94); - Children[4] = PDEF_PTR(95); - Children[5] = PDEF_PTR(96); - Children[6] = PDEF_PTR(97); - Children[7] = PDEF_PTR(98); - Children[8] = PDEF_PTR(99); - - ParamDefTable[90].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=105, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(106); - - ParamDefTable[105].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=106, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(107); - Children[1] = PDEF_PTR(108); - Children[2] = PDEF_PTR(109); - - ParamDefTable[106].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=110, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(111); - - ParamDefTable[110].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=113, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(114); - - ParamDefTable[113].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=115, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(116); - - ParamDefTable[115].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=121, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(122); - - ParamDefTable[121].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=123, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(124); - - ParamDefTable[123].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=125, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(126); - - ParamDefTable[125].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=127, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(128); - - ParamDefTable[127].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=128, longName="scatterMeshTransforms[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(129); - Children[1] = PDEF_PTR(130); - - ParamDefTable[128].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p19::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p19::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(M34_Type); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p19::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p19::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p19::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p19::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p19::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p19.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p19NS; + +const char* const DestructibleAssetParameters_0p19Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 131; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 89, 100, 101, 102, 103, 104, 105, 110, 112, + 113, 115, 117, 118, 119, 120, 121, 123, 125, 127, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, + 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 73, 74, 75, 76, 77, 78, 79, + 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 106, 107, 108, 109, 111, + 114, 116, 122, 124, 126, 128, 129, 130, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 19 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(95), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(102), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(107), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(108), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(117), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(118), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(121), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(122), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(123), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(124), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(125), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(126), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(127), 1 }, // scatterMeshTransforms + { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(128), 2 }, // scatterMeshTransforms[] + { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix + { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector +}; + + +bool DestructibleAssetParameters_0p19::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p19::mBuiltFlagMutex; + +DestructibleAssetParameters_0p19::DestructibleAssetParameters_0p19(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p19FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p19::~DestructibleAssetParameters_0p19() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p19::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p19(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p19::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p19::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p19* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p19::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p19::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p19::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p19::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p19::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[102].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[103].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[113].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[114].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[123].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[124].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="scatterMeshTransforms[].matrix" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("matrix", TYPE_MAT33, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); + HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="scatterMeshTransforms[].vector" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("vector", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); + HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(40); + Children[7] = PDEF_PTR(41); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(55); + Children[10] = PDEF_PTR(57); + Children[11] = PDEF_PTR(89); + Children[12] = PDEF_PTR(100); + Children[13] = PDEF_PTR(101); + Children[14] = PDEF_PTR(102); + Children[15] = PDEF_PTR(103); + Children[16] = PDEF_PTR(104); + Children[17] = PDEF_PTR(105); + Children[18] = PDEF_PTR(110); + Children[19] = PDEF_PTR(112); + Children[20] = PDEF_PTR(113); + Children[21] = PDEF_PTR(115); + Children[22] = PDEF_PTR(117); + Children[23] = PDEF_PTR(118); + Children[24] = PDEF_PTR(119); + Children[25] = PDEF_PTR(120); + Children[26] = PDEF_PTR(121); + Children[27] = PDEF_PTR(123); + Children[28] = PDEF_PTR(125); + Children[29] = PDEF_PTR(127); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + + ParamDefTable[5].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=22, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(23); + + ParamDefTable[22].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(31); + Children[5] = PDEF_PTR(35); + Children[6] = PDEF_PTR(36); + Children[7] = PDEF_PTR(37); + Children[8] = PDEF_PTR(38); + Children[9] = PDEF_PTR(39); + + ParamDefTable[23].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(28); + Children[1] = PDEF_PTR(29); + Children[2] = PDEF_PTR(30); + + ParamDefTable[27].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + + ParamDefTable[31].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=41, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(42); + + ParamDefTable[41].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=42, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(43); + Children[1] = PDEF_PTR(44); + Children[2] = PDEF_PTR(45); + Children[3] = PDEF_PTR(46); + Children[4] = PDEF_PTR(47); + Children[5] = PDEF_PTR(48); + Children[6] = PDEF_PTR(49); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(51); + Children[9] = PDEF_PTR(52); + + ParamDefTable[42].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="destructibleParameters" + { + static Definition* Children[19]; + Children[0] = PDEF_PTR(58); + Children[1] = PDEF_PTR(59); + Children[2] = PDEF_PTR(60); + Children[3] = PDEF_PTR(61); + Children[4] = PDEF_PTR(62); + Children[5] = PDEF_PTR(63); + Children[6] = PDEF_PTR(64); + Children[7] = PDEF_PTR(65); + Children[8] = PDEF_PTR(66); + Children[9] = PDEF_PTR(67); + Children[10] = PDEF_PTR(68); + Children[11] = PDEF_PTR(69); + Children[12] = PDEF_PTR(70); + Children[13] = PDEF_PTR(71); + Children[14] = PDEF_PTR(72); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + + ParamDefTable[57].setChildren(Children, 19); + } + + // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(73); + Children[1] = PDEF_PTR(74); + Children[2] = PDEF_PTR(75); + Children[3] = PDEF_PTR(76); + Children[4] = PDEF_PTR(77); + Children[5] = PDEF_PTR(78); + Children[6] = PDEF_PTR(79); + + ParamDefTable[72].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + + ParamDefTable[83].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=89, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(90); + + ParamDefTable[89].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=90, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(91); + Children[1] = PDEF_PTR(92); + Children[2] = PDEF_PTR(93); + Children[3] = PDEF_PTR(94); + Children[4] = PDEF_PTR(95); + Children[5] = PDEF_PTR(96); + Children[6] = PDEF_PTR(97); + Children[7] = PDEF_PTR(98); + Children[8] = PDEF_PTR(99); + + ParamDefTable[90].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=105, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(106); + + ParamDefTable[105].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=106, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(107); + Children[1] = PDEF_PTR(108); + Children[2] = PDEF_PTR(109); + + ParamDefTable[106].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=110, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(111); + + ParamDefTable[110].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=113, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(114); + + ParamDefTable[113].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=115, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(116); + + ParamDefTable[115].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=121, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(122); + + ParamDefTable[121].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=123, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(124); + + ParamDefTable[123].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=125, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(126); + + ParamDefTable[125].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=127, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(128); + + ParamDefTable[127].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=128, longName="scatterMeshTransforms[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(129); + Children[1] = PDEF_PTR(130); + + ParamDefTable[128].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p19::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p19::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(M34_Type); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p19::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p19::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p19::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p19::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p19::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p2.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p2.cpp old mode 100644 new mode 100755 index 7ac3f8b..1e83877 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p2.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p2.cpp @@ -1,2588 +1,2588 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p2NS; - -const char* const DestructibleAssetParameters_0p2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 80; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 14, 16, 56, 66, 67, 68, 69, 71, 72, 73, 75, 76, 78, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 46, 47, 48, 49, 50, 38, 39, 40, 41, 42, 43, 44, 45, 51, 52, 53, 54, - 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 70, 74, 77, 79, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 17 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(17), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(18), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(26), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(27), 26 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(53), 8 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(76), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(77), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(78), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] -}; - - -bool DestructibleAssetParameters_0p2::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p2::mBuiltFlagMutex; - -DestructibleAssetParameters_0p2::DestructibleAssetParameters_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p2::~DestructibleAssetParameters_0p2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p2::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); - HintTable[1].init("shortDescription", "The AABB of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.WORLD_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.grbVolumeLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); - HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.grbParticleSpacing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); - HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[71].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[17]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(16); - Children[6] = PDEF_PTR(56); - Children[7] = PDEF_PTR(66); - Children[8] = PDEF_PTR(67); - Children[9] = PDEF_PTR(68); - Children[10] = PDEF_PTR(69); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(75); - Children[15] = PDEF_PTR(76); - Children[16] = PDEF_PTR(78); - - ParamDefTable[0].setChildren(Children, 17); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - - ParamDefTable[5].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="destructibleParameters" - { - static Definition* Children[26]; - Children[0] = PDEF_PTR(17); - Children[1] = PDEF_PTR(18); - Children[2] = PDEF_PTR(19); - Children[3] = PDEF_PTR(20); - Children[4] = PDEF_PTR(21); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(23); - Children[7] = PDEF_PTR(24); - Children[8] = PDEF_PTR(25); - Children[9] = PDEF_PTR(26); - Children[10] = PDEF_PTR(27); - Children[11] = PDEF_PTR(28); - Children[12] = PDEF_PTR(29); - Children[13] = PDEF_PTR(30); - Children[14] = PDEF_PTR(31); - Children[15] = PDEF_PTR(32); - Children[16] = PDEF_PTR(33); - Children[17] = PDEF_PTR(34); - Children[18] = PDEF_PTR(35); - Children[19] = PDEF_PTR(36); - Children[20] = PDEF_PTR(37); - Children[21] = PDEF_PTR(46); - Children[22] = PDEF_PTR(47); - Children[23] = PDEF_PTR(48); - Children[24] = PDEF_PTR(49); - Children[25] = PDEF_PTR(50); - - ParamDefTable[16].setChildren(Children, 26); - } - - // SetChildren for: nodeIndex=37, longName="destructibleParameters.flags" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(38); - Children[1] = PDEF_PTR(39); - Children[2] = PDEF_PTR(40); - Children[3] = PDEF_PTR(41); - Children[4] = PDEF_PTR(42); - Children[5] = PDEF_PTR(43); - Children[6] = PDEF_PTR(44); - Children[7] = PDEF_PTR(45); - - ParamDefTable[37].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - - ParamDefTable[50].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=56, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(57); - - ParamDefTable[56].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(58); - Children[1] = PDEF_PTR(59); - Children[2] = PDEF_PTR(60); - Children[3] = PDEF_PTR(61); - Children[4] = PDEF_PTR(62); - Children[5] = PDEF_PTR(63); - Children[6] = PDEF_PTR(64); - Children[7] = PDEF_PTR(65); - - ParamDefTable[57].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=69, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(70); - - ParamDefTable[69].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=73, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(77); - - ParamDefTable[76].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(79); - - ParamDefTable[78].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p2::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p2::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.formExtendedStructures = uint32_t(0); - destructibleParameters.supportDepth = uint32_t(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.massScaleExponent = float(0.5); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); - destructibleParameters.flags.WORLD_SUPPORT = bool(false); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.grbVolumeLimit = float(0.2); - destructibleParameters.grbParticleSpacing = float(0.1); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p2::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p2::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p2::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p2::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p2NS; + +const char* const DestructibleAssetParameters_0p2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 80; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 14, 16, 56, 66, 67, 68, 69, 71, 72, 73, 75, 76, 78, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 46, 47, 48, 49, 50, 38, 39, 40, 41, 42, 43, 44, 45, 51, 52, 53, 54, + 55, 57, 58, 59, 60, 61, 62, 63, 64, 65, 70, 74, 77, 79, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 17 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(17), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(18), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(26), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(27), 26 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->formExtendedStructures), NULL, 0 }, // destructibleParameters.formExtendedStructures + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportDepth), NULL, 0 }, // destructibleParameters.supportDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->massScaleExponent), NULL, 0 }, // destructibleParameters.massScaleExponent + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(53), 8 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ASSET_DEFINED_SUPPORT), NULL, 0 }, // destructibleParameters.flags.ASSET_DEFINED_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->WORLD_SUPPORT), NULL, 0 }, // destructibleParameters.flags.WORLD_SUPPORT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbVolumeLimit), NULL, 0 }, // destructibleParameters.grbVolumeLimit + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->grbParticleSpacing), NULL, 0 }, // destructibleParameters.grbParticleSpacing + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(76), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(77), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(78), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] +}; + + +bool DestructibleAssetParameters_0p2::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p2::mBuiltFlagMutex; + +DestructibleAssetParameters_0p2::DestructibleAssetParameters_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p2::~DestructibleAssetParameters_0p2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p2::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); + HintTable[1].init("shortDescription", "The AABB of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("formExtendedStructures", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ASSET_DEFINED_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ASSET_DEFINED_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.WORLD_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("WORLD_SUPPORT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.grbVolumeLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("grbVolumeLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used\ninstead of RBs to represent chunks in the physics scene.\n", true); + HintTable[1].init("shortDescription", "The relative volume (chunk volume / whole destructible volume) below which GRBs are used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.grbParticleSpacing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("grbParticleSpacing", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Spacing of particle grid used to represent rigid bodies in GRB\n", true); + HintTable[1].init("shortDescription", "Spacing of particle grid used to represent rigid bodies in GRB", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[71].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[17]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(16); + Children[6] = PDEF_PTR(56); + Children[7] = PDEF_PTR(66); + Children[8] = PDEF_PTR(67); + Children[9] = PDEF_PTR(68); + Children[10] = PDEF_PTR(69); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(75); + Children[15] = PDEF_PTR(76); + Children[16] = PDEF_PTR(78); + + ParamDefTable[0].setChildren(Children, 17); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + + ParamDefTable[5].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="destructibleParameters" + { + static Definition* Children[26]; + Children[0] = PDEF_PTR(17); + Children[1] = PDEF_PTR(18); + Children[2] = PDEF_PTR(19); + Children[3] = PDEF_PTR(20); + Children[4] = PDEF_PTR(21); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(23); + Children[7] = PDEF_PTR(24); + Children[8] = PDEF_PTR(25); + Children[9] = PDEF_PTR(26); + Children[10] = PDEF_PTR(27); + Children[11] = PDEF_PTR(28); + Children[12] = PDEF_PTR(29); + Children[13] = PDEF_PTR(30); + Children[14] = PDEF_PTR(31); + Children[15] = PDEF_PTR(32); + Children[16] = PDEF_PTR(33); + Children[17] = PDEF_PTR(34); + Children[18] = PDEF_PTR(35); + Children[19] = PDEF_PTR(36); + Children[20] = PDEF_PTR(37); + Children[21] = PDEF_PTR(46); + Children[22] = PDEF_PTR(47); + Children[23] = PDEF_PTR(48); + Children[24] = PDEF_PTR(49); + Children[25] = PDEF_PTR(50); + + ParamDefTable[16].setChildren(Children, 26); + } + + // SetChildren for: nodeIndex=37, longName="destructibleParameters.flags" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(38); + Children[1] = PDEF_PTR(39); + Children[2] = PDEF_PTR(40); + Children[3] = PDEF_PTR(41); + Children[4] = PDEF_PTR(42); + Children[5] = PDEF_PTR(43); + Children[6] = PDEF_PTR(44); + Children[7] = PDEF_PTR(45); + + ParamDefTable[37].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + + ParamDefTable[50].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=56, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(57); + + ParamDefTable[56].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(58); + Children[1] = PDEF_PTR(59); + Children[2] = PDEF_PTR(60); + Children[3] = PDEF_PTR(61); + Children[4] = PDEF_PTR(62); + Children[5] = PDEF_PTR(63); + Children[6] = PDEF_PTR(64); + Children[7] = PDEF_PTR(65); + + ParamDefTable[57].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=69, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(70); + + ParamDefTable[69].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=73, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(77); + + ParamDefTable[76].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(79); + + ParamDefTable[78].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p2::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p2::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.formExtendedStructures = uint32_t(0); + destructibleParameters.supportDepth = uint32_t(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.massScaleExponent = float(0.5); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.ASSET_DEFINED_SUPPORT = bool(false); + destructibleParameters.flags.WORLD_SUPPORT = bool(false); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.grbVolumeLimit = float(0.2); + destructibleParameters.grbParticleSpacing = float(0.1); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p2::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p2::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p2::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p2::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p20.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p20.cpp old mode 100644 new mode 100755 index 31a5915..3cc1bfb --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p20.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p20.cpp @@ -1,4561 +1,4561 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p20.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p20NS; - -const char* const DestructibleAssetParameters_0p20Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 150; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 108, 119, 120, 121, 122, 123, 124, 129, 131, - 132, 134, 136, 137, 138, 139, 140, 142, 144, 146, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, - 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 89, 73, 74, 75, 76, 77, 78, - 79, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 101, 96, 97, 98, 99, 100, 102, 103, - 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 125, 126, 127, - 128, 130, 133, 135, 141, 143, 145, 147, 148, 149, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(96), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(103), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(108), 7 }, // destructibleParameters.runtimeFracture - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(115), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(120), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(126), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(127), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(136), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(137), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(140), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(141), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(142), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(143), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(144), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(145), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(146), 1 }, // scatterMeshTransforms - { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(147), 2 }, // scatterMeshTransforms[] - { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix - { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector -}; - - -bool DestructibleAssetParameters_0p20::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p20::mBuiltFlagMutex; - -DestructibleAssetParameters_0p20::DestructibleAssetParameters_0p20(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p20FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p20::~DestructibleAssetParameters_0p20() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p20::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p20(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p20::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p20::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p20* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p20::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p20::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p20::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p20::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p20::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[121].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[122].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[132].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[142].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="scatterMeshTransforms[].matrix" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("matrix", TYPE_MAT33, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); - HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="scatterMeshTransforms[].vector" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("vector", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); - HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(40); - Children[7] = PDEF_PTR(41); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(55); - Children[10] = PDEF_PTR(57); - Children[11] = PDEF_PTR(108); - Children[12] = PDEF_PTR(119); - Children[13] = PDEF_PTR(120); - Children[14] = PDEF_PTR(121); - Children[15] = PDEF_PTR(122); - Children[16] = PDEF_PTR(123); - Children[17] = PDEF_PTR(124); - Children[18] = PDEF_PTR(129); - Children[19] = PDEF_PTR(131); - Children[20] = PDEF_PTR(132); - Children[21] = PDEF_PTR(134); - Children[22] = PDEF_PTR(136); - Children[23] = PDEF_PTR(137); - Children[24] = PDEF_PTR(138); - Children[25] = PDEF_PTR(139); - Children[26] = PDEF_PTR(140); - Children[27] = PDEF_PTR(142); - Children[28] = PDEF_PTR(144); - Children[29] = PDEF_PTR(146); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - - ParamDefTable[5].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=22, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(23); - - ParamDefTable[22].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(31); - Children[5] = PDEF_PTR(35); - Children[6] = PDEF_PTR(36); - Children[7] = PDEF_PTR(37); - Children[8] = PDEF_PTR(38); - Children[9] = PDEF_PTR(39); - - ParamDefTable[23].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(28); - Children[1] = PDEF_PTR(29); - Children[2] = PDEF_PTR(30); - - ParamDefTable[27].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - - ParamDefTable[31].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=41, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(42); - - ParamDefTable[41].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=42, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(43); - Children[1] = PDEF_PTR(44); - Children[2] = PDEF_PTR(45); - Children[3] = PDEF_PTR(46); - Children[4] = PDEF_PTR(47); - Children[5] = PDEF_PTR(48); - Children[6] = PDEF_PTR(49); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(51); - Children[9] = PDEF_PTR(52); - - ParamDefTable[42].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(58); - Children[1] = PDEF_PTR(59); - Children[2] = PDEF_PTR(60); - Children[3] = PDEF_PTR(61); - Children[4] = PDEF_PTR(62); - Children[5] = PDEF_PTR(63); - Children[6] = PDEF_PTR(64); - Children[7] = PDEF_PTR(65); - Children[8] = PDEF_PTR(66); - Children[9] = PDEF_PTR(67); - Children[10] = PDEF_PTR(68); - Children[11] = PDEF_PTR(69); - Children[12] = PDEF_PTR(70); - Children[13] = PDEF_PTR(71); - Children[14] = PDEF_PTR(72); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - Children[19] = PDEF_PTR(89); - - ParamDefTable[57].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(73); - Children[1] = PDEF_PTR(74); - Children[2] = PDEF_PTR(75); - Children[3] = PDEF_PTR(76); - Children[4] = PDEF_PTR(77); - Children[5] = PDEF_PTR(78); - Children[6] = PDEF_PTR(79); - - ParamDefTable[72].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - - ParamDefTable[83].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=89, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(90); - Children[1] = PDEF_PTR(91); - Children[2] = PDEF_PTR(92); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - Children[5] = PDEF_PTR(95); - Children[6] = PDEF_PTR(101); - - ParamDefTable[89].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(97); - Children[2] = PDEF_PTR(98); - Children[3] = PDEF_PTR(99); - Children[4] = PDEF_PTR(100); - - ParamDefTable[95].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(102); - Children[1] = PDEF_PTR(103); - Children[2] = PDEF_PTR(104); - Children[3] = PDEF_PTR(105); - Children[4] = PDEF_PTR(106); - Children[5] = PDEF_PTR(107); - - ParamDefTable[101].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=108, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(109); - - ParamDefTable[108].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=109, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - Children[6] = PDEF_PTR(116); - Children[7] = PDEF_PTR(117); - Children[8] = PDEF_PTR(118); - - ParamDefTable[109].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=124, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(125); - - ParamDefTable[124].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=125, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(126); - Children[1] = PDEF_PTR(127); - Children[2] = PDEF_PTR(128); - - ParamDefTable[125].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=129, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(130); - - ParamDefTable[129].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=132, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(133); - - ParamDefTable[132].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=134, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(135); - - ParamDefTable[134].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=140, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(141); - - ParamDefTable[140].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=142, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(143); - - ParamDefTable[142].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=144, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(145); - - ParamDefTable[144].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=146, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(147); - - ParamDefTable[146].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=147, longName="scatterMeshTransforms[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(148); - Children[1] = PDEF_PTR(149); - - ParamDefTable[147].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p20::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p20::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(M34_Type); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p20::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(30); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.03); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p20::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p20::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p20::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p20::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p20.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p20NS; + +const char* const DestructibleAssetParameters_0p20Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 150; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 108, 119, 120, 121, 122, 123, 124, 129, 131, + 132, 134, 136, 137, 138, 139, 140, 142, 144, 146, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, + 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 89, 73, 74, 75, 76, 77, 78, + 79, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 101, 96, 97, 98, 99, 100, 102, 103, + 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 125, 126, 127, + 128, 130, 133, 135, 141, 143, 145, 147, 148, 149, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(96), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(103), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(108), 7 }, // destructibleParameters.runtimeFracture + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(115), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(120), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(126), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(127), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(136), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(137), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(140), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(141), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(142), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(143), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(144), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(145), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(146), 1 }, // scatterMeshTransforms + { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(147), 2 }, // scatterMeshTransforms[] + { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix + { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector +}; + + +bool DestructibleAssetParameters_0p20::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p20::mBuiltFlagMutex; + +DestructibleAssetParameters_0p20::DestructibleAssetParameters_0p20(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p20FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p20::~DestructibleAssetParameters_0p20() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p20::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p20(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p20::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p20::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p20* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p20::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p20::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p20::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p20::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p20::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[121].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[122].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[132].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[142].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="scatterMeshTransforms[].matrix" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("matrix", TYPE_MAT33, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); + HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="scatterMeshTransforms[].vector" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("vector", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); + HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(40); + Children[7] = PDEF_PTR(41); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(55); + Children[10] = PDEF_PTR(57); + Children[11] = PDEF_PTR(108); + Children[12] = PDEF_PTR(119); + Children[13] = PDEF_PTR(120); + Children[14] = PDEF_PTR(121); + Children[15] = PDEF_PTR(122); + Children[16] = PDEF_PTR(123); + Children[17] = PDEF_PTR(124); + Children[18] = PDEF_PTR(129); + Children[19] = PDEF_PTR(131); + Children[20] = PDEF_PTR(132); + Children[21] = PDEF_PTR(134); + Children[22] = PDEF_PTR(136); + Children[23] = PDEF_PTR(137); + Children[24] = PDEF_PTR(138); + Children[25] = PDEF_PTR(139); + Children[26] = PDEF_PTR(140); + Children[27] = PDEF_PTR(142); + Children[28] = PDEF_PTR(144); + Children[29] = PDEF_PTR(146); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + + ParamDefTable[5].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=22, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(23); + + ParamDefTable[22].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(31); + Children[5] = PDEF_PTR(35); + Children[6] = PDEF_PTR(36); + Children[7] = PDEF_PTR(37); + Children[8] = PDEF_PTR(38); + Children[9] = PDEF_PTR(39); + + ParamDefTable[23].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(28); + Children[1] = PDEF_PTR(29); + Children[2] = PDEF_PTR(30); + + ParamDefTable[27].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + + ParamDefTable[31].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=41, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(42); + + ParamDefTable[41].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=42, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(43); + Children[1] = PDEF_PTR(44); + Children[2] = PDEF_PTR(45); + Children[3] = PDEF_PTR(46); + Children[4] = PDEF_PTR(47); + Children[5] = PDEF_PTR(48); + Children[6] = PDEF_PTR(49); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(51); + Children[9] = PDEF_PTR(52); + + ParamDefTable[42].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(58); + Children[1] = PDEF_PTR(59); + Children[2] = PDEF_PTR(60); + Children[3] = PDEF_PTR(61); + Children[4] = PDEF_PTR(62); + Children[5] = PDEF_PTR(63); + Children[6] = PDEF_PTR(64); + Children[7] = PDEF_PTR(65); + Children[8] = PDEF_PTR(66); + Children[9] = PDEF_PTR(67); + Children[10] = PDEF_PTR(68); + Children[11] = PDEF_PTR(69); + Children[12] = PDEF_PTR(70); + Children[13] = PDEF_PTR(71); + Children[14] = PDEF_PTR(72); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + Children[19] = PDEF_PTR(89); + + ParamDefTable[57].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(73); + Children[1] = PDEF_PTR(74); + Children[2] = PDEF_PTR(75); + Children[3] = PDEF_PTR(76); + Children[4] = PDEF_PTR(77); + Children[5] = PDEF_PTR(78); + Children[6] = PDEF_PTR(79); + + ParamDefTable[72].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + + ParamDefTable[83].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=89, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(90); + Children[1] = PDEF_PTR(91); + Children[2] = PDEF_PTR(92); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + Children[5] = PDEF_PTR(95); + Children[6] = PDEF_PTR(101); + + ParamDefTable[89].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(97); + Children[2] = PDEF_PTR(98); + Children[3] = PDEF_PTR(99); + Children[4] = PDEF_PTR(100); + + ParamDefTable[95].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(102); + Children[1] = PDEF_PTR(103); + Children[2] = PDEF_PTR(104); + Children[3] = PDEF_PTR(105); + Children[4] = PDEF_PTR(106); + Children[5] = PDEF_PTR(107); + + ParamDefTable[101].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=108, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(109); + + ParamDefTable[108].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=109, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + Children[6] = PDEF_PTR(116); + Children[7] = PDEF_PTR(117); + Children[8] = PDEF_PTR(118); + + ParamDefTable[109].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=124, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(125); + + ParamDefTable[124].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=125, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(126); + Children[1] = PDEF_PTR(127); + Children[2] = PDEF_PTR(128); + + ParamDefTable[125].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=129, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(130); + + ParamDefTable[129].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=132, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(133); + + ParamDefTable[132].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=134, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(135); + + ParamDefTable[134].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=140, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(141); + + ParamDefTable[140].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=142, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(143); + + ParamDefTable[142].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=144, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(145); + + ParamDefTable[144].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=146, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(147); + + ParamDefTable[146].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=147, longName="scatterMeshTransforms[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(148); + Children[1] = PDEF_PTR(149); + + ParamDefTable[147].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p20::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p20::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(M34_Type); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p20::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(30); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.03); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p20::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p20::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p20::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p20::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p21.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p21.cpp old mode 100644 new mode 100755 index d9093cd..189f815 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p21.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p21.cpp @@ -1,4587 +1,4587 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p21.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p21NS; - -const char* const DestructibleAssetParameters_0p21Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 151; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 109, 120, 121, 122, 123, 124, 125, 130, 132, - 133, 135, 137, 138, 139, 140, 141, 143, 145, 147, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, - 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 89, 108, 73, 74, 75, 76, - 77, 78, 79, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 101, 96, 97, 98, 99, 100, - 102, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 126, - 127, 128, 129, 131, 134, 136, 142, 144, 146, 148, 149, 150, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(97), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(104), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(109), 7 }, // destructibleParameters.runtimeFracture - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(116), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(121), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(127), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(128), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(137), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(138), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(141), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(142), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(143), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(144), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(145), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(146), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(147), 1 }, // scatterMeshTransforms - { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(148), 2 }, // scatterMeshTransforms[] - { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix - { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector -}; - - -bool DestructibleAssetParameters_0p21::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p21::mBuiltFlagMutex; - -DestructibleAssetParameters_0p21::DestructibleAssetParameters_0p21(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p21FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p21::~DestructibleAssetParameters_0p21() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p21::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p21(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p21::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p21::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p21* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p21::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p21::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p21::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p21::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p21::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[122].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[123].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[134].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="scatterMeshTransforms[].matrix" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("matrix", TYPE_MAT33, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); - HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="scatterMeshTransforms[].vector" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("vector", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); - HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(40); - Children[7] = PDEF_PTR(41); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(55); - Children[10] = PDEF_PTR(57); - Children[11] = PDEF_PTR(109); - Children[12] = PDEF_PTR(120); - Children[13] = PDEF_PTR(121); - Children[14] = PDEF_PTR(122); - Children[15] = PDEF_PTR(123); - Children[16] = PDEF_PTR(124); - Children[17] = PDEF_PTR(125); - Children[18] = PDEF_PTR(130); - Children[19] = PDEF_PTR(132); - Children[20] = PDEF_PTR(133); - Children[21] = PDEF_PTR(135); - Children[22] = PDEF_PTR(137); - Children[23] = PDEF_PTR(138); - Children[24] = PDEF_PTR(139); - Children[25] = PDEF_PTR(140); - Children[26] = PDEF_PTR(141); - Children[27] = PDEF_PTR(143); - Children[28] = PDEF_PTR(145); - Children[29] = PDEF_PTR(147); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - - ParamDefTable[5].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=22, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(23); - - ParamDefTable[22].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(31); - Children[5] = PDEF_PTR(35); - Children[6] = PDEF_PTR(36); - Children[7] = PDEF_PTR(37); - Children[8] = PDEF_PTR(38); - Children[9] = PDEF_PTR(39); - - ParamDefTable[23].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(28); - Children[1] = PDEF_PTR(29); - Children[2] = PDEF_PTR(30); - - ParamDefTable[27].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - - ParamDefTable[31].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=41, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(42); - - ParamDefTable[41].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=42, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(43); - Children[1] = PDEF_PTR(44); - Children[2] = PDEF_PTR(45); - Children[3] = PDEF_PTR(46); - Children[4] = PDEF_PTR(47); - Children[5] = PDEF_PTR(48); - Children[6] = PDEF_PTR(49); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(51); - Children[9] = PDEF_PTR(52); - - ParamDefTable[42].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(58); - Children[1] = PDEF_PTR(59); - Children[2] = PDEF_PTR(60); - Children[3] = PDEF_PTR(61); - Children[4] = PDEF_PTR(62); - Children[5] = PDEF_PTR(63); - Children[6] = PDEF_PTR(64); - Children[7] = PDEF_PTR(65); - Children[8] = PDEF_PTR(66); - Children[9] = PDEF_PTR(67); - Children[10] = PDEF_PTR(68); - Children[11] = PDEF_PTR(69); - Children[12] = PDEF_PTR(70); - Children[13] = PDEF_PTR(71); - Children[14] = PDEF_PTR(72); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - Children[19] = PDEF_PTR(89); - Children[20] = PDEF_PTR(108); - - ParamDefTable[57].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(73); - Children[1] = PDEF_PTR(74); - Children[2] = PDEF_PTR(75); - Children[3] = PDEF_PTR(76); - Children[4] = PDEF_PTR(77); - Children[5] = PDEF_PTR(78); - Children[6] = PDEF_PTR(79); - - ParamDefTable[72].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - - ParamDefTable[83].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=89, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(90); - Children[1] = PDEF_PTR(91); - Children[2] = PDEF_PTR(92); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - Children[5] = PDEF_PTR(95); - Children[6] = PDEF_PTR(101); - - ParamDefTable[89].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(96); - Children[1] = PDEF_PTR(97); - Children[2] = PDEF_PTR(98); - Children[3] = PDEF_PTR(99); - Children[4] = PDEF_PTR(100); - - ParamDefTable[95].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(102); - Children[1] = PDEF_PTR(103); - Children[2] = PDEF_PTR(104); - Children[3] = PDEF_PTR(105); - Children[4] = PDEF_PTR(106); - Children[5] = PDEF_PTR(107); - - ParamDefTable[101].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=109, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(110); - - ParamDefTable[109].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=110, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(111); - Children[1] = PDEF_PTR(112); - Children[2] = PDEF_PTR(113); - Children[3] = PDEF_PTR(114); - Children[4] = PDEF_PTR(115); - Children[5] = PDEF_PTR(116); - Children[6] = PDEF_PTR(117); - Children[7] = PDEF_PTR(118); - Children[8] = PDEF_PTR(119); - - ParamDefTable[110].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=125, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(126); - - ParamDefTable[125].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=126, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(127); - Children[1] = PDEF_PTR(128); - Children[2] = PDEF_PTR(129); - - ParamDefTable[126].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=130, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(131); - - ParamDefTable[130].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=133, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(134); - - ParamDefTable[133].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=135, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(136); - - ParamDefTable[135].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=141, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(142); - - ParamDefTable[141].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=143, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(144); - - ParamDefTable[143].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=145, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(146); - - ParamDefTable[145].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=147, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(148); - - ParamDefTable[147].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=148, longName="scatterMeshTransforms[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(149); - Children[1] = PDEF_PTR(150); - - ParamDefTable[148].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p21::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p21::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(M34_Type); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p21::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p21::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p21::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p21::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p21::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p21.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p21NS; + +const char* const DestructibleAssetParameters_0p21Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 151; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 109, 120, 121, 122, 123, 124, 125, 130, 132, + 133, 135, 137, 138, 139, 140, 141, 143, 145, 147, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, + 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 89, 108, 73, 74, 75, 76, + 77, 78, 79, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 101, 96, 97, 98, 99, 100, + 102, 103, 104, 105, 106, 107, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 126, + 127, 128, 129, 131, 134, 136, 142, 144, 146, 148, 149, 150, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(97), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(104), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(109), 7 }, // destructibleParameters.runtimeFracture + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(116), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(121), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(127), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(128), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(137), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(138), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(141), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(142), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(143), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(144), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(145), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(146), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(147), 1 }, // scatterMeshTransforms + { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(148), 2 }, // scatterMeshTransforms[] + { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix + { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector +}; + + +bool DestructibleAssetParameters_0p21::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p21::mBuiltFlagMutex; + +DestructibleAssetParameters_0p21::DestructibleAssetParameters_0p21(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p21FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p21::~DestructibleAssetParameters_0p21() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p21::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p21(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p21::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p21::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p21* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p21::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p21::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p21::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p21::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p21::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[122].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[123].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[134].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="scatterMeshTransforms[].matrix" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("matrix", TYPE_MAT33, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); + HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="scatterMeshTransforms[].vector" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("vector", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); + HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(40); + Children[7] = PDEF_PTR(41); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(55); + Children[10] = PDEF_PTR(57); + Children[11] = PDEF_PTR(109); + Children[12] = PDEF_PTR(120); + Children[13] = PDEF_PTR(121); + Children[14] = PDEF_PTR(122); + Children[15] = PDEF_PTR(123); + Children[16] = PDEF_PTR(124); + Children[17] = PDEF_PTR(125); + Children[18] = PDEF_PTR(130); + Children[19] = PDEF_PTR(132); + Children[20] = PDEF_PTR(133); + Children[21] = PDEF_PTR(135); + Children[22] = PDEF_PTR(137); + Children[23] = PDEF_PTR(138); + Children[24] = PDEF_PTR(139); + Children[25] = PDEF_PTR(140); + Children[26] = PDEF_PTR(141); + Children[27] = PDEF_PTR(143); + Children[28] = PDEF_PTR(145); + Children[29] = PDEF_PTR(147); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + + ParamDefTable[5].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=22, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(23); + + ParamDefTable[22].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(31); + Children[5] = PDEF_PTR(35); + Children[6] = PDEF_PTR(36); + Children[7] = PDEF_PTR(37); + Children[8] = PDEF_PTR(38); + Children[9] = PDEF_PTR(39); + + ParamDefTable[23].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(28); + Children[1] = PDEF_PTR(29); + Children[2] = PDEF_PTR(30); + + ParamDefTable[27].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + + ParamDefTable[31].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=41, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(42); + + ParamDefTable[41].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=42, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(43); + Children[1] = PDEF_PTR(44); + Children[2] = PDEF_PTR(45); + Children[3] = PDEF_PTR(46); + Children[4] = PDEF_PTR(47); + Children[5] = PDEF_PTR(48); + Children[6] = PDEF_PTR(49); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(51); + Children[9] = PDEF_PTR(52); + + ParamDefTable[42].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(58); + Children[1] = PDEF_PTR(59); + Children[2] = PDEF_PTR(60); + Children[3] = PDEF_PTR(61); + Children[4] = PDEF_PTR(62); + Children[5] = PDEF_PTR(63); + Children[6] = PDEF_PTR(64); + Children[7] = PDEF_PTR(65); + Children[8] = PDEF_PTR(66); + Children[9] = PDEF_PTR(67); + Children[10] = PDEF_PTR(68); + Children[11] = PDEF_PTR(69); + Children[12] = PDEF_PTR(70); + Children[13] = PDEF_PTR(71); + Children[14] = PDEF_PTR(72); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + Children[19] = PDEF_PTR(89); + Children[20] = PDEF_PTR(108); + + ParamDefTable[57].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(73); + Children[1] = PDEF_PTR(74); + Children[2] = PDEF_PTR(75); + Children[3] = PDEF_PTR(76); + Children[4] = PDEF_PTR(77); + Children[5] = PDEF_PTR(78); + Children[6] = PDEF_PTR(79); + + ParamDefTable[72].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + + ParamDefTable[83].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=89, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(90); + Children[1] = PDEF_PTR(91); + Children[2] = PDEF_PTR(92); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + Children[5] = PDEF_PTR(95); + Children[6] = PDEF_PTR(101); + + ParamDefTable[89].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=95, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(96); + Children[1] = PDEF_PTR(97); + Children[2] = PDEF_PTR(98); + Children[3] = PDEF_PTR(99); + Children[4] = PDEF_PTR(100); + + ParamDefTable[95].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=101, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(102); + Children[1] = PDEF_PTR(103); + Children[2] = PDEF_PTR(104); + Children[3] = PDEF_PTR(105); + Children[4] = PDEF_PTR(106); + Children[5] = PDEF_PTR(107); + + ParamDefTable[101].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=109, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(110); + + ParamDefTable[109].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=110, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(111); + Children[1] = PDEF_PTR(112); + Children[2] = PDEF_PTR(113); + Children[3] = PDEF_PTR(114); + Children[4] = PDEF_PTR(115); + Children[5] = PDEF_PTR(116); + Children[6] = PDEF_PTR(117); + Children[7] = PDEF_PTR(118); + Children[8] = PDEF_PTR(119); + + ParamDefTable[110].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=125, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(126); + + ParamDefTable[125].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=126, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(127); + Children[1] = PDEF_PTR(128); + Children[2] = PDEF_PTR(129); + + ParamDefTable[126].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=130, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(131); + + ParamDefTable[130].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=133, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(134); + + ParamDefTable[133].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=135, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(136); + + ParamDefTable[135].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=141, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(142); + + ParamDefTable[141].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=143, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(144); + + ParamDefTable[143].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=145, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(146); + + ParamDefTable[145].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=147, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(148); + + ParamDefTable[147].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=148, longName="scatterMeshTransforms[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(149); + Children[1] = PDEF_PTR(150); + + ParamDefTable[148].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p21::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p21::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(M34_Type); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p21::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p21::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p21::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p21::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p21::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p22.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p22.cpp old mode 100644 new mode 100755 index ab3c7ef..5a86f4a --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p22.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p22.cpp @@ -1,4751 +1,4751 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p22.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p22NS; - -const char* const DestructibleAssetParameters_0p22Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 157; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 115, 126, 127, 128, 129, 130, 131, 136, 138, - 139, 141, 143, 144, 145, 146, 147, 149, 151, 153, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, - 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 89, 114, 73, 74, 75, 76, - 77, 78, 79, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 102, 107, 97, 98, 99, - 100, 101, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, - 121, 122, 123, 124, 125, 132, 133, 134, 135, 137, 140, 142, 148, 150, 152, 154, 155, - 156, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(97), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(104), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(109), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(118), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(123), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(127), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(133), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(134), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(143), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(144), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(147), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(148), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(149), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(150), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(151), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(152), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(153), 1 }, // scatterMeshTransforms - { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(154), 2 }, // scatterMeshTransforms[] - { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix - { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector -}; - - -bool DestructibleAssetParameters_0p22::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p22::mBuiltFlagMutex; - -DestructibleAssetParameters_0p22::DestructibleAssetParameters_0p22(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p22FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p22::~DestructibleAssetParameters_0p22() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p22::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p22(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p22::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p22::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p22* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p22::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p22::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p22::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p22::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p22::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[90].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[128].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[129].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[139].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[140].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[149].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[150].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshTransforms[].matrix" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("matrix", TYPE_MAT33, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); - HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshTransforms[].vector" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("vector", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); - HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(40); - Children[7] = PDEF_PTR(41); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(55); - Children[10] = PDEF_PTR(57); - Children[11] = PDEF_PTR(115); - Children[12] = PDEF_PTR(126); - Children[13] = PDEF_PTR(127); - Children[14] = PDEF_PTR(128); - Children[15] = PDEF_PTR(129); - Children[16] = PDEF_PTR(130); - Children[17] = PDEF_PTR(131); - Children[18] = PDEF_PTR(136); - Children[19] = PDEF_PTR(138); - Children[20] = PDEF_PTR(139); - Children[21] = PDEF_PTR(141); - Children[22] = PDEF_PTR(143); - Children[23] = PDEF_PTR(144); - Children[24] = PDEF_PTR(145); - Children[25] = PDEF_PTR(146); - Children[26] = PDEF_PTR(147); - Children[27] = PDEF_PTR(149); - Children[28] = PDEF_PTR(151); - Children[29] = PDEF_PTR(153); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - - ParamDefTable[5].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=22, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(23); - - ParamDefTable[22].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(24); - Children[1] = PDEF_PTR(25); - Children[2] = PDEF_PTR(26); - Children[3] = PDEF_PTR(27); - Children[4] = PDEF_PTR(31); - Children[5] = PDEF_PTR(35); - Children[6] = PDEF_PTR(36); - Children[7] = PDEF_PTR(37); - Children[8] = PDEF_PTR(38); - Children[9] = PDEF_PTR(39); - - ParamDefTable[23].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(28); - Children[1] = PDEF_PTR(29); - Children[2] = PDEF_PTR(30); - - ParamDefTable[27].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(32); - Children[1] = PDEF_PTR(33); - Children[2] = PDEF_PTR(34); - - ParamDefTable[31].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=41, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(42); - - ParamDefTable[41].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=42, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(43); - Children[1] = PDEF_PTR(44); - Children[2] = PDEF_PTR(45); - Children[3] = PDEF_PTR(46); - Children[4] = PDEF_PTR(47); - Children[5] = PDEF_PTR(48); - Children[6] = PDEF_PTR(49); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(51); - Children[9] = PDEF_PTR(52); - - ParamDefTable[42].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(54); - - ParamDefTable[53].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(58); - Children[1] = PDEF_PTR(59); - Children[2] = PDEF_PTR(60); - Children[3] = PDEF_PTR(61); - Children[4] = PDEF_PTR(62); - Children[5] = PDEF_PTR(63); - Children[6] = PDEF_PTR(64); - Children[7] = PDEF_PTR(65); - Children[8] = PDEF_PTR(66); - Children[9] = PDEF_PTR(67); - Children[10] = PDEF_PTR(68); - Children[11] = PDEF_PTR(69); - Children[12] = PDEF_PTR(70); - Children[13] = PDEF_PTR(71); - Children[14] = PDEF_PTR(72); - Children[15] = PDEF_PTR(80); - Children[16] = PDEF_PTR(81); - Children[17] = PDEF_PTR(82); - Children[18] = PDEF_PTR(83); - Children[19] = PDEF_PTR(89); - Children[20] = PDEF_PTR(114); - - ParamDefTable[57].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(73); - Children[1] = PDEF_PTR(74); - Children[2] = PDEF_PTR(75); - Children[3] = PDEF_PTR(76); - Children[4] = PDEF_PTR(77); - Children[5] = PDEF_PTR(78); - Children[6] = PDEF_PTR(79); - - ParamDefTable[72].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(84); - Children[1] = PDEF_PTR(85); - Children[2] = PDEF_PTR(86); - Children[3] = PDEF_PTR(87); - Children[4] = PDEF_PTR(88); - - ParamDefTable[83].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=89, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(90); - Children[1] = PDEF_PTR(91); - Children[2] = PDEF_PTR(92); - Children[3] = PDEF_PTR(93); - Children[4] = PDEF_PTR(94); - Children[5] = PDEF_PTR(95); - Children[6] = PDEF_PTR(96); - Children[7] = PDEF_PTR(102); - Children[8] = PDEF_PTR(107); - - ParamDefTable[89].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(97); - Children[1] = PDEF_PTR(98); - Children[2] = PDEF_PTR(99); - Children[3] = PDEF_PTR(100); - Children[4] = PDEF_PTR(101); - - ParamDefTable[96].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=102, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(103); - Children[1] = PDEF_PTR(104); - Children[2] = PDEF_PTR(105); - Children[3] = PDEF_PTR(106); - - ParamDefTable[102].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(108); - Children[1] = PDEF_PTR(109); - Children[2] = PDEF_PTR(110); - Children[3] = PDEF_PTR(111); - Children[4] = PDEF_PTR(112); - Children[5] = PDEF_PTR(113); - - ParamDefTable[107].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=115, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(116); - - ParamDefTable[115].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=116, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(117); - Children[1] = PDEF_PTR(118); - Children[2] = PDEF_PTR(119); - Children[3] = PDEF_PTR(120); - Children[4] = PDEF_PTR(121); - Children[5] = PDEF_PTR(122); - Children[6] = PDEF_PTR(123); - Children[7] = PDEF_PTR(124); - Children[8] = PDEF_PTR(125); - - ParamDefTable[116].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=131, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(132); - - ParamDefTable[131].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=132, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(133); - Children[1] = PDEF_PTR(134); - Children[2] = PDEF_PTR(135); - - ParamDefTable[132].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=136, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(137); - - ParamDefTable[136].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=139, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(140); - - ParamDefTable[139].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=141, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(142); - - ParamDefTable[141].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=147, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(148); - - ParamDefTable[147].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=149, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(150); - - ParamDefTable[149].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=151, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(152); - - ParamDefTable[151].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=153, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(154); - - ParamDefTable[153].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=154, longName="scatterMeshTransforms[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(155); - Children[1] = PDEF_PTR(156); - - ParamDefTable[154].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p22::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p22::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(M34_Type); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p22::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p22::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p22::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p22::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p22::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p22.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p22NS; + +const char* const DestructibleAssetParameters_0p22Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 157; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 22, 40, 41, 53, 55, 57, 115, 126, 127, 128, 129, 130, 131, 136, 138, + 139, 141, 143, 144, 145, 146, 147, 149, 151, 153, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 10, 11, 12, 14, 15, 16, 23, 24, 25, 26, 27, 31, 35, 36, 37, 38, 39, 28, 29, 30, + 32, 33, 34, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 54, 56, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 80, 81, 82, 83, 89, 114, 73, 74, 75, 76, + 77, 78, 79, 84, 85, 86, 87, 88, 90, 91, 92, 93, 94, 95, 96, 102, 107, 97, 98, 99, + 100, 101, 103, 104, 105, 106, 108, 109, 110, 111, 112, 113, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 132, 133, 134, 135, 137, 140, 142, 148, 150, 152, 154, 155, + 156, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 10 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(40), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(43), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(46), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(47), 10 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(57), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(60), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(63), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(64), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(74), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(75), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(76), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(97), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(104), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(109), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(118), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(123), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(127), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(133), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(134), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(143), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(144), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(147), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(148), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(149), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(150), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(151), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(152), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(153), 1 }, // scatterMeshTransforms + { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(154), 2 }, // scatterMeshTransforms[] + { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix + { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector +}; + + +bool DestructibleAssetParameters_0p22::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p22::mBuiltFlagMutex; + +DestructibleAssetParameters_0p22::DestructibleAssetParameters_0p22(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p22FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p22::~DestructibleAssetParameters_0p22() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p22::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p22(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p22::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p22::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p22* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p22::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p22::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p22::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p22::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p22::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[53].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[54].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[90].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[128].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[129].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[139].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[140].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[149].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[150].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshTransforms[].matrix" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("matrix", TYPE_MAT33, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); + HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshTransforms[].vector" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("vector", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); + HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(40); + Children[7] = PDEF_PTR(41); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(55); + Children[10] = PDEF_PTR(57); + Children[11] = PDEF_PTR(115); + Children[12] = PDEF_PTR(126); + Children[13] = PDEF_PTR(127); + Children[14] = PDEF_PTR(128); + Children[15] = PDEF_PTR(129); + Children[16] = PDEF_PTR(130); + Children[17] = PDEF_PTR(131); + Children[18] = PDEF_PTR(136); + Children[19] = PDEF_PTR(138); + Children[20] = PDEF_PTR(139); + Children[21] = PDEF_PTR(141); + Children[22] = PDEF_PTR(143); + Children[23] = PDEF_PTR(144); + Children[24] = PDEF_PTR(145); + Children[25] = PDEF_PTR(146); + Children[26] = PDEF_PTR(147); + Children[27] = PDEF_PTR(149); + Children[28] = PDEF_PTR(151); + Children[29] = PDEF_PTR(153); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + + ParamDefTable[5].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=22, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(23); + + ParamDefTable[22].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(24); + Children[1] = PDEF_PTR(25); + Children[2] = PDEF_PTR(26); + Children[3] = PDEF_PTR(27); + Children[4] = PDEF_PTR(31); + Children[5] = PDEF_PTR(35); + Children[6] = PDEF_PTR(36); + Children[7] = PDEF_PTR(37); + Children[8] = PDEF_PTR(38); + Children[9] = PDEF_PTR(39); + + ParamDefTable[23].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=27, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(28); + Children[1] = PDEF_PTR(29); + Children[2] = PDEF_PTR(30); + + ParamDefTable[27].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=31, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(32); + Children[1] = PDEF_PTR(33); + Children[2] = PDEF_PTR(34); + + ParamDefTable[31].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=41, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(42); + + ParamDefTable[41].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=42, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(43); + Children[1] = PDEF_PTR(44); + Children[2] = PDEF_PTR(45); + Children[3] = PDEF_PTR(46); + Children[4] = PDEF_PTR(47); + Children[5] = PDEF_PTR(48); + Children[6] = PDEF_PTR(49); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(51); + Children[9] = PDEF_PTR(52); + + ParamDefTable[42].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=53, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(54); + + ParamDefTable[53].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(58); + Children[1] = PDEF_PTR(59); + Children[2] = PDEF_PTR(60); + Children[3] = PDEF_PTR(61); + Children[4] = PDEF_PTR(62); + Children[5] = PDEF_PTR(63); + Children[6] = PDEF_PTR(64); + Children[7] = PDEF_PTR(65); + Children[8] = PDEF_PTR(66); + Children[9] = PDEF_PTR(67); + Children[10] = PDEF_PTR(68); + Children[11] = PDEF_PTR(69); + Children[12] = PDEF_PTR(70); + Children[13] = PDEF_PTR(71); + Children[14] = PDEF_PTR(72); + Children[15] = PDEF_PTR(80); + Children[16] = PDEF_PTR(81); + Children[17] = PDEF_PTR(82); + Children[18] = PDEF_PTR(83); + Children[19] = PDEF_PTR(89); + Children[20] = PDEF_PTR(114); + + ParamDefTable[57].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=72, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(73); + Children[1] = PDEF_PTR(74); + Children[2] = PDEF_PTR(75); + Children[3] = PDEF_PTR(76); + Children[4] = PDEF_PTR(77); + Children[5] = PDEF_PTR(78); + Children[6] = PDEF_PTR(79); + + ParamDefTable[72].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=83, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(84); + Children[1] = PDEF_PTR(85); + Children[2] = PDEF_PTR(86); + Children[3] = PDEF_PTR(87); + Children[4] = PDEF_PTR(88); + + ParamDefTable[83].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=89, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(90); + Children[1] = PDEF_PTR(91); + Children[2] = PDEF_PTR(92); + Children[3] = PDEF_PTR(93); + Children[4] = PDEF_PTR(94); + Children[5] = PDEF_PTR(95); + Children[6] = PDEF_PTR(96); + Children[7] = PDEF_PTR(102); + Children[8] = PDEF_PTR(107); + + ParamDefTable[89].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=96, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(97); + Children[1] = PDEF_PTR(98); + Children[2] = PDEF_PTR(99); + Children[3] = PDEF_PTR(100); + Children[4] = PDEF_PTR(101); + + ParamDefTable[96].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=102, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(103); + Children[1] = PDEF_PTR(104); + Children[2] = PDEF_PTR(105); + Children[3] = PDEF_PTR(106); + + ParamDefTable[102].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=107, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(108); + Children[1] = PDEF_PTR(109); + Children[2] = PDEF_PTR(110); + Children[3] = PDEF_PTR(111); + Children[4] = PDEF_PTR(112); + Children[5] = PDEF_PTR(113); + + ParamDefTable[107].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=115, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(116); + + ParamDefTable[115].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=116, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(117); + Children[1] = PDEF_PTR(118); + Children[2] = PDEF_PTR(119); + Children[3] = PDEF_PTR(120); + Children[4] = PDEF_PTR(121); + Children[5] = PDEF_PTR(122); + Children[6] = PDEF_PTR(123); + Children[7] = PDEF_PTR(124); + Children[8] = PDEF_PTR(125); + + ParamDefTable[116].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=131, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(132); + + ParamDefTable[131].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=132, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(133); + Children[1] = PDEF_PTR(134); + Children[2] = PDEF_PTR(135); + + ParamDefTable[132].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=136, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(137); + + ParamDefTable[136].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=139, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(140); + + ParamDefTable[139].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=141, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(142); + + ParamDefTable[141].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=147, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(148); + + ParamDefTable[147].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=149, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(150); + + ParamDefTable[149].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=151, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(152); + + ParamDefTable[151].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=153, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(154); + + ParamDefTable[153].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=154, longName="scatterMeshTransforms[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(155); + Children[1] = PDEF_PTR(156); + + ParamDefTable[154].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p22::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p22::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(M34_Type); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p22::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p22::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p22::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p22::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p22::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p23.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p23.cpp old mode 100644 new mode 100755 index 5f28a53..8f402d1 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p23.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p23.cpp @@ -1,4802 +1,4802 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p23.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p23NS; - -const char* const DestructibleAssetParameters_0p23Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 159; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 117, 128, 129, 130, 131, 132, 133, 138, 140, - 141, 143, 145, 146, 147, 148, 149, 151, 153, 155, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, - 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 75, 76, - 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 104, 109, 99, - 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 118, 119, 120, - 121, 122, 123, 124, 125, 126, 127, 134, 135, 136, 137, 139, 142, 144, 150, 152, 154, - 156, 157, 158, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(99), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(106), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(111), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(120), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(125), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(129), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(135), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(136), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(145), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(146), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(149), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(150), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(151), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(152), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(153), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(154), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(155), 1 }, // scatterMeshTransforms - { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(156), 2 }, // scatterMeshTransforms[] - { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix - { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector -}; - - -bool DestructibleAssetParameters_0p23::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p23::mBuiltFlagMutex; - -DestructibleAssetParameters_0p23::DestructibleAssetParameters_0p23(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p23FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p23::~DestructibleAssetParameters_0p23() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p23::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p23(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p23::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p23::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p23* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p23::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p23::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p23::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p23::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p23::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[130].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[131].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[141].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[142].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[151].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[152].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshTransforms[].matrix" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("matrix", TYPE_MAT33, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); - HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms[].vector" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("vector", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); - HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(42); - Children[7] = PDEF_PTR(43); - Children[8] = PDEF_PTR(55); - Children[9] = PDEF_PTR(57); - Children[10] = PDEF_PTR(59); - Children[11] = PDEF_PTR(117); - Children[12] = PDEF_PTR(128); - Children[13] = PDEF_PTR(129); - Children[14] = PDEF_PTR(130); - Children[15] = PDEF_PTR(131); - Children[16] = PDEF_PTR(132); - Children[17] = PDEF_PTR(133); - Children[18] = PDEF_PTR(138); - Children[19] = PDEF_PTR(140); - Children[20] = PDEF_PTR(141); - Children[21] = PDEF_PTR(143); - Children[22] = PDEF_PTR(145); - Children[23] = PDEF_PTR(146); - Children[24] = PDEF_PTR(147); - Children[25] = PDEF_PTR(148); - Children[26] = PDEF_PTR(149); - Children[27] = PDEF_PTR(151); - Children[28] = PDEF_PTR(153); - Children[29] = PDEF_PTR(155); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - - ParamDefTable[5].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(24); - - ParamDefTable[23].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(32); - Children[5] = PDEF_PTR(36); - Children[6] = PDEF_PTR(37); - Children[7] = PDEF_PTR(38); - Children[8] = PDEF_PTR(39); - Children[9] = PDEF_PTR(40); - Children[10] = PDEF_PTR(41); - - ParamDefTable[24].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(29); - Children[1] = PDEF_PTR(30); - Children[2] = PDEF_PTR(31); - - ParamDefTable[28].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - - ParamDefTable[32].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=43, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(44); - - ParamDefTable[43].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=44, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - Children[5] = PDEF_PTR(50); - Children[6] = PDEF_PTR(51); - Children[7] = PDEF_PTR(52); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(54); - - ParamDefTable[44].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(58); - - ParamDefTable[57].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=59, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - Children[8] = PDEF_PTR(68); - Children[9] = PDEF_PTR(69); - Children[10] = PDEF_PTR(70); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(82); - Children[16] = PDEF_PTR(83); - Children[17] = PDEF_PTR(84); - Children[18] = PDEF_PTR(85); - Children[19] = PDEF_PTR(91); - Children[20] = PDEF_PTR(116); - - ParamDefTable[59].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - Children[6] = PDEF_PTR(81); - - ParamDefTable[74].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - - ParamDefTable[85].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(92); - Children[1] = PDEF_PTR(93); - Children[2] = PDEF_PTR(94); - Children[3] = PDEF_PTR(95); - Children[4] = PDEF_PTR(96); - Children[5] = PDEF_PTR(97); - Children[6] = PDEF_PTR(98); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(109); - - ParamDefTable[91].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - - ParamDefTable[98].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - - ParamDefTable[104].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - - ParamDefTable[109].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=117, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(118); - - ParamDefTable[117].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=118, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(119); - Children[1] = PDEF_PTR(120); - Children[2] = PDEF_PTR(121); - Children[3] = PDEF_PTR(122); - Children[4] = PDEF_PTR(123); - Children[5] = PDEF_PTR(124); - Children[6] = PDEF_PTR(125); - Children[7] = PDEF_PTR(126); - Children[8] = PDEF_PTR(127); - - ParamDefTable[118].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=133, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(134); - - ParamDefTable[133].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=134, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(135); - Children[1] = PDEF_PTR(136); - Children[2] = PDEF_PTR(137); - - ParamDefTable[134].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=138, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(139); - - ParamDefTable[138].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=141, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(142); - - ParamDefTable[141].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=143, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(144); - - ParamDefTable[143].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=149, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(150); - - ParamDefTable[149].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=151, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(152); - - ParamDefTable[151].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=153, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(154); - - ParamDefTable[153].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=155, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(156); - - ParamDefTable[155].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=156, longName="scatterMeshTransforms[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(157); - Children[1] = PDEF_PTR(158); - - ParamDefTable[156].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p23::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p23::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(M34_Type); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p23::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p23::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p23::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p23::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p23::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p23.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p23NS; + +const char* const DestructibleAssetParameters_0p23Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 159; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 117, 128, 129, 130, 131, 132, 133, 138, 140, + 141, 143, 145, 146, 147, 148, 149, 151, 153, 155, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, + 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 75, 76, + 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 104, 109, 99, + 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 134, 135, 136, 137, 139, 142, 144, 150, 152, 154, + 156, 157, 158, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(99), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(106), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(111), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(120), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(125), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(129), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(135), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(136), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(145), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(146), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(149), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(150), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(151), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(152), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(153), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(154), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(155), 1 }, // scatterMeshTransforms + { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(156), 2 }, // scatterMeshTransforms[] + { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix + { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector +}; + + +bool DestructibleAssetParameters_0p23::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p23::mBuiltFlagMutex; + +DestructibleAssetParameters_0p23::DestructibleAssetParameters_0p23(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p23FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p23::~DestructibleAssetParameters_0p23() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p23::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p23(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p23::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p23::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p23* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p23::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p23::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p23::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p23::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p23::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[130].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[131].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[141].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[142].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[151].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[152].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshTransforms[].matrix" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("matrix", TYPE_MAT33, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); + HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms[].vector" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("vector", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); + HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(42); + Children[7] = PDEF_PTR(43); + Children[8] = PDEF_PTR(55); + Children[9] = PDEF_PTR(57); + Children[10] = PDEF_PTR(59); + Children[11] = PDEF_PTR(117); + Children[12] = PDEF_PTR(128); + Children[13] = PDEF_PTR(129); + Children[14] = PDEF_PTR(130); + Children[15] = PDEF_PTR(131); + Children[16] = PDEF_PTR(132); + Children[17] = PDEF_PTR(133); + Children[18] = PDEF_PTR(138); + Children[19] = PDEF_PTR(140); + Children[20] = PDEF_PTR(141); + Children[21] = PDEF_PTR(143); + Children[22] = PDEF_PTR(145); + Children[23] = PDEF_PTR(146); + Children[24] = PDEF_PTR(147); + Children[25] = PDEF_PTR(148); + Children[26] = PDEF_PTR(149); + Children[27] = PDEF_PTR(151); + Children[28] = PDEF_PTR(153); + Children[29] = PDEF_PTR(155); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + + ParamDefTable[5].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(24); + + ParamDefTable[23].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(32); + Children[5] = PDEF_PTR(36); + Children[6] = PDEF_PTR(37); + Children[7] = PDEF_PTR(38); + Children[8] = PDEF_PTR(39); + Children[9] = PDEF_PTR(40); + Children[10] = PDEF_PTR(41); + + ParamDefTable[24].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(29); + Children[1] = PDEF_PTR(30); + Children[2] = PDEF_PTR(31); + + ParamDefTable[28].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + + ParamDefTable[32].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=43, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(44); + + ParamDefTable[43].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=44, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + Children[5] = PDEF_PTR(50); + Children[6] = PDEF_PTR(51); + Children[7] = PDEF_PTR(52); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(54); + + ParamDefTable[44].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(58); + + ParamDefTable[57].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=59, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + Children[8] = PDEF_PTR(68); + Children[9] = PDEF_PTR(69); + Children[10] = PDEF_PTR(70); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(82); + Children[16] = PDEF_PTR(83); + Children[17] = PDEF_PTR(84); + Children[18] = PDEF_PTR(85); + Children[19] = PDEF_PTR(91); + Children[20] = PDEF_PTR(116); + + ParamDefTable[59].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + Children[6] = PDEF_PTR(81); + + ParamDefTable[74].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + + ParamDefTable[85].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(92); + Children[1] = PDEF_PTR(93); + Children[2] = PDEF_PTR(94); + Children[3] = PDEF_PTR(95); + Children[4] = PDEF_PTR(96); + Children[5] = PDEF_PTR(97); + Children[6] = PDEF_PTR(98); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(109); + + ParamDefTable[91].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + + ParamDefTable[98].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + + ParamDefTable[104].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + + ParamDefTable[109].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=117, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(118); + + ParamDefTable[117].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=118, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(119); + Children[1] = PDEF_PTR(120); + Children[2] = PDEF_PTR(121); + Children[3] = PDEF_PTR(122); + Children[4] = PDEF_PTR(123); + Children[5] = PDEF_PTR(124); + Children[6] = PDEF_PTR(125); + Children[7] = PDEF_PTR(126); + Children[8] = PDEF_PTR(127); + + ParamDefTable[118].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=133, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(134); + + ParamDefTable[133].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=134, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(135); + Children[1] = PDEF_PTR(136); + Children[2] = PDEF_PTR(137); + + ParamDefTable[134].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=138, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(139); + + ParamDefTable[138].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=141, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(142); + + ParamDefTable[141].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=143, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(144); + + ParamDefTable[143].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=149, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(150); + + ParamDefTable[149].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=151, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(152); + + ParamDefTable[151].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=153, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(154); + + ParamDefTable[153].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=155, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(156); + + ParamDefTable[155].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=156, longName="scatterMeshTransforms[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(157); + Children[1] = PDEF_PTR(158); + + ParamDefTable[156].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p23::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p23::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(M34_Type); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p23::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p23::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p23::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p23::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p23::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p24.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p24.cpp old mode 100644 new mode 100755 index 850710e..9be7df8 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p24.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p24.cpp @@ -1,4860 +1,4860 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p24.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p24NS; - -const char* const DestructibleAssetParameters_0p24Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 161; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 119, 130, 131, 132, 133, 134, 135, 140, 142, - 143, 145, 147, 148, 149, 150, 151, 153, 155, 157, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, - 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, - 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 104, - 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 136, 137, 138, 139, 141, 144, 146, 152, - 154, 156, 158, 159, 160, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(101), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(108), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(113), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(122), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(127), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(131), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(137), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(138), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(147), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(148), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(151), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(152), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(153), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(154), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(155), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(156), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(157), 1 }, // scatterMeshTransforms - { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(158), 2 }, // scatterMeshTransforms[] - { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix - { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector -}; - - -bool DestructibleAssetParameters_0p24::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p24::mBuiltFlagMutex; - -DestructibleAssetParameters_0p24::DestructibleAssetParameters_0p24(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p24FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p24::~DestructibleAssetParameters_0p24() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p24::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p24(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p24::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p24::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p24* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p24::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p24::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p24::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p24::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p24::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[132].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[153].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="scatterMeshTransforms[].matrix" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("matrix", TYPE_MAT33, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); - HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=160, longName="scatterMeshTransforms[].vector" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; - ParamDef->init("vector", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); - HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); - ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(42); - Children[7] = PDEF_PTR(43); - Children[8] = PDEF_PTR(55); - Children[9] = PDEF_PTR(57); - Children[10] = PDEF_PTR(59); - Children[11] = PDEF_PTR(119); - Children[12] = PDEF_PTR(130); - Children[13] = PDEF_PTR(131); - Children[14] = PDEF_PTR(132); - Children[15] = PDEF_PTR(133); - Children[16] = PDEF_PTR(134); - Children[17] = PDEF_PTR(135); - Children[18] = PDEF_PTR(140); - Children[19] = PDEF_PTR(142); - Children[20] = PDEF_PTR(143); - Children[21] = PDEF_PTR(145); - Children[22] = PDEF_PTR(147); - Children[23] = PDEF_PTR(148); - Children[24] = PDEF_PTR(149); - Children[25] = PDEF_PTR(150); - Children[26] = PDEF_PTR(151); - Children[27] = PDEF_PTR(153); - Children[28] = PDEF_PTR(155); - Children[29] = PDEF_PTR(157); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - - ParamDefTable[5].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(24); - - ParamDefTable[23].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(32); - Children[5] = PDEF_PTR(36); - Children[6] = PDEF_PTR(37); - Children[7] = PDEF_PTR(38); - Children[8] = PDEF_PTR(39); - Children[9] = PDEF_PTR(40); - Children[10] = PDEF_PTR(41); - - ParamDefTable[24].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(29); - Children[1] = PDEF_PTR(30); - Children[2] = PDEF_PTR(31); - - ParamDefTable[28].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - - ParamDefTable[32].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=43, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(44); - - ParamDefTable[43].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=44, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - Children[5] = PDEF_PTR(50); - Children[6] = PDEF_PTR(51); - Children[7] = PDEF_PTR(52); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(54); - - ParamDefTable[44].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(58); - - ParamDefTable[57].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=59, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - Children[8] = PDEF_PTR(68); - Children[9] = PDEF_PTR(69); - Children[10] = PDEF_PTR(70); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(82); - Children[16] = PDEF_PTR(83); - Children[17] = PDEF_PTR(84); - Children[18] = PDEF_PTR(85); - Children[19] = PDEF_PTR(91); - Children[20] = PDEF_PTR(116); - Children[21] = PDEF_PTR(117); - Children[22] = PDEF_PTR(118); - - ParamDefTable[59].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - Children[6] = PDEF_PTR(81); - - ParamDefTable[74].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - - ParamDefTable[85].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(92); - Children[1] = PDEF_PTR(93); - Children[2] = PDEF_PTR(94); - Children[3] = PDEF_PTR(95); - Children[4] = PDEF_PTR(96); - Children[5] = PDEF_PTR(97); - Children[6] = PDEF_PTR(98); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(109); - - ParamDefTable[91].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - - ParamDefTable[98].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - - ParamDefTable[104].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - - ParamDefTable[109].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=119, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(120); - - ParamDefTable[119].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=120, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(121); - Children[1] = PDEF_PTR(122); - Children[2] = PDEF_PTR(123); - Children[3] = PDEF_PTR(124); - Children[4] = PDEF_PTR(125); - Children[5] = PDEF_PTR(126); - Children[6] = PDEF_PTR(127); - Children[7] = PDEF_PTR(128); - Children[8] = PDEF_PTR(129); - - ParamDefTable[120].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=135, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(136); - - ParamDefTable[135].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(137); - Children[1] = PDEF_PTR(138); - Children[2] = PDEF_PTR(139); - - ParamDefTable[136].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=140, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(141); - - ParamDefTable[140].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=143, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(144); - - ParamDefTable[143].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=145, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(146); - - ParamDefTable[145].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=151, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(152); - - ParamDefTable[151].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=153, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(154); - - ParamDefTable[153].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=155, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(156); - - ParamDefTable[155].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=157, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(158); - - ParamDefTable[157].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=158, longName="scatterMeshTransforms[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(159); - Children[1] = PDEF_PTR(160); - - ParamDefTable[158].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p24::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p24::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(M34_Type); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p24::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p24::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p24::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p24::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p24::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p24.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p24NS; + +const char* const DestructibleAssetParameters_0p24Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 161; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 119, 130, 131, 132, 133, 134, 135, 140, 142, + 143, 145, 147, 148, 149, 150, 151, 153, 155, 157, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, + 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, + 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 104, + 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 136, 137, 138, 139, 141, 144, 146, 152, + 154, 156, 158, 159, 160, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(101), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(108), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(113), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(122), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(127), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(131), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(137), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(138), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(147), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(148), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(151), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(152), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(153), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(154), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(155), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(156), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(157), 1 }, // scatterMeshTransforms + { TYPE_STRUCT, false, 1 * sizeof(M34_Type), CHILDREN(158), 2 }, // scatterMeshTransforms[] + { TYPE_MAT33, false, (size_t)(&((M34_Type*)0)->matrix), NULL, 0 }, // scatterMeshTransforms[].matrix + { TYPE_VEC3, false, (size_t)(&((M34_Type*)0)->vector), NULL, 0 }, // scatterMeshTransforms[].vector +}; + + +bool DestructibleAssetParameters_0p24::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p24::mBuiltFlagMutex; + +DestructibleAssetParameters_0p24::DestructibleAssetParameters_0p24(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p24FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p24::~DestructibleAssetParameters_0p24() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p24::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p24(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p24::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p24::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p24* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p24::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p24::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p24::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p24::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p24::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\n or NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with NxModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[132].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[153].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("scatterMeshTransforms", TYPE_STRUCT, "M34", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="scatterMeshTransforms[].matrix" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("matrix", TYPE_MAT33, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation.", true); + HintTable[1].init("shortDescription", "The matrix part of the transform, containing the (possibly scaled axis-unaligned) rotation", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=160, longName="scatterMeshTransforms[].vector" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[160]; + ParamDef->init("vector", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vector part of the transform, containing a translation.", true); + HintTable[1].init("shortDescription", "The vector part of the transform, containing a translation", true); + ParamDefTable[160].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(42); + Children[7] = PDEF_PTR(43); + Children[8] = PDEF_PTR(55); + Children[9] = PDEF_PTR(57); + Children[10] = PDEF_PTR(59); + Children[11] = PDEF_PTR(119); + Children[12] = PDEF_PTR(130); + Children[13] = PDEF_PTR(131); + Children[14] = PDEF_PTR(132); + Children[15] = PDEF_PTR(133); + Children[16] = PDEF_PTR(134); + Children[17] = PDEF_PTR(135); + Children[18] = PDEF_PTR(140); + Children[19] = PDEF_PTR(142); + Children[20] = PDEF_PTR(143); + Children[21] = PDEF_PTR(145); + Children[22] = PDEF_PTR(147); + Children[23] = PDEF_PTR(148); + Children[24] = PDEF_PTR(149); + Children[25] = PDEF_PTR(150); + Children[26] = PDEF_PTR(151); + Children[27] = PDEF_PTR(153); + Children[28] = PDEF_PTR(155); + Children[29] = PDEF_PTR(157); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + + ParamDefTable[5].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(24); + + ParamDefTable[23].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(32); + Children[5] = PDEF_PTR(36); + Children[6] = PDEF_PTR(37); + Children[7] = PDEF_PTR(38); + Children[8] = PDEF_PTR(39); + Children[9] = PDEF_PTR(40); + Children[10] = PDEF_PTR(41); + + ParamDefTable[24].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(29); + Children[1] = PDEF_PTR(30); + Children[2] = PDEF_PTR(31); + + ParamDefTable[28].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + + ParamDefTable[32].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=43, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(44); + + ParamDefTable[43].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=44, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + Children[5] = PDEF_PTR(50); + Children[6] = PDEF_PTR(51); + Children[7] = PDEF_PTR(52); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(54); + + ParamDefTable[44].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(58); + + ParamDefTable[57].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=59, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + Children[8] = PDEF_PTR(68); + Children[9] = PDEF_PTR(69); + Children[10] = PDEF_PTR(70); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(82); + Children[16] = PDEF_PTR(83); + Children[17] = PDEF_PTR(84); + Children[18] = PDEF_PTR(85); + Children[19] = PDEF_PTR(91); + Children[20] = PDEF_PTR(116); + Children[21] = PDEF_PTR(117); + Children[22] = PDEF_PTR(118); + + ParamDefTable[59].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + Children[6] = PDEF_PTR(81); + + ParamDefTable[74].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + + ParamDefTable[85].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(92); + Children[1] = PDEF_PTR(93); + Children[2] = PDEF_PTR(94); + Children[3] = PDEF_PTR(95); + Children[4] = PDEF_PTR(96); + Children[5] = PDEF_PTR(97); + Children[6] = PDEF_PTR(98); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(109); + + ParamDefTable[91].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + + ParamDefTable[98].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + + ParamDefTable[104].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + + ParamDefTable[109].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=119, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(120); + + ParamDefTable[119].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=120, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(121); + Children[1] = PDEF_PTR(122); + Children[2] = PDEF_PTR(123); + Children[3] = PDEF_PTR(124); + Children[4] = PDEF_PTR(125); + Children[5] = PDEF_PTR(126); + Children[6] = PDEF_PTR(127); + Children[7] = PDEF_PTR(128); + Children[8] = PDEF_PTR(129); + + ParamDefTable[120].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=135, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(136); + + ParamDefTable[135].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(137); + Children[1] = PDEF_PTR(138); + Children[2] = PDEF_PTR(139); + + ParamDefTable[136].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=140, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(141); + + ParamDefTable[140].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=143, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(144); + + ParamDefTable[143].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=145, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(146); + + ParamDefTable[145].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=151, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(152); + + ParamDefTable[151].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=153, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(154); + + ParamDefTable[153].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=155, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(156); + + ParamDefTable[155].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=157, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(158); + + ParamDefTable[157].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=158, longName="scatterMeshTransforms[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(159); + Children[1] = PDEF_PTR(160); + + ParamDefTable[158].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p24::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p24::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(M34_Type); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p24::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p24::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p24::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p24::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p24::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p25.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p25.cpp old mode 100644 new mode 100755 index e463ab2..fa0f26c --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p25.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p25.cpp @@ -1,4803 +1,4803 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p25.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p25NS; - -const char* const DestructibleAssetParameters_0p25Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 159; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 119, 130, 131, 132, 133, 134, 135, 140, 142, - 143, 145, 147, 148, 149, 150, 151, 153, 155, 157, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, - 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, - 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 104, - 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 120, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 136, 137, 138, 139, 141, 144, 146, 152, - 154, 156, 158, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 23 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(101), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(108), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(113), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(122), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(127), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(131), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(137), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(138), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(147), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(148), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(151), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(152), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(153), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(154), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(155), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(156), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(157), 1 }, // scatterMeshTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // scatterMeshTransforms[] -}; - - -bool DestructibleAssetParameters_0p25::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p25::mBuiltFlagMutex; - -DestructibleAssetParameters_0p25::DestructibleAssetParameters_0p25(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p25FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p25::~DestructibleAssetParameters_0p25() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p25::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p25(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p25::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p25::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p25* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p25::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p25::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p25::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p25::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p25::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the ApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[132].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[153].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("scatterMeshTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(42); - Children[7] = PDEF_PTR(43); - Children[8] = PDEF_PTR(55); - Children[9] = PDEF_PTR(57); - Children[10] = PDEF_PTR(59); - Children[11] = PDEF_PTR(119); - Children[12] = PDEF_PTR(130); - Children[13] = PDEF_PTR(131); - Children[14] = PDEF_PTR(132); - Children[15] = PDEF_PTR(133); - Children[16] = PDEF_PTR(134); - Children[17] = PDEF_PTR(135); - Children[18] = PDEF_PTR(140); - Children[19] = PDEF_PTR(142); - Children[20] = PDEF_PTR(143); - Children[21] = PDEF_PTR(145); - Children[22] = PDEF_PTR(147); - Children[23] = PDEF_PTR(148); - Children[24] = PDEF_PTR(149); - Children[25] = PDEF_PTR(150); - Children[26] = PDEF_PTR(151); - Children[27] = PDEF_PTR(153); - Children[28] = PDEF_PTR(155); - Children[29] = PDEF_PTR(157); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - - ParamDefTable[5].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(24); - - ParamDefTable[23].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(32); - Children[5] = PDEF_PTR(36); - Children[6] = PDEF_PTR(37); - Children[7] = PDEF_PTR(38); - Children[8] = PDEF_PTR(39); - Children[9] = PDEF_PTR(40); - Children[10] = PDEF_PTR(41); - - ParamDefTable[24].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(29); - Children[1] = PDEF_PTR(30); - Children[2] = PDEF_PTR(31); - - ParamDefTable[28].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - - ParamDefTable[32].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=43, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(44); - - ParamDefTable[43].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=44, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - Children[5] = PDEF_PTR(50); - Children[6] = PDEF_PTR(51); - Children[7] = PDEF_PTR(52); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(54); - - ParamDefTable[44].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(58); - - ParamDefTable[57].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=59, longName="destructibleParameters" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - Children[8] = PDEF_PTR(68); - Children[9] = PDEF_PTR(69); - Children[10] = PDEF_PTR(70); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(82); - Children[16] = PDEF_PTR(83); - Children[17] = PDEF_PTR(84); - Children[18] = PDEF_PTR(85); - Children[19] = PDEF_PTR(91); - Children[20] = PDEF_PTR(116); - Children[21] = PDEF_PTR(117); - Children[22] = PDEF_PTR(118); - - ParamDefTable[59].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - Children[6] = PDEF_PTR(81); - - ParamDefTable[74].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - - ParamDefTable[85].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(92); - Children[1] = PDEF_PTR(93); - Children[2] = PDEF_PTR(94); - Children[3] = PDEF_PTR(95); - Children[4] = PDEF_PTR(96); - Children[5] = PDEF_PTR(97); - Children[6] = PDEF_PTR(98); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(109); - - ParamDefTable[91].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - - ParamDefTable[98].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - - ParamDefTable[104].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - - ParamDefTable[109].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=119, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(120); - - ParamDefTable[119].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=120, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(121); - Children[1] = PDEF_PTR(122); - Children[2] = PDEF_PTR(123); - Children[3] = PDEF_PTR(124); - Children[4] = PDEF_PTR(125); - Children[5] = PDEF_PTR(126); - Children[6] = PDEF_PTR(127); - Children[7] = PDEF_PTR(128); - Children[8] = PDEF_PTR(129); - - ParamDefTable[120].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=135, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(136); - - ParamDefTable[135].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(137); - Children[1] = PDEF_PTR(138); - Children[2] = PDEF_PTR(139); - - ParamDefTable[136].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=140, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(141); - - ParamDefTable[140].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=143, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(144); - - ParamDefTable[143].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=145, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(146); - - ParamDefTable[145].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=151, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(152); - - ParamDefTable[151].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=153, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(154); - - ParamDefTable[153].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=155, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(156); - - ParamDefTable[155].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=157, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(158); - - ParamDefTable[157].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p25::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p25::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(physx::PxMat44); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p25::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p25::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p25::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p25::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p25::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p25.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p25NS; + +const char* const DestructibleAssetParameters_0p25Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 159; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 119, 130, 131, 132, 133, 134, 135, 140, 142, + 143, 145, 147, 148, 149, 150, 151, 153, 155, 157, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, + 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, + 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, 104, + 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 136, 137, 138, 139, 141, 144, 146, 152, + 154, 156, 158, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 23 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(101), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(108), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(113), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(122), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(127), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(131), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(137), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(138), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(147), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(148), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(151), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(152), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(153), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(154), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(155), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(156), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(157), 1 }, // scatterMeshTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // scatterMeshTransforms[] +}; + + +bool DestructibleAssetParameters_0p25::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p25::mBuiltFlagMutex; + +DestructibleAssetParameters_0p25::DestructibleAssetParameters_0p25(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p25FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p25::~DestructibleAssetParameters_0p25() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p25::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p25(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p25::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p25::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p25* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p25::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p25::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p25::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p25::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p25::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the ApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[132].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[143].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[153].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("scatterMeshTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(42); + Children[7] = PDEF_PTR(43); + Children[8] = PDEF_PTR(55); + Children[9] = PDEF_PTR(57); + Children[10] = PDEF_PTR(59); + Children[11] = PDEF_PTR(119); + Children[12] = PDEF_PTR(130); + Children[13] = PDEF_PTR(131); + Children[14] = PDEF_PTR(132); + Children[15] = PDEF_PTR(133); + Children[16] = PDEF_PTR(134); + Children[17] = PDEF_PTR(135); + Children[18] = PDEF_PTR(140); + Children[19] = PDEF_PTR(142); + Children[20] = PDEF_PTR(143); + Children[21] = PDEF_PTR(145); + Children[22] = PDEF_PTR(147); + Children[23] = PDEF_PTR(148); + Children[24] = PDEF_PTR(149); + Children[25] = PDEF_PTR(150); + Children[26] = PDEF_PTR(151); + Children[27] = PDEF_PTR(153); + Children[28] = PDEF_PTR(155); + Children[29] = PDEF_PTR(157); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + + ParamDefTable[5].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(24); + + ParamDefTable[23].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(32); + Children[5] = PDEF_PTR(36); + Children[6] = PDEF_PTR(37); + Children[7] = PDEF_PTR(38); + Children[8] = PDEF_PTR(39); + Children[9] = PDEF_PTR(40); + Children[10] = PDEF_PTR(41); + + ParamDefTable[24].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(29); + Children[1] = PDEF_PTR(30); + Children[2] = PDEF_PTR(31); + + ParamDefTable[28].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + + ParamDefTable[32].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=43, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(44); + + ParamDefTable[43].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=44, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + Children[5] = PDEF_PTR(50); + Children[6] = PDEF_PTR(51); + Children[7] = PDEF_PTR(52); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(54); + + ParamDefTable[44].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(58); + + ParamDefTable[57].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=59, longName="destructibleParameters" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + Children[8] = PDEF_PTR(68); + Children[9] = PDEF_PTR(69); + Children[10] = PDEF_PTR(70); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(82); + Children[16] = PDEF_PTR(83); + Children[17] = PDEF_PTR(84); + Children[18] = PDEF_PTR(85); + Children[19] = PDEF_PTR(91); + Children[20] = PDEF_PTR(116); + Children[21] = PDEF_PTR(117); + Children[22] = PDEF_PTR(118); + + ParamDefTable[59].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + Children[6] = PDEF_PTR(81); + + ParamDefTable[74].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + + ParamDefTable[85].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(92); + Children[1] = PDEF_PTR(93); + Children[2] = PDEF_PTR(94); + Children[3] = PDEF_PTR(95); + Children[4] = PDEF_PTR(96); + Children[5] = PDEF_PTR(97); + Children[6] = PDEF_PTR(98); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(109); + + ParamDefTable[91].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + + ParamDefTable[98].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + + ParamDefTable[104].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + + ParamDefTable[109].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=119, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(120); + + ParamDefTable[119].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=120, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(121); + Children[1] = PDEF_PTR(122); + Children[2] = PDEF_PTR(123); + Children[3] = PDEF_PTR(124); + Children[4] = PDEF_PTR(125); + Children[5] = PDEF_PTR(126); + Children[6] = PDEF_PTR(127); + Children[7] = PDEF_PTR(128); + Children[8] = PDEF_PTR(129); + + ParamDefTable[120].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=135, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(136); + + ParamDefTable[135].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(137); + Children[1] = PDEF_PTR(138); + Children[2] = PDEF_PTR(139); + + ParamDefTable[136].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=140, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(141); + + ParamDefTable[140].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=143, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(144); + + ParamDefTable[143].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=145, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(146); + + ParamDefTable[145].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=151, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(152); + + ParamDefTable[151].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=153, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(154); + + ParamDefTable[153].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=155, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(156); + + ParamDefTable[155].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=157, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(158); + + ParamDefTable[157].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p25::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p25::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(physx::PxMat44); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p25::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p25::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p25::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p25::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p25::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p26.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p26.cpp old mode 100644 new mode 100755 index 14ec14d..7e4df42 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p26.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p26.cpp @@ -1,4829 +1,4829 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p26.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p26NS; - -const char* const DestructibleAssetParameters_0p26Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 160; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 120, 131, 132, 133, 134, 135, 136, 141, 143, - 144, 146, 148, 149, 150, 151, 152, 154, 156, 158, 6, 7, 8, 9, 13, 17, 18, 19, 20, - 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, - 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, - 119, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, - 104, 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, - 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 137, 138, 139, 140, 142, 145, 147, - 153, 155, 157, 159, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups - { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] - { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent - { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier - { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent - { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut - { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity - { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData - { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 24 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(102), 7 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(109), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(114), 9 }, // destructibleParameters.runtimeFracture - { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture - { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit - { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize - { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(123), 5 }, // destructibleParameters.runtimeFracture.glass - { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale - { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(128), 4 }, // destructibleParameters.runtimeFracture.voronoi - { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions - { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp - { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist - { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(132), 6 }, // destructibleParameters.runtimeFracture.attachment - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ - { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting - { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting - { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(138), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(139), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(148), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(149), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(152), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(153), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(154), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(155), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(156), 1 }, // scatterMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(157), 1 }, // scatterMeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(158), 1 }, // scatterMeshTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // scatterMeshTransforms[] -}; - - -bool DestructibleAssetParameters_0p26::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p26::mBuiltFlagMutex; - -DestructibleAssetParameters_0p26::DestructibleAssetParameters_0p26(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p26FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p26::~DestructibleAssetParameters_0p26() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p26::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p26(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p26::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p26::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p26* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p26::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p26::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p26::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - behaviorGroups.name */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ -/* [0] - scatterMeshAssets (not an array of structs) */ - -void DestructibleAssetParameters_0p26::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p26::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("comments", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); - HintTable[1].init("shortDescription", "Name of behavior group", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("minimumRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); - HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("falloffExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); - HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); - HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("density", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk density", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("fadeOut", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); - HintTable[1].init("shortDescription", "Chunk fade out", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); - HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); - HintTable[1].init("shortDescription", "User data field.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); - HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the ApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); - HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); - HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); - HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); - HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; - ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); - HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); - ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; - ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); - ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - static const char* const EnumVals[] = { "VORONOI", "GLASS" }; - ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; - ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); - HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); - ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; - ParamDef->init("depthLimit", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); - HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); - ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; - ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); - HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); - ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; - ParamDef->init("minConvexSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); - HintTable[1].init("shortDescription", "Minimum Convex Size.", true); - ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; - ParamDef->init("impulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); - HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); - ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; - ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); - ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; - ParamDef->init("numSectors", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); - HintTable[1].init("shortDescription", "Number of angular slices.", true); - ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; - ParamDef->init("sectorRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); - ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; - ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); - HintTable[1].init("shortDescription", "The minimum shard size.", true); - ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; - ParamDef->init("segmentScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); - HintTable[1].init("shortDescription", "Scales the radial spacing.", true); - ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; - ParamDef->init("segmentRand", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); - HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); - ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; - ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); - HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); - ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; - ParamDef->init("dimensions", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The size of the entire block. \n", true); - HintTable[1].init("shortDescription", "The size of the entire block", true); - ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; - ParamDef->init("numCells", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); - HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); - ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; - ParamDef->init("biasExp", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); - HintTable[1].init("shortDescription", "Bias Exponential value.", true); - ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; - ParamDef->init("maxDist", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); - HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); - ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; - ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); - HintTable[1].init("shortDescription", "Attachment Settings", true); - ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; - ParamDef->init("posX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); - ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; - ParamDef->init("negX", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); - ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; - ParamDef->init("posY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); - ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; - ParamDef->init("negY", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); - ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; - ParamDef->init("posZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); - ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; - ParamDef->init("negZ", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); - HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); - ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; - ParamDef->init("supportStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); - HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); - ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; - ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); - ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; - ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("END", "", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("END", "", true); - HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); - HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); - ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=119, longName="destructibleParameters.alwaysDrawScatterMesh" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; - ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); - HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); - ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=130, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=131, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=132, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=133, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=134, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[134].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=135, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=140, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=142, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=143, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=145, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[145].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=147, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=148, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=149, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=150, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=151, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); - ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=153, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; - ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; - ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included scatter mesh asset.", true); - HintTable[2].init("shortDescription", "The included scatter mesh assets", true); - ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[155].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; - ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; - ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); - HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); - ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; - ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=159, longName="scatterMeshTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; - ParamDef->init("scatterMeshTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); - HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); - ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[30]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(42); - Children[7] = PDEF_PTR(43); - Children[8] = PDEF_PTR(55); - Children[9] = PDEF_PTR(57); - Children[10] = PDEF_PTR(59); - Children[11] = PDEF_PTR(120); - Children[12] = PDEF_PTR(131); - Children[13] = PDEF_PTR(132); - Children[14] = PDEF_PTR(133); - Children[15] = PDEF_PTR(134); - Children[16] = PDEF_PTR(135); - Children[17] = PDEF_PTR(136); - Children[18] = PDEF_PTR(141); - Children[19] = PDEF_PTR(143); - Children[20] = PDEF_PTR(144); - Children[21] = PDEF_PTR(146); - Children[22] = PDEF_PTR(148); - Children[23] = PDEF_PTR(149); - Children[24] = PDEF_PTR(150); - Children[25] = PDEF_PTR(151); - Children[26] = PDEF_PTR(152); - Children[27] = PDEF_PTR(154); - Children[28] = PDEF_PTR(156); - Children[29] = PDEF_PTR(158); - - ParamDefTable[0].setChildren(Children, 30); - } - - // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(17); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(19); - Children[8] = PDEF_PTR(20); - Children[9] = PDEF_PTR(21); - Children[10] = PDEF_PTR(22); - - ParamDefTable[5].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(10); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - - ParamDefTable[9].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(14); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - - ParamDefTable[13].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=23, longName="behaviorGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(24); - - ParamDefTable[23].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" - { - static Definition* Children[11]; - Children[0] = PDEF_PTR(25); - Children[1] = PDEF_PTR(26); - Children[2] = PDEF_PTR(27); - Children[3] = PDEF_PTR(28); - Children[4] = PDEF_PTR(32); - Children[5] = PDEF_PTR(36); - Children[6] = PDEF_PTR(37); - Children[7] = PDEF_PTR(38); - Children[8] = PDEF_PTR(39); - Children[9] = PDEF_PTR(40); - Children[10] = PDEF_PTR(41); - - ParamDefTable[24].setChildren(Children, 11); - } - - // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(29); - Children[1] = PDEF_PTR(30); - Children[2] = PDEF_PTR(31); - - ParamDefTable[28].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(33); - Children[1] = PDEF_PTR(34); - Children[2] = PDEF_PTR(35); - - ParamDefTable[32].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=43, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(44); - - ParamDefTable[43].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=44, longName="chunks[]" - { - static Definition* Children[10]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - Children[5] = PDEF_PTR(50); - Children[6] = PDEF_PTR(51); - Children[7] = PDEF_PTR(52); - Children[8] = PDEF_PTR(53); - Children[9] = PDEF_PTR(54); - - ParamDefTable[44].setChildren(Children, 10); - } - - // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(56); - - ParamDefTable[55].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(58); - - ParamDefTable[57].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=59, longName="destructibleParameters" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(60); - Children[1] = PDEF_PTR(61); - Children[2] = PDEF_PTR(62); - Children[3] = PDEF_PTR(63); - Children[4] = PDEF_PTR(64); - Children[5] = PDEF_PTR(65); - Children[6] = PDEF_PTR(66); - Children[7] = PDEF_PTR(67); - Children[8] = PDEF_PTR(68); - Children[9] = PDEF_PTR(69); - Children[10] = PDEF_PTR(70); - Children[11] = PDEF_PTR(71); - Children[12] = PDEF_PTR(72); - Children[13] = PDEF_PTR(73); - Children[14] = PDEF_PTR(74); - Children[15] = PDEF_PTR(82); - Children[16] = PDEF_PTR(83); - Children[17] = PDEF_PTR(84); - Children[18] = PDEF_PTR(85); - Children[19] = PDEF_PTR(91); - Children[20] = PDEF_PTR(116); - Children[21] = PDEF_PTR(117); - Children[22] = PDEF_PTR(118); - Children[23] = PDEF_PTR(119); - - ParamDefTable[59].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(75); - Children[1] = PDEF_PTR(76); - Children[2] = PDEF_PTR(77); - Children[3] = PDEF_PTR(78); - Children[4] = PDEF_PTR(79); - Children[5] = PDEF_PTR(80); - Children[6] = PDEF_PTR(81); - - ParamDefTable[74].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(86); - Children[1] = PDEF_PTR(87); - Children[2] = PDEF_PTR(88); - Children[3] = PDEF_PTR(89); - Children[4] = PDEF_PTR(90); - - ParamDefTable[85].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(92); - Children[1] = PDEF_PTR(93); - Children[2] = PDEF_PTR(94); - Children[3] = PDEF_PTR(95); - Children[4] = PDEF_PTR(96); - Children[5] = PDEF_PTR(97); - Children[6] = PDEF_PTR(98); - Children[7] = PDEF_PTR(104); - Children[8] = PDEF_PTR(109); - - ParamDefTable[91].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(99); - Children[1] = PDEF_PTR(100); - Children[2] = PDEF_PTR(101); - Children[3] = PDEF_PTR(102); - Children[4] = PDEF_PTR(103); - - ParamDefTable[98].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(105); - Children[1] = PDEF_PTR(106); - Children[2] = PDEF_PTR(107); - Children[3] = PDEF_PTR(108); - - ParamDefTable[104].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(110); - Children[1] = PDEF_PTR(111); - Children[2] = PDEF_PTR(112); - Children[3] = PDEF_PTR(113); - Children[4] = PDEF_PTR(114); - Children[5] = PDEF_PTR(115); - - ParamDefTable[109].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=120, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(121); - - ParamDefTable[120].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=121, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(122); - Children[1] = PDEF_PTR(123); - Children[2] = PDEF_PTR(124); - Children[3] = PDEF_PTR(125); - Children[4] = PDEF_PTR(126); - Children[5] = PDEF_PTR(127); - Children[6] = PDEF_PTR(128); - Children[7] = PDEF_PTR(129); - Children[8] = PDEF_PTR(130); - - ParamDefTable[121].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(137); - - ParamDefTable[136].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=137, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(138); - Children[1] = PDEF_PTR(139); - Children[2] = PDEF_PTR(140); - - ParamDefTable[137].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=141, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(142); - - ParamDefTable[141].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=144, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(145); - - ParamDefTable[144].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=146, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(147); - - ParamDefTable[146].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=152, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(153); - - ParamDefTable[152].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=154, longName="scatterMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(155); - - ParamDefTable[154].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=156, longName="scatterMeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(157); - - ParamDefTable[156].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=158, longName="scatterMeshTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(159); - - ParamDefTable[158].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p26::initStrings(void) -{ - comments.isAllocated = true; - comments.buf = NULL; - defaultBehaviorGroup.name.isAllocated = true; - defaultBehaviorGroup.name.buf = NULL; - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p26::initDynamicArrays(void) -{ - behaviorGroups.buf = NULL; - behaviorGroups.isAllocated = true; - behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); - behaviorGroups.arraySizes[0] = 0; - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; - scatterMeshAssets.buf = NULL; - scatterMeshAssets.isAllocated = true; - scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - scatterMeshAssets.arraySizes[0] = 0; - scatterMeshIndices.buf = NULL; - scatterMeshIndices.isAllocated = true; - scatterMeshIndices.elementSize = sizeof(uint8_t); - scatterMeshIndices.arraySizes[0] = 0; - scatterMeshTransforms.buf = NULL; - scatterMeshTransforms.isAllocated = true; - scatterMeshTransforms.elementSize = sizeof(physx::PxMat44); - scatterMeshTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p26::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - defaultBehaviorGroup.damageThreshold = float(1); - defaultBehaviorGroup.damageToRadius = float(0.1); - defaultBehaviorGroup.damageSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); - defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); - defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); - defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); - defaultBehaviorGroup.materialStrength = float(0); - defaultBehaviorGroup.density = float(0); - defaultBehaviorGroup.fadeOut = float(1); - defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); - defaultBehaviorGroup.userData = uint64_t(0); - RTFractureBehaviorGroup = int8_t(-1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.debrisDestructionProbability = float(0); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; - destructibleParameters.runtimeFracture.sheetFracture = bool(true); - destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); - destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); - destructibleParameters.runtimeFracture.minConvexSize = float(0.02); - destructibleParameters.runtimeFracture.impulseScale = float(1); - destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); - destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); - destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); - destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); - destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); - destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); - destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); - destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); - destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); - destructibleParameters.runtimeFracture.attachment.posX = bool(false); - destructibleParameters.runtimeFracture.attachment.negX = bool(false); - destructibleParameters.runtimeFracture.attachment.posY = bool(false); - destructibleParameters.runtimeFracture.attachment.negY = bool(false); - destructibleParameters.runtimeFracture.attachment.posZ = bool(false); - destructibleParameters.runtimeFracture.attachment.negZ = bool(false); - destructibleParameters.supportStrength = float(-1); - destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); - destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); - destructibleParameters.alwaysDrawScatterMesh = bool(false); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p26::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p26::freeDynamicArrays(void) -{ - if (behaviorGroups.isAllocated && behaviorGroups.buf) - { - mParameterizedTraits->free(behaviorGroups.buf); - } - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } - if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) - { - mParameterizedTraits->free(scatterMeshAssets.buf); - } - if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) - { - mParameterizedTraits->free(scatterMeshIndices.buf); - } - if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) - { - mParameterizedTraits->free(scatterMeshTransforms.buf); - } -} - -void DestructibleAssetParameters_0p26::freeStrings(void) -{ - - if (comments.isAllocated && comments.buf) - { - mParameterizedTraits->strfree((char*)comments.buf); - } - - if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) - { - mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); - } - - for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) - { - if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); - } - } - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p26::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } - - for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) - { - if (scatterMeshAssets.buf[i]) - { - scatterMeshAssets.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p26.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p26NS; + +const char* const DestructibleAssetParameters_0p26Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 160; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 23, 42, 43, 55, 57, 59, 120, 131, 132, 133, 134, 135, 136, 141, 143, + 144, 146, 148, 149, 150, 151, 152, 154, 156, 158, 6, 7, 8, 9, 13, 17, 18, 19, 20, + 21, 22, 10, 11, 12, 14, 15, 16, 24, 25, 26, 27, 28, 32, 36, 37, 38, 39, 40, 41, 29, + 30, 31, 33, 34, 35, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 56, 58, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 82, 83, 84, 85, 91, 116, 117, 118, + 119, 75, 76, 77, 78, 79, 80, 81, 86, 87, 88, 89, 90, 92, 93, 94, 95, 96, 97, 98, + 104, 109, 99, 100, 101, 102, 103, 105, 106, 107, 108, 110, 111, 112, 113, 114, 115, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 137, 138, 139, 140, 142, 145, 147, + 153, 155, 157, 159, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 30 }, + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->comments), NULL, 0 }, // comments + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->defaultBehaviorGroup), CHILDREN(30), 11 }, // defaultBehaviorGroup + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // defaultBehaviorGroup.name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // defaultBehaviorGroup.damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // defaultBehaviorGroup.damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(41), 3 }, // defaultBehaviorGroup.damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(44), 3 }, // defaultBehaviorGroup.damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // defaultBehaviorGroup.damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // defaultBehaviorGroup.damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // defaultBehaviorGroup.materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // defaultBehaviorGroup.density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // defaultBehaviorGroup.fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // defaultBehaviorGroup.maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // defaultBehaviorGroup.userData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->behaviorGroups), CHILDREN(47), 1 }, // behaviorGroups + { TYPE_STRUCT, false, 1 * sizeof(BehaviorGroup_Type), CHILDREN(48), 11 }, // behaviorGroups[] + { TYPE_STRING, false, (size_t)(&((BehaviorGroup_Type*)0)->name), NULL, 0 }, // behaviorGroups[].name + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageThreshold), NULL, 0 }, // behaviorGroups[].damageThreshold + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->damageToRadius), NULL, 0 }, // behaviorGroups[].damageToRadius + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageSpread), CHILDREN(59), 3 }, // behaviorGroups[].damageSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageSpread.falloffExponent + { TYPE_STRUCT, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorSpread), CHILDREN(62), 3 }, // behaviorGroups[].damageColorSpread + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->minimumRadius), NULL, 0 }, // behaviorGroups[].damageColorSpread.minimumRadius + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->radiusMultiplier), NULL, 0 }, // behaviorGroups[].damageColorSpread.radiusMultiplier + { TYPE_F32, false, (size_t)(&((DamageSpreadFunction_Type*)0)->falloffExponent), NULL, 0 }, // behaviorGroups[].damageColorSpread.falloffExponent + { TYPE_VEC4, false, (size_t)(&((BehaviorGroup_Type*)0)->damageColorChange), NULL, 0 }, // behaviorGroups[].damageColorChange + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->materialStrength), NULL, 0 }, // behaviorGroups[].materialStrength + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->density), NULL, 0 }, // behaviorGroups[].density + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->fadeOut), NULL, 0 }, // behaviorGroups[].fadeOut + { TYPE_F32, false, (size_t)(&((BehaviorGroup_Type*)0)->maxDepenetrationVelocity), NULL, 0 }, // behaviorGroups[].maxDepenetrationVelocity + { TYPE_U64, false, (size_t)(&((BehaviorGroup_Type*)0)->userData), NULL, 0 }, // behaviorGroups[].userData + { TYPE_I8, false, (size_t)(&((ParametersStruct*)0)->RTFractureBehaviorGroup), NULL, 0 }, // RTFractureBehaviorGroup + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(65), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(66), 10 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_I8, false, (size_t)(&((Chunk_Type*)0)->behaviorGroupIndex), NULL, 0 }, // chunks[].behaviorGroupIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstScatterMesh), NULL, 0 }, // chunks[].firstScatterMesh + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->scatterMeshCount), NULL, 0 }, // chunks[].scatterMeshCount + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(76), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(77), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(78), 24 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDestructionProbability), NULL, 0 }, // destructibleParameters.debrisDestructionProbability + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(102), 7 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_VIA_RUNTIME_FRACTURE), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->damageDepthLimit), NULL, 0 }, // destructibleParameters.damageDepthLimit + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(109), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->runtimeFracture), CHILDREN(114), 9 }, // destructibleParameters.runtimeFracture + { TYPE_ENUM, false, (size_t)(&((RuntimeFracture_Type*)0)->RuntimeFractureType), NULL, 0 }, // destructibleParameters.runtimeFracture.RuntimeFractureType + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->sheetFracture), NULL, 0 }, // destructibleParameters.runtimeFracture.sheetFracture + { TYPE_U32, false, (size_t)(&((RuntimeFracture_Type*)0)->depthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.depthLimit + { TYPE_BOOL, false, (size_t)(&((RuntimeFracture_Type*)0)->destroyIfAtDepthLimit), NULL, 0 }, // destructibleParameters.runtimeFracture.destroyIfAtDepthLimit + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->minConvexSize), NULL, 0 }, // destructibleParameters.runtimeFracture.minConvexSize + { TYPE_F32, false, (size_t)(&((RuntimeFracture_Type*)0)->impulseScale), NULL, 0 }, // destructibleParameters.runtimeFracture.impulseScale + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->glass), CHILDREN(123), 5 }, // destructibleParameters.runtimeFracture.glass + { TYPE_U32, false, (size_t)(&((FractureGlass_Type*)0)->numSectors), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.numSectors + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->sectorRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.sectorRand + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->firstSegmentSize), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.firstSegmentSize + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentScale), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentScale + { TYPE_F32, false, (size_t)(&((FractureGlass_Type*)0)->segmentRand), NULL, 0 }, // destructibleParameters.runtimeFracture.glass.segmentRand + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->voronoi), CHILDREN(128), 4 }, // destructibleParameters.runtimeFracture.voronoi + { TYPE_VEC3, false, (size_t)(&((FractureVoronoi_Type*)0)->dimensions), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.dimensions + { TYPE_U32, false, (size_t)(&((FractureVoronoi_Type*)0)->numCells), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.numCells + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->biasExp), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.biasExp + { TYPE_F32, false, (size_t)(&((FractureVoronoi_Type*)0)->maxDist), NULL, 0 }, // destructibleParameters.runtimeFracture.voronoi.maxDist + { TYPE_STRUCT, false, (size_t)(&((RuntimeFracture_Type*)0)->attachment), CHILDREN(132), 6 }, // destructibleParameters.runtimeFracture.attachment + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negX), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negX + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negY), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negY + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->posZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.posZ + { TYPE_BOOL, false, (size_t)(&((FractureAttachment_Type*)0)->negZ), NULL, 0 }, // destructibleParameters.runtimeFracture.attachment.negZ + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->supportStrength), NULL, 0 }, // destructibleParameters.supportStrength + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyChunkBoundsTestSetting), NULL, 0 }, // destructibleParameters.legacyChunkBoundsTestSetting + { TYPE_I8, false, (size_t)(&((DestructibleParameters_Type*)0)->legacyDamageRadiusSpreadSetting), NULL, 0 }, // destructibleParameters.legacyDamageRadiusSpreadSetting + { TYPE_BOOL, false, (size_t)(&((DestructibleParameters_Type*)0)->alwaysDrawScatterMesh), NULL, 0 }, // destructibleParameters.alwaysDrawScatterMesh + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(138), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(139), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(148), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(149), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(152), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(153), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(154), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(155), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshAssets), CHILDREN(156), 1 }, // scatterMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // scatterMeshAssets[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshIndices), CHILDREN(157), 1 }, // scatterMeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // scatterMeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->scatterMeshTransforms), CHILDREN(158), 1 }, // scatterMeshTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // scatterMeshTransforms[] +}; + + +bool DestructibleAssetParameters_0p26::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p26::mBuiltFlagMutex; + +DestructibleAssetParameters_0p26::DestructibleAssetParameters_0p26(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p26FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p26::~DestructibleAssetParameters_0p26() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p26::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p26(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p26::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p26::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p26* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p26::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p26::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p26::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - behaviorGroups.name */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ +/* [0] - scatterMeshAssets (not an array of structs) */ + +void DestructibleAssetParameters_0p26::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p26::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="comments" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("comments", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + HintTable[1].init("shortDescription", "Human-readable string which describes which tool created this asset, its version, etc.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultBehaviorGroup", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default behavior group referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The default behavior group referenced by chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="defaultBehaviorGroup.name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="defaultBehaviorGroup.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="defaultBehaviorGroup.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="defaultBehaviorGroup.damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="defaultBehaviorGroup.damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="defaultBehaviorGroup.damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="defaultBehaviorGroup.damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="defaultBehaviorGroup.damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="defaultBehaviorGroup.damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="defaultBehaviorGroup.damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="defaultBehaviorGroup.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="defaultBehaviorGroup.density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="defaultBehaviorGroup.fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="defaultBehaviorGroup.maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="defaultBehaviorGroup.userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="behaviorGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("behaviorGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="behaviorGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("behaviorGroups", TYPE_STRUCT, "BehaviorGroup", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="behaviorGroups[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name of behavior group, eg Concrete or Glass.", true); + HintTable[1].init("shortDescription", "Name of behavior group", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="behaviorGroups[].damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\n This is obtained from the damage value passed into the DestructibleActor::applyDamage,\n or DestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="behaviorGroups[].damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\n is multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\n will have damage applied to them. The damage applied to each chunk varies with distance to the damage\n application position. Full damage is taken at zero distance, and zero damage at the damage radius.\n NOTE: This parameter is deprecated for point and radius damage. It will be used for those types of damage if legacy damage\n behavior is enabled with ModuleDestructible::setUseLegacyDamageRadiusSpread. Otherwise, the new parameters\n damageSpread.minimumRadius, damageSpread.radiusMultiplier, and damageSpread.falloffExponent are used. For impact damage, this parameter\n will continue to be used, however the radius will no longer scale with object size. The radius will continue\n to scale with the damage as a fraction of damageThreshold, however. If legacy damage behavior is used, this parameter\n will behave as before with respect to impact damage as well (scaling with object size).", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("damageSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for damage applied to the destructible.", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="behaviorGroups[].damageSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="behaviorGroups[].damageSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="behaviorGroups[].damageSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("damageColorSpread", TYPE_STRUCT, "DamageSpreadFunction", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + HintTable[1].init("shortDescription", "Describes the radius and damage envelope function for color channel damage modification applied to the destructible.", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="behaviorGroups[].damageColorSpread.minimumRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("minimumRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum radius of damage spread when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "The minimum radius of damage spread when damage is applied.", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="behaviorGroups[].damageColorSpread.radiusMultiplier" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("radiusMultiplier", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A scale to apply to the input damage radius when damage is applied. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.", true); + HintTable[1].init("shortDescription", "A scale to apply to the input damage radius when damage is applied.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="behaviorGroups[].damageColorSpread.falloffExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("falloffExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How damage varies between the minimum radius and the calculated damage radius. The formula for the damage radius is\n radius = minimumRadius + (input radius) * radiusMultiplier.\n Within the minimumRadius, the full damage is applied to chunks. Past the minimumRadius, the formla for damage is:\n damage = (input damage) * ((radius - distance)/(radius - minimumRadius))^falloffExponent.\n Note: falloffExponent = 0.0 gives no falloff, so that damage = (input damage) over the entire range [0, radius).\n falloffExponent = 1.0 gives linear falloff.", true); + HintTable[1].init("shortDescription", "How damage varies between the minimum radius and the calculated damage radius.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="behaviorGroups[].damageColorChange" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("damageColorChange", TYPE_VEC4, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Describes how damage changes the color of vertices in the render mesh. If this vector is non-zero, then a dynamic\n (per-actor) color channel will be created and initialized to the asset's color channel, if it exists. Damage taken will go through\n the spread and envelope function described by damageColoring, and each color will be modified by the resulting damage, scaled\n by the values in damageColorChange. The change to color channel C is given by\n color[C] = clamp(color[C] + damageColorChange[C]*255*min(1.0, damage/damageThreshold), 0, 255).", true); + HintTable[1].init("shortDescription", "Describes how damage changes the color of vertices in the render mesh.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="behaviorGroups[].materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see DestructibleDepthParameters), this parameter\n is the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\n heavier objects will pass through them during fracture.\n N.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\n Default value = 0.0f.", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="behaviorGroups[].density" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("density", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk density. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk density", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="behaviorGroups[].fadeOut" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("fadeOut", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk fade out. (TODO: better description)", true); + HintTable[1].init("shortDescription", "Chunk fade out", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="behaviorGroups[].maxDepenetrationVelocity" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("maxDepenetrationVelocity", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "In case some chunk is created inside static geometry it will be pushed out of it without limiting it's velocity. Sometimes it's not desirable, \n so this parameter can limit depenetration velocity. Keep in mind, that for low values you can see chunks 'floating' off the static meshes, which is also not always desirable.", true); + HintTable[1].init("shortDescription", "Chunk maximum depenetration velocity", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="behaviorGroups[].userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User data field. This 64-bit field can be set and retrieved by the user at runtime.", true); + HintTable[1].init("shortDescription", "User data field.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="RTFractureBehaviorGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("RTFractureBehaviorGroup", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of behavior groups referenced by chunks. Each chunk references a behavior group for chunk-specific reactions.", true); + HintTable[1].init("shortDescription", "The array of behavior groups referenced by chunks", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the ApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="chunks[].behaviorGroupIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("behaviorGroupIndex", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Behavior group this chunk is associated with. This includes flags, damage threshold, density, impact\n resistance, and collision mask.", true); + HintTable[1].init("shortDescription", "Behavior group this chunk is associated with", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="chunks[].firstScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("firstScatterMesh", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Index of first scatter mesh (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="chunks[].scatterMeshCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("scatterMeshCount", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms).", true); + HintTable[1].init("shortDescription", "Number of scatter meshes (in scatterMeshIndices and scatterMeshTransforms)", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[55].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[56].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="destructibleParameters.debrisDestructionProbability" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("debrisDestructionProbability", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed instead of becoming dynamic or breaking down\n further into child chunks. Valid range = [0.0,1.0]. Default value = 0.0.", true); + HintTable[1].init("shortDescription", "The probablity that a debris chunk, when fractured, will simply be destroyed", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("CRUMBLE_VIA_RUNTIME_FRACTURE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, crumbled chunks will use the runtime fracture pipeline. The chunk will be procedurally broken\ndestroyed using either the default or a specified fracture pattern.\n", true); + HintTable[1].init("shortDescription", "If set, crumbled chunks will use the runtime fracture pipeline.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="destructibleParameters.damageDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("damageDepthLimit", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + HintTable[1].init("shortDescription", "How deep in the hierarchy damage will be propagated, relative to the chunk hit.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=87, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[87]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[87].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=88, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[88]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[88].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=89, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[89]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[89].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=90, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[90]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[90].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[91]; + ParamDef->init("runtimeFracture", TYPE_STRUCT, "RuntimeFracture", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Runtime Fracture Settings. 'CRUMBLE_VIA_RUNTIME_FRACTURE' must be set for this to do anything.\n", true); + HintTable[1].init("shortDescription", "Runtime Fracture Settings", true); + ParamDefTable[91].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=92, longName="destructibleParameters.runtimeFracture.RuntimeFractureType" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[92]; + ParamDef->init("RuntimeFractureType", TYPE_ENUM, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Which type of fracture pattern to choose", true); + ParamDefTable[92].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + static const char* const EnumVals[] = { "VORONOI", "GLASS" }; + ParamDefTable[92].setEnumVals((const char**)EnumVals, 2); + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=93, longName="destructibleParameters.runtimeFracture.sheetFracture" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[93]; + ParamDef->init("sheetFracture", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, align fracture pattern to largest face. \nIf false, the fracture pattern will be aligned to the hit normal with each fracture.\n", true); + HintTable[1].init("shortDescription", "If true, align fracture pattern to largest face", true); + ParamDefTable[93].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=94, longName="destructibleParameters.runtimeFracture.depthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[94]; + ParamDef->init("depthLimit", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of times deep a chunk can be fractured. Can help limit the number of chunks produced by\nruntime fracture.\n", true); + HintTable[1].init("shortDescription", "Number of times deep a chunk can be fractured.", true); + ParamDefTable[94].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=95, longName="destructibleParameters.runtimeFracture.destroyIfAtDepthLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[95]; + ParamDef->init("destroyIfAtDepthLimit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, destroy chunks when they hit their depth limit. \nIf false, then chunks at their depth limit will not fracture but will have a force applied.\n", true); + HintTable[1].init("shortDescription", "Destroy chunk if at depth limit", true); + ParamDefTable[95].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=96, longName="destructibleParameters.runtimeFracture.minConvexSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[96]; + ParamDef->init("minConvexSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Minimum Convex Size. Minimum size of convex produced by a fracture.\n", true); + HintTable[1].init("shortDescription", "Minimum Convex Size.", true); + ParamDefTable[96].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=97, longName="destructibleParameters.runtimeFracture.impulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[97]; + ParamDef->init("impulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales impulse applied by a fracture.\n", true); + HintTable[1].init("shortDescription", "Scales impulse applied by a fracture.", true); + ParamDefTable[97].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[98]; + ParamDef->init("glass", TYPE_STRUCT, "FractureGlass", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Glass Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Glass Fracture Pattern Settings.", true); + ParamDefTable[98].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=99, longName="destructibleParameters.runtimeFracture.glass.numSectors" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[99]; + ParamDef->init("numSectors", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of angular slices in the glass fracture pattern. \n", true); + HintTable[1].init("shortDescription", "Number of angular slices.", true); + ParamDefTable[99].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=100, longName="destructibleParameters.runtimeFracture.glass.sectorRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[100]; + ParamDef->init("sectorRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the angle of slices. A value of zero results in all angular slices having the same angle.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the angle of slices.", true); + ParamDefTable[100].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=101, longName="destructibleParameters.runtimeFracture.glass.firstSegmentSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[101]; + ParamDef->init("firstSegmentSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The minimum shard size. Shards below this size will not be created and thus not visible.\n", true); + HintTable[1].init("shortDescription", "The minimum shard size.", true); + ParamDefTable[101].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=102, longName="destructibleParameters.runtimeFracture.glass.segmentScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[102]; + ParamDef->init("segmentScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scales the radial spacing in the glass fracture pattern. A larger value results in radially longer shards.\n", true); + HintTable[1].init("shortDescription", "Scales the radial spacing.", true); + ParamDefTable[102].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=103, longName="destructibleParameters.runtimeFracture.glass.segmentRand" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[103]; + ParamDef->init("segmentRand", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Creates variance in the radial size of shards. A value of zero results in a low noise circular pattern.\n", true); + HintTable[1].init("shortDescription", "Creates variance in the radial size of shards.", true); + ParamDefTable[103].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[104]; + ParamDef->init("voronoi", TYPE_STRUCT, "FractureVoronoi", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Voronoi Fracture Pattern Settings.\n", true); + HintTable[1].init("shortDescription", "Voronoi Fracture Pattern Settings.", true); + ParamDefTable[104].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=105, longName="destructibleParameters.runtimeFracture.voronoi.dimensions" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[105]; + ParamDef->init("dimensions", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The size of the entire block. \n", true); + HintTable[1].init("shortDescription", "The size of the entire block", true); + ParamDefTable[105].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=106, longName="destructibleParameters.runtimeFracture.voronoi.numCells" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[106]; + ParamDef->init("numCells", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Number of Cells corresponds to the number of chunks to create during the fracture, default value is only one chunk.\n", true); + HintTable[1].init("shortDescription", "Max Number of Cells to create.", true); + ParamDefTable[106].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=107, longName="destructibleParameters.runtimeFracture.voronoi.biasExp" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[107]; + ParamDef->init("biasExp", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Bias Exponential value is used in distributing voronoi points which is used to fracture the original chunk.\n", true); + HintTable[1].init("shortDescription", "Bias Exponential value.", true); + ParamDefTable[107].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=108, longName="destructibleParameters.runtimeFracture.voronoi.maxDist" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[108]; + ParamDef->init("maxDist", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is to prevent a illegal voronoi point that's used to generate voronoi chunks.\n", true); + HintTable[1].init("shortDescription", "The max distance a Voronoi point away from origin.", true); + ParamDefTable[108].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[109]; + ParamDef->init("attachment", TYPE_STRUCT, "FractureAttachment", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Attachment Settings. Allows the sides of a runtime fracture chunk to be kinematic rather than dynamic.\n", true); + HintTable[1].init("shortDescription", "Attachment Settings", true); + ParamDefTable[109].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=110, longName="destructibleParameters.runtimeFracture.attachment.posX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[110]; + ParamDef->init("posX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive x side of sheet.", true); + ParamDefTable[110].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=111, longName="destructibleParameters.runtimeFracture.attachment.negX" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[111]; + ParamDef->init("negX", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative x side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative x side of sheet.", true); + ParamDefTable[111].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=112, longName="destructibleParameters.runtimeFracture.attachment.posY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[112]; + ParamDef->init("posY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive y side of sheet.", true); + ParamDefTable[112].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=113, longName="destructibleParameters.runtimeFracture.attachment.negY" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[113]; + ParamDef->init("negY", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative y side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative y side of sheet.", true); + ParamDefTable[113].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=114, longName="destructibleParameters.runtimeFracture.attachment.posZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[114]; + ParamDef->init("posZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the positive z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to positive z side of sheet.", true); + ParamDefTable[114].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=115, longName="destructibleParameters.runtimeFracture.attachment.negZ" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[115]; + ParamDef->init("negZ", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, make the negative z side of the sheet an attachment point.\n", true); + HintTable[1].init("shortDescription", "Attach to negative z side of sheet.", true); + ParamDefTable[115].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=116, longName="destructibleParameters.supportStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[116]; + ParamDef->init("supportStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The larger the supportStrength is, the harder it will break under stressSolver. SupportStrength should be larger\nthan 0.0 so that it is not extremely fragile.\nDefault supportStrength = -1.0 which means strength is turned off initially.\n", true); + HintTable[1].init("shortDescription", "The support strength threshold for breaking chunks in stressSolver", true); + ParamDefTable[116].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=117, longName="destructibleParameters.legacyChunkBoundsTestSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[117]; + ParamDef->init("legacyChunkBoundsTestSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[1].init("shortDescription", "Whether or not to use the old chunk bounds testing for damage, or use the module setting.", true); + ParamDefTable[117].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=118, longName="destructibleParameters.legacyDamageRadiusSpreadSetting" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[118]; + ParamDef->init("legacyDamageRadiusSpreadSetting", TYPE_I8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("END", "", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("END", "", true); + HintTable[1].init("longDescription", "Whether or not to use the old damage spread method, or use the module setting. A value of 0 forces the new method to be used.\nA positive value forces the old method to be used. Negative values cause the global (NxModuleDestructible) setting to be used.\n", true); + HintTable[2].init("shortDescription", "Whether or not to use the old damage spread method, or use the module setting.", true); + ParamDefTable[118].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=119, longName="destructibleParameters.alwaysDrawScatterMesh" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[119]; + ParamDef->init("alwaysDrawScatterMesh", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scatter mesh visibility is controlled by LOD. If asset has more than one depth level, scatter mesh is not drawn.\n This flag forces drawing of scatter mesh on chunks with depth > 1.", true); + HintTable[1].init("shortDescription", "Always draw scatter mesh on the chunks with depth > 1", true); + ParamDefTable[119].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=120, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[120]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[120].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=121, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[121]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[121].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=122, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[122]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[122].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=123, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[123]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[123].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=124, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[124]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[124].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=125, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[125]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[125].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=126, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[126]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[126].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=127, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[127]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[127].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=128, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[128]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[128].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=129, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[129]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[129].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=130, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[130]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[130].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=131, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[131]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[131].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=132, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[132]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[132].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=133, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[133]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[133].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[133].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=134, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[134]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[134].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[134].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=135, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[135]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[135].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=136, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[136]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[136].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=137, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[137]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[137].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=138, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[138]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[138].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=139, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[139]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[139].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=140, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[140]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[140].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=141, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[141]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[141].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=142, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[142]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[142].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=143, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[143]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[143].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=144, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[144]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[144].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[144].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=145, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[145]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[145].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[145].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=146, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[146]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[146].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=147, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[147]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[147].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=148, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[148]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[148].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=149, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[149]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[149].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=150, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[150]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via DestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[150].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=151, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[151]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the PxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the PxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the PxScene's static geometry will have environmental support", true); + ParamDefTable[151].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=152, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[152]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[152].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=153, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[153]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[153].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=154, longName="scatterMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[154]; + ParamDef->init("scatterMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[154].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[154].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=155, longName="scatterMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[155]; + ParamDef->init("scatterMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included scatter mesh asset.", true); + HintTable[2].init("shortDescription", "The included scatter mesh assets", true); + ParamDefTable[155].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[155].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=156, longName="scatterMeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[156]; + ParamDef->init("scatterMeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[156].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=157, longName="scatterMeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[157]; + ParamDef->init("scatterMeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of indices for scatter meshes defined in the asset. Valid indices must be in the range [0,N), where N is the size of the scatterMeshAssets array.", true); + HintTable[1].init("shortDescription", "Array of indices for scatter meshes defined in the asset", true); + ParamDefTable[157].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=158, longName="scatterMeshTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[158]; + ParamDef->init("scatterMeshTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[158].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=159, longName="scatterMeshTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[159]; + ParamDef->init("scatterMeshTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset. Must be the same size as scatterMeshIndices.", true); + HintTable[1].init("shortDescription", "Array of chunk-relative transforms for scatter meshes defined in the asset", true); + ParamDefTable[159].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[30]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(42); + Children[7] = PDEF_PTR(43); + Children[8] = PDEF_PTR(55); + Children[9] = PDEF_PTR(57); + Children[10] = PDEF_PTR(59); + Children[11] = PDEF_PTR(120); + Children[12] = PDEF_PTR(131); + Children[13] = PDEF_PTR(132); + Children[14] = PDEF_PTR(133); + Children[15] = PDEF_PTR(134); + Children[16] = PDEF_PTR(135); + Children[17] = PDEF_PTR(136); + Children[18] = PDEF_PTR(141); + Children[19] = PDEF_PTR(143); + Children[20] = PDEF_PTR(144); + Children[21] = PDEF_PTR(146); + Children[22] = PDEF_PTR(148); + Children[23] = PDEF_PTR(149); + Children[24] = PDEF_PTR(150); + Children[25] = PDEF_PTR(151); + Children[26] = PDEF_PTR(152); + Children[27] = PDEF_PTR(154); + Children[28] = PDEF_PTR(156); + Children[29] = PDEF_PTR(158); + + ParamDefTable[0].setChildren(Children, 30); + } + + // SetChildren for: nodeIndex=5, longName="defaultBehaviorGroup" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(17); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(19); + Children[8] = PDEF_PTR(20); + Children[9] = PDEF_PTR(21); + Children[10] = PDEF_PTR(22); + + ParamDefTable[5].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=9, longName="defaultBehaviorGroup.damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(10); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + + ParamDefTable[9].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=13, longName="defaultBehaviorGroup.damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(14); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + + ParamDefTable[13].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=23, longName="behaviorGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(24); + + ParamDefTable[23].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=24, longName="behaviorGroups[]" + { + static Definition* Children[11]; + Children[0] = PDEF_PTR(25); + Children[1] = PDEF_PTR(26); + Children[2] = PDEF_PTR(27); + Children[3] = PDEF_PTR(28); + Children[4] = PDEF_PTR(32); + Children[5] = PDEF_PTR(36); + Children[6] = PDEF_PTR(37); + Children[7] = PDEF_PTR(38); + Children[8] = PDEF_PTR(39); + Children[9] = PDEF_PTR(40); + Children[10] = PDEF_PTR(41); + + ParamDefTable[24].setChildren(Children, 11); + } + + // SetChildren for: nodeIndex=28, longName="behaviorGroups[].damageSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(29); + Children[1] = PDEF_PTR(30); + Children[2] = PDEF_PTR(31); + + ParamDefTable[28].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=32, longName="behaviorGroups[].damageColorSpread" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(33); + Children[1] = PDEF_PTR(34); + Children[2] = PDEF_PTR(35); + + ParamDefTable[32].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=43, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(44); + + ParamDefTable[43].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=44, longName="chunks[]" + { + static Definition* Children[10]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + Children[5] = PDEF_PTR(50); + Children[6] = PDEF_PTR(51); + Children[7] = PDEF_PTR(52); + Children[8] = PDEF_PTR(53); + Children[9] = PDEF_PTR(54); + + ParamDefTable[44].setChildren(Children, 10); + } + + // SetChildren for: nodeIndex=55, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(56); + + ParamDefTable[55].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=57, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(58); + + ParamDefTable[57].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=59, longName="destructibleParameters" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(60); + Children[1] = PDEF_PTR(61); + Children[2] = PDEF_PTR(62); + Children[3] = PDEF_PTR(63); + Children[4] = PDEF_PTR(64); + Children[5] = PDEF_PTR(65); + Children[6] = PDEF_PTR(66); + Children[7] = PDEF_PTR(67); + Children[8] = PDEF_PTR(68); + Children[9] = PDEF_PTR(69); + Children[10] = PDEF_PTR(70); + Children[11] = PDEF_PTR(71); + Children[12] = PDEF_PTR(72); + Children[13] = PDEF_PTR(73); + Children[14] = PDEF_PTR(74); + Children[15] = PDEF_PTR(82); + Children[16] = PDEF_PTR(83); + Children[17] = PDEF_PTR(84); + Children[18] = PDEF_PTR(85); + Children[19] = PDEF_PTR(91); + Children[20] = PDEF_PTR(116); + Children[21] = PDEF_PTR(117); + Children[22] = PDEF_PTR(118); + Children[23] = PDEF_PTR(119); + + ParamDefTable[59].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=74, longName="destructibleParameters.flags" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(75); + Children[1] = PDEF_PTR(76); + Children[2] = PDEF_PTR(77); + Children[3] = PDEF_PTR(78); + Children[4] = PDEF_PTR(79); + Children[5] = PDEF_PTR(80); + Children[6] = PDEF_PTR(81); + + ParamDefTable[74].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=85, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(86); + Children[1] = PDEF_PTR(87); + Children[2] = PDEF_PTR(88); + Children[3] = PDEF_PTR(89); + Children[4] = PDEF_PTR(90); + + ParamDefTable[85].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=91, longName="destructibleParameters.runtimeFracture" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(92); + Children[1] = PDEF_PTR(93); + Children[2] = PDEF_PTR(94); + Children[3] = PDEF_PTR(95); + Children[4] = PDEF_PTR(96); + Children[5] = PDEF_PTR(97); + Children[6] = PDEF_PTR(98); + Children[7] = PDEF_PTR(104); + Children[8] = PDEF_PTR(109); + + ParamDefTable[91].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=98, longName="destructibleParameters.runtimeFracture.glass" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(99); + Children[1] = PDEF_PTR(100); + Children[2] = PDEF_PTR(101); + Children[3] = PDEF_PTR(102); + Children[4] = PDEF_PTR(103); + + ParamDefTable[98].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=104, longName="destructibleParameters.runtimeFracture.voronoi" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(105); + Children[1] = PDEF_PTR(106); + Children[2] = PDEF_PTR(107); + Children[3] = PDEF_PTR(108); + + ParamDefTable[104].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=109, longName="destructibleParameters.runtimeFracture.attachment" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(110); + Children[1] = PDEF_PTR(111); + Children[2] = PDEF_PTR(112); + Children[3] = PDEF_PTR(113); + Children[4] = PDEF_PTR(114); + Children[5] = PDEF_PTR(115); + + ParamDefTable[109].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=120, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(121); + + ParamDefTable[120].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=121, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(122); + Children[1] = PDEF_PTR(123); + Children[2] = PDEF_PTR(124); + Children[3] = PDEF_PTR(125); + Children[4] = PDEF_PTR(126); + Children[5] = PDEF_PTR(127); + Children[6] = PDEF_PTR(128); + Children[7] = PDEF_PTR(129); + Children[8] = PDEF_PTR(130); + + ParamDefTable[121].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=136, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(137); + + ParamDefTable[136].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=137, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(138); + Children[1] = PDEF_PTR(139); + Children[2] = PDEF_PTR(140); + + ParamDefTable[137].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=141, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(142); + + ParamDefTable[141].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=144, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(145); + + ParamDefTable[144].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=146, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(147); + + ParamDefTable[146].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=152, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(153); + + ParamDefTable[152].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=154, longName="scatterMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(155); + + ParamDefTable[154].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=156, longName="scatterMeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(157); + + ParamDefTable[156].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=158, longName="scatterMeshTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(159); + + ParamDefTable[158].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p26::initStrings(void) +{ + comments.isAllocated = true; + comments.buf = NULL; + defaultBehaviorGroup.name.isAllocated = true; + defaultBehaviorGroup.name.buf = NULL; + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p26::initDynamicArrays(void) +{ + behaviorGroups.buf = NULL; + behaviorGroups.isAllocated = true; + behaviorGroups.elementSize = sizeof(BehaviorGroup_Type); + behaviorGroups.arraySizes[0] = 0; + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; + scatterMeshAssets.buf = NULL; + scatterMeshAssets.isAllocated = true; + scatterMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + scatterMeshAssets.arraySizes[0] = 0; + scatterMeshIndices.buf = NULL; + scatterMeshIndices.isAllocated = true; + scatterMeshIndices.elementSize = sizeof(uint8_t); + scatterMeshIndices.arraySizes[0] = 0; + scatterMeshTransforms.buf = NULL; + scatterMeshTransforms.isAllocated = true; + scatterMeshTransforms.elementSize = sizeof(physx::PxMat44); + scatterMeshTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p26::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + defaultBehaviorGroup.damageThreshold = float(1); + defaultBehaviorGroup.damageToRadius = float(0.1); + defaultBehaviorGroup.damageSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorSpread.minimumRadius = float(0); + defaultBehaviorGroup.damageColorSpread.radiusMultiplier = float(1); + defaultBehaviorGroup.damageColorSpread.falloffExponent = float(1); + defaultBehaviorGroup.damageColorChange = physx::PxVec4(initVec4(0, 0, 0, 0)); + defaultBehaviorGroup.materialStrength = float(0); + defaultBehaviorGroup.density = float(0); + defaultBehaviorGroup.fadeOut = float(1); + defaultBehaviorGroup.maxDepenetrationVelocity = float(PX_MAX_F32); + defaultBehaviorGroup.userData = uint64_t(0); + RTFractureBehaviorGroup = int8_t(-1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.debrisDestructionProbability = float(0); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.flags.CRUMBLE_VIA_RUNTIME_FRACTURE = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.damageDepthLimit = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + destructibleParameters.runtimeFracture.RuntimeFractureType = (const char*)"VORONOI"; + destructibleParameters.runtimeFracture.sheetFracture = bool(true); + destructibleParameters.runtimeFracture.depthLimit = uint32_t(2); + destructibleParameters.runtimeFracture.destroyIfAtDepthLimit = bool(false); + destructibleParameters.runtimeFracture.minConvexSize = float(0.02); + destructibleParameters.runtimeFracture.impulseScale = float(1); + destructibleParameters.runtimeFracture.glass.numSectors = uint32_t(10); + destructibleParameters.runtimeFracture.glass.sectorRand = float(0.3); + destructibleParameters.runtimeFracture.glass.firstSegmentSize = float(0.06); + destructibleParameters.runtimeFracture.glass.segmentScale = float(1.4); + destructibleParameters.runtimeFracture.glass.segmentRand = float(0.3); + destructibleParameters.runtimeFracture.voronoi.dimensions = physx::PxVec3(physx::PxVec3(10.0f)); + destructibleParameters.runtimeFracture.voronoi.numCells = uint32_t(1); + destructibleParameters.runtimeFracture.voronoi.biasExp = float(10); + destructibleParameters.runtimeFracture.voronoi.maxDist = float(PX_MAX_F32); + destructibleParameters.runtimeFracture.attachment.posX = bool(false); + destructibleParameters.runtimeFracture.attachment.negX = bool(false); + destructibleParameters.runtimeFracture.attachment.posY = bool(false); + destructibleParameters.runtimeFracture.attachment.negY = bool(false); + destructibleParameters.runtimeFracture.attachment.posZ = bool(false); + destructibleParameters.runtimeFracture.attachment.negZ = bool(false); + destructibleParameters.supportStrength = float(-1); + destructibleParameters.legacyChunkBoundsTestSetting = int8_t(-1); + destructibleParameters.legacyDamageRadiusSpreadSetting = int8_t(-1); + destructibleParameters.alwaysDrawScatterMesh = bool(false); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p26::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p26::freeDynamicArrays(void) +{ + if (behaviorGroups.isAllocated && behaviorGroups.buf) + { + mParameterizedTraits->free(behaviorGroups.buf); + } + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } + if (scatterMeshAssets.isAllocated && scatterMeshAssets.buf) + { + mParameterizedTraits->free(scatterMeshAssets.buf); + } + if (scatterMeshIndices.isAllocated && scatterMeshIndices.buf) + { + mParameterizedTraits->free(scatterMeshIndices.buf); + } + if (scatterMeshTransforms.isAllocated && scatterMeshTransforms.buf) + { + mParameterizedTraits->free(scatterMeshTransforms.buf); + } +} + +void DestructibleAssetParameters_0p26::freeStrings(void) +{ + + if (comments.isAllocated && comments.buf) + { + mParameterizedTraits->strfree((char*)comments.buf); + } + + if (defaultBehaviorGroup.name.isAllocated && defaultBehaviorGroup.name.buf) + { + mParameterizedTraits->strfree((char*)defaultBehaviorGroup.name.buf); + } + + for (int i = 0; i < behaviorGroups.arraySizes[0]; ++i) + { + if (behaviorGroups.buf[i].name.isAllocated && behaviorGroups.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)behaviorGroups.buf[i].name.buf); + } + } + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p26::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } + + for (int i = 0; i < scatterMeshAssets.arraySizes[0]; ++i) + { + if (scatterMeshAssets.buf[i]) + { + scatterMeshAssets.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p3.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p3.cpp old mode 100644 new mode 100755 index 6806fcd..dc7a268 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p3.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p3.cpp @@ -1,2536 +1,2536 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p3NS; - -const char* const DestructibleAssetParameters_0p3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 78; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 14, 16, 49, 59, 60, 61, 62, 64, 65, 66, 68, 69, 71, 73, 74, 75, 76, 77, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 63, 67, 70, 72, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 22 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(22), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(23), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(31), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(32), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(53), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(59), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(64), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(65), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(73), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(74), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(75), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(76), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent -}; - - -bool DestructibleAssetParameters_0p3::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p3::mBuiltFlagMutex; - -DestructibleAssetParameters_0p3::DestructibleAssetParameters_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p3::~DestructibleAssetParameters_0p3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p3::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); - HintTable[1].init("shortDescription", "The AABB of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[61].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[22]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(16); - Children[6] = PDEF_PTR(49); - Children[7] = PDEF_PTR(59); - Children[8] = PDEF_PTR(60); - Children[9] = PDEF_PTR(61); - Children[10] = PDEF_PTR(62); - Children[11] = PDEF_PTR(64); - Children[12] = PDEF_PTR(65); - Children[13] = PDEF_PTR(66); - Children[14] = PDEF_PTR(68); - Children[15] = PDEF_PTR(69); - Children[16] = PDEF_PTR(71); - Children[17] = PDEF_PTR(73); - Children[18] = PDEF_PTR(74); - Children[19] = PDEF_PTR(75); - Children[20] = PDEF_PTR(76); - Children[21] = PDEF_PTR(77); - - ParamDefTable[0].setChildren(Children, 22); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - - ParamDefTable[5].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(17); - Children[1] = PDEF_PTR(18); - Children[2] = PDEF_PTR(19); - Children[3] = PDEF_PTR(20); - Children[4] = PDEF_PTR(21); - Children[5] = PDEF_PTR(22); - Children[6] = PDEF_PTR(23); - Children[7] = PDEF_PTR(24); - Children[8] = PDEF_PTR(25); - Children[9] = PDEF_PTR(26); - Children[10] = PDEF_PTR(27); - Children[11] = PDEF_PTR(28); - Children[12] = PDEF_PTR(29); - Children[13] = PDEF_PTR(30); - Children[14] = PDEF_PTR(31); - Children[15] = PDEF_PTR(32); - Children[16] = PDEF_PTR(33); - Children[17] = PDEF_PTR(34); - Children[18] = PDEF_PTR(41); - Children[19] = PDEF_PTR(42); - Children[20] = PDEF_PTR(43); - - ParamDefTable[16].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(35); - Children[1] = PDEF_PTR(36); - Children[2] = PDEF_PTR(37); - Children[3] = PDEF_PTR(38); - Children[4] = PDEF_PTR(39); - Children[5] = PDEF_PTR(40); - - ParamDefTable[34].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(44); - Children[1] = PDEF_PTR(45); - Children[2] = PDEF_PTR(46); - Children[3] = PDEF_PTR(47); - Children[4] = PDEF_PTR(48); - - ParamDefTable[43].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=49, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - Children[5] = PDEF_PTR(56); - Children[6] = PDEF_PTR(57); - Children[7] = PDEF_PTR(58); - - ParamDefTable[50].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=62, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(63); - - ParamDefTable[62].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=66, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(67); - - ParamDefTable[66].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=69, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(70); - - ParamDefTable[69].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=71, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(72); - - ParamDefTable[71].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p3::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p3::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - massScaleExponent = float(0.5); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p3::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p3::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p3::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p3::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p3NS; + +const char* const DestructibleAssetParameters_0p3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 78; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 14, 16, 49, 59, 60, 61, 62, 64, 65, 66, 68, 69, 71, 73, 74, 75, 76, 77, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, 50, + 51, 52, 53, 54, 55, 56, 57, 58, 63, 67, 70, 72, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 22 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(22), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(23), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(31), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(32), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(53), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(59), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(64), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(65), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(73), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(74), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(75), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(76), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent +}; + + +bool DestructibleAssetParameters_0p3::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p3::mBuiltFlagMutex; + +DestructibleAssetParameters_0p3::DestructibleAssetParameters_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p3::~DestructibleAssetParameters_0p3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p3::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); + HintTable[1].init("shortDescription", "The AABB of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[61].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[69].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[70].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[22]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(16); + Children[6] = PDEF_PTR(49); + Children[7] = PDEF_PTR(59); + Children[8] = PDEF_PTR(60); + Children[9] = PDEF_PTR(61); + Children[10] = PDEF_PTR(62); + Children[11] = PDEF_PTR(64); + Children[12] = PDEF_PTR(65); + Children[13] = PDEF_PTR(66); + Children[14] = PDEF_PTR(68); + Children[15] = PDEF_PTR(69); + Children[16] = PDEF_PTR(71); + Children[17] = PDEF_PTR(73); + Children[18] = PDEF_PTR(74); + Children[19] = PDEF_PTR(75); + Children[20] = PDEF_PTR(76); + Children[21] = PDEF_PTR(77); + + ParamDefTable[0].setChildren(Children, 22); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + + ParamDefTable[5].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(17); + Children[1] = PDEF_PTR(18); + Children[2] = PDEF_PTR(19); + Children[3] = PDEF_PTR(20); + Children[4] = PDEF_PTR(21); + Children[5] = PDEF_PTR(22); + Children[6] = PDEF_PTR(23); + Children[7] = PDEF_PTR(24); + Children[8] = PDEF_PTR(25); + Children[9] = PDEF_PTR(26); + Children[10] = PDEF_PTR(27); + Children[11] = PDEF_PTR(28); + Children[12] = PDEF_PTR(29); + Children[13] = PDEF_PTR(30); + Children[14] = PDEF_PTR(31); + Children[15] = PDEF_PTR(32); + Children[16] = PDEF_PTR(33); + Children[17] = PDEF_PTR(34); + Children[18] = PDEF_PTR(41); + Children[19] = PDEF_PTR(42); + Children[20] = PDEF_PTR(43); + + ParamDefTable[16].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(35); + Children[1] = PDEF_PTR(36); + Children[2] = PDEF_PTR(37); + Children[3] = PDEF_PTR(38); + Children[4] = PDEF_PTR(39); + Children[5] = PDEF_PTR(40); + + ParamDefTable[34].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(44); + Children[1] = PDEF_PTR(45); + Children[2] = PDEF_PTR(46); + Children[3] = PDEF_PTR(47); + Children[4] = PDEF_PTR(48); + + ParamDefTable[43].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=49, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + Children[5] = PDEF_PTR(56); + Children[6] = PDEF_PTR(57); + Children[7] = PDEF_PTR(58); + + ParamDefTable[50].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=62, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(63); + + ParamDefTable[62].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=66, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(67); + + ParamDefTable[66].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=69, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(70); + + ParamDefTable[69].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=71, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(72); + + ParamDefTable[71].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p3::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p3::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + massScaleExponent = float(0.5); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p3::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p3::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p3::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p3::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p4.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p4.cpp old mode 100644 new mode 100755 index 0d2cfaf..7cbc403 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p4.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p4.cpp @@ -1,2601 +1,2601 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p4.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p4NS; - -const char* const DestructibleAssetParameters_0p4Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 80; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 14, 16, 18, 51, 61, 62, 63, 64, 66, 67, 68, 70, 71, 73, 75, 76, 77, 78, - 79, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, - 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 69, 72, 74, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 23 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(23), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(24), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(76), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(77), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(78), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent -}; - - -bool DestructibleAssetParameters_0p4::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p4::mBuiltFlagMutex; - -DestructibleAssetParameters_0p4::DestructibleAssetParameters_0p4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p4FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p4::~DestructibleAssetParameters_0p4() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p4::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p4(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p4::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p4::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p4* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p4::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p4::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p4::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p4::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); - HintTable[1].init("shortDescription", "The AABB of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[71].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[72].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="massScaleExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[23]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(16); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(51); - Children[8] = PDEF_PTR(61); - Children[9] = PDEF_PTR(62); - Children[10] = PDEF_PTR(63); - Children[11] = PDEF_PTR(64); - Children[12] = PDEF_PTR(66); - Children[13] = PDEF_PTR(67); - Children[14] = PDEF_PTR(68); - Children[15] = PDEF_PTR(70); - Children[16] = PDEF_PTR(71); - Children[17] = PDEF_PTR(73); - Children[18] = PDEF_PTR(75); - Children[19] = PDEF_PTR(76); - Children[20] = PDEF_PTR(77); - Children[21] = PDEF_PTR(78); - Children[22] = PDEF_PTR(79); - - ParamDefTable[0].setChildren(Children, 23); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - - ParamDefTable[5].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(19); - Children[1] = PDEF_PTR(20); - Children[2] = PDEF_PTR(21); - Children[3] = PDEF_PTR(22); - Children[4] = PDEF_PTR(23); - Children[5] = PDEF_PTR(24); - Children[6] = PDEF_PTR(25); - Children[7] = PDEF_PTR(26); - Children[8] = PDEF_PTR(27); - Children[9] = PDEF_PTR(28); - Children[10] = PDEF_PTR(29); - Children[11] = PDEF_PTR(30); - Children[12] = PDEF_PTR(31); - Children[13] = PDEF_PTR(32); - Children[14] = PDEF_PTR(33); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(36); - Children[18] = PDEF_PTR(43); - Children[19] = PDEF_PTR(44); - Children[20] = PDEF_PTR(45); - - ParamDefTable[18].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - - ParamDefTable[36].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - - ParamDefTable[52].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(65); - - ParamDefTable[64].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=68, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(69); - - ParamDefTable[68].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=71, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(72); - - ParamDefTable[71].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=73, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p4::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p4::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p4::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - massScaleExponent = float(0.5); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p4::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p4::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p4::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p4::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p4.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p4NS; + +const char* const DestructibleAssetParameters_0p4Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 80; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 14, 16, 18, 51, 61, 62, 63, 64, 66, 67, 68, 70, 71, 73, 75, 76, 77, 78, + 79, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, + 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 69, 72, 74, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 23 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(23), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(24), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(76), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(77), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(78), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScaleExponent), NULL, 0 }, // massScaleExponent +}; + + +bool DestructibleAssetParameters_0p4::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p4::mBuiltFlagMutex; + +DestructibleAssetParameters_0p4::DestructibleAssetParameters_0p4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p4FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p4::~DestructibleAssetParameters_0p4() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p4::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p4(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p4::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p4::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p4* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p4::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p4::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p4::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p4::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); + HintTable[1].init("shortDescription", "The AABB of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[71].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[72].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="massScaleExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("massScaleExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Dynamic chunk islands will have their masses raised to this power. Values less than 1 have the\neffect of reducing the ratio of different masses. The closer massScaleExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: [0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Dynamic chunk islands will have their masses raised to this power.", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[23]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(16); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(51); + Children[8] = PDEF_PTR(61); + Children[9] = PDEF_PTR(62); + Children[10] = PDEF_PTR(63); + Children[11] = PDEF_PTR(64); + Children[12] = PDEF_PTR(66); + Children[13] = PDEF_PTR(67); + Children[14] = PDEF_PTR(68); + Children[15] = PDEF_PTR(70); + Children[16] = PDEF_PTR(71); + Children[17] = PDEF_PTR(73); + Children[18] = PDEF_PTR(75); + Children[19] = PDEF_PTR(76); + Children[20] = PDEF_PTR(77); + Children[21] = PDEF_PTR(78); + Children[22] = PDEF_PTR(79); + + ParamDefTable[0].setChildren(Children, 23); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + + ParamDefTable[5].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(19); + Children[1] = PDEF_PTR(20); + Children[2] = PDEF_PTR(21); + Children[3] = PDEF_PTR(22); + Children[4] = PDEF_PTR(23); + Children[5] = PDEF_PTR(24); + Children[6] = PDEF_PTR(25); + Children[7] = PDEF_PTR(26); + Children[8] = PDEF_PTR(27); + Children[9] = PDEF_PTR(28); + Children[10] = PDEF_PTR(29); + Children[11] = PDEF_PTR(30); + Children[12] = PDEF_PTR(31); + Children[13] = PDEF_PTR(32); + Children[14] = PDEF_PTR(33); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(36); + Children[18] = PDEF_PTR(43); + Children[19] = PDEF_PTR(44); + Children[20] = PDEF_PTR(45); + + ParamDefTable[18].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + + ParamDefTable[36].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + + ParamDefTable[52].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(65); + + ParamDefTable[64].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=68, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(69); + + ParamDefTable[68].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=71, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(72); + + ParamDefTable[71].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=73, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p4::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p4::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p4::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + massScaleExponent = float(0.5); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p4::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p4::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p4::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p4::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p5.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p5.cpp old mode 100644 new mode 100755 index 05216db..1e622f6 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p5.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p5.cpp @@ -1,2575 +1,2575 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p5.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p5NS; - -const char* const DestructibleAssetParameters_0p5Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 79; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 14, 16, 18, 51, 61, 62, 63, 64, 66, 67, 68, 70, 71, 73, 75, 76, 77, 78, - 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 69, 72, 74, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 22 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(22), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(23), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(31), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(32), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(65), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(66), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(74), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(75), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(76), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(77), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport -}; - - -bool DestructibleAssetParameters_0p5::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p5::mBuiltFlagMutex; - -DestructibleAssetParameters_0p5::DestructibleAssetParameters_0p5(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p5FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p5::~DestructibleAssetParameters_0p5() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p5::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p5(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p5::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p5::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p5* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p5::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p5::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p5::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p5::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p5::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); - HintTable[1].init("shortDescription", "The AABB of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[71].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[72].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[22]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(16); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(51); - Children[8] = PDEF_PTR(61); - Children[9] = PDEF_PTR(62); - Children[10] = PDEF_PTR(63); - Children[11] = PDEF_PTR(64); - Children[12] = PDEF_PTR(66); - Children[13] = PDEF_PTR(67); - Children[14] = PDEF_PTR(68); - Children[15] = PDEF_PTR(70); - Children[16] = PDEF_PTR(71); - Children[17] = PDEF_PTR(73); - Children[18] = PDEF_PTR(75); - Children[19] = PDEF_PTR(76); - Children[20] = PDEF_PTR(77); - Children[21] = PDEF_PTR(78); - - ParamDefTable[0].setChildren(Children, 22); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - - ParamDefTable[5].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(19); - Children[1] = PDEF_PTR(20); - Children[2] = PDEF_PTR(21); - Children[3] = PDEF_PTR(22); - Children[4] = PDEF_PTR(23); - Children[5] = PDEF_PTR(24); - Children[6] = PDEF_PTR(25); - Children[7] = PDEF_PTR(26); - Children[8] = PDEF_PTR(27); - Children[9] = PDEF_PTR(28); - Children[10] = PDEF_PTR(29); - Children[11] = PDEF_PTR(30); - Children[12] = PDEF_PTR(31); - Children[13] = PDEF_PTR(32); - Children[14] = PDEF_PTR(33); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(36); - Children[18] = PDEF_PTR(43); - Children[19] = PDEF_PTR(44); - Children[20] = PDEF_PTR(45); - - ParamDefTable[18].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - - ParamDefTable[36].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - - ParamDefTable[52].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(65); - - ParamDefTable[64].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=68, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(69); - - ParamDefTable[68].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=71, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(72); - - ParamDefTable[71].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=73, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p5::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p5::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p5::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p5::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p5::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p5::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p5::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p5.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p5NS; + +const char* const DestructibleAssetParameters_0p5Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 79; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 14, 16, 18, 51, 61, 62, 63, 64, 66, 67, 68, 70, 71, 73, 75, 76, 77, 78, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, 48, 49, 50, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 69, 72, 74, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 22 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(22), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(23), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(31), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(32), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(33), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(65), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(66), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(74), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(75), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(76), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(77), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport +}; + + +bool DestructibleAssetParameters_0p5::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p5::mBuiltFlagMutex; + +DestructibleAssetParameters_0p5::DestructibleAssetParameters_0p5(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p5FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p5::~DestructibleAssetParameters_0p5() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p5::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p5(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p5::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p5::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p5* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p5::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p5::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p5::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p5::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p5::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The corresponding mesh part for this chunk, in the NxApexRenderMeshAsset\n included withing this destructible asset.", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); + HintTable[1].init("shortDescription", "The AABB of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[71].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[72].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[22]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(16); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(51); + Children[8] = PDEF_PTR(61); + Children[9] = PDEF_PTR(62); + Children[10] = PDEF_PTR(63); + Children[11] = PDEF_PTR(64); + Children[12] = PDEF_PTR(66); + Children[13] = PDEF_PTR(67); + Children[14] = PDEF_PTR(68); + Children[15] = PDEF_PTR(70); + Children[16] = PDEF_PTR(71); + Children[17] = PDEF_PTR(73); + Children[18] = PDEF_PTR(75); + Children[19] = PDEF_PTR(76); + Children[20] = PDEF_PTR(77); + Children[21] = PDEF_PTR(78); + + ParamDefTable[0].setChildren(Children, 22); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + + ParamDefTable[5].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(19); + Children[1] = PDEF_PTR(20); + Children[2] = PDEF_PTR(21); + Children[3] = PDEF_PTR(22); + Children[4] = PDEF_PTR(23); + Children[5] = PDEF_PTR(24); + Children[6] = PDEF_PTR(25); + Children[7] = PDEF_PTR(26); + Children[8] = PDEF_PTR(27); + Children[9] = PDEF_PTR(28); + Children[10] = PDEF_PTR(29); + Children[11] = PDEF_PTR(30); + Children[12] = PDEF_PTR(31); + Children[13] = PDEF_PTR(32); + Children[14] = PDEF_PTR(33); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(36); + Children[18] = PDEF_PTR(43); + Children[19] = PDEF_PTR(44); + Children[20] = PDEF_PTR(45); + + ParamDefTable[18].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + + ParamDefTable[36].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + + ParamDefTable[52].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(65); + + ParamDefTable[64].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=68, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(69); + + ParamDefTable[68].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=71, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(72); + + ParamDefTable[71].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=73, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p5::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p5::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p5::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p5::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p5::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p5::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p5::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p6.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p6.cpp old mode 100644 new mode 100755 index 953c396..5a0a985 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p6.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p6.cpp @@ -1,2841 +1,2841 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p6.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p6NS; - -const char* const DestructibleAssetParameters_0p6Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 87; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 14, 16, 18, 51, 61, 62, 63, 64, 66, 67, 69, 70, 75, 76, 78, 79, 81, 83, - 84, 85, 86, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, - 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 68, 71, 72, 73, 74, 77, 80, 82, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 25 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(25), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(26), 8 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(34), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(35), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(57), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(63), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(68), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(69), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(77), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->instancedRenderMeshAssets), CHILDREN(78), 1 }, // instancedRenderMeshAssets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // instancedRenderMeshAssets[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(79), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(80), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(83), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(84), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(85), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport -}; - - -bool DestructibleAssetParameters_0p6::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p6::mBuiltFlagMutex; - -DestructibleAssetParameters_0p6::DestructibleAssetParameters_0p6(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p6FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p6::~DestructibleAssetParameters_0p6() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p6::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p6(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p6::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p6::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p6* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p6::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p6::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p6::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - instancedRenderMeshAssets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p6::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p6::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); - HintTable[1].init("shortDescription", "The AABB of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks that are not instanced (see instancedRenderMeshAssets).", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="instancedRenderMeshAssets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("instancedRenderMeshAssets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included instnanced render mesh assets. These assets define the\n graphical representation of all instanced chunks.", true); - HintTable[2].init("shortDescription", "The included instnanced render mesh assets", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="instancedRenderMeshAssets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("instancedRenderMeshAssets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included instnanced render mesh assets. These assets define the\n graphical representation of all instanced chunks.", true); - HintTable[2].init("shortDescription", "The included instnanced render mesh assets", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[79].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[80].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=86, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[25]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(16); - Children[6] = PDEF_PTR(18); - Children[7] = PDEF_PTR(51); - Children[8] = PDEF_PTR(61); - Children[9] = PDEF_PTR(62); - Children[10] = PDEF_PTR(63); - Children[11] = PDEF_PTR(64); - Children[12] = PDEF_PTR(66); - Children[13] = PDEF_PTR(67); - Children[14] = PDEF_PTR(69); - Children[15] = PDEF_PTR(70); - Children[16] = PDEF_PTR(75); - Children[17] = PDEF_PTR(76); - Children[18] = PDEF_PTR(78); - Children[19] = PDEF_PTR(79); - Children[20] = PDEF_PTR(81); - Children[21] = PDEF_PTR(83); - Children[22] = PDEF_PTR(84); - Children[23] = PDEF_PTR(85); - Children[24] = PDEF_PTR(86); - - ParamDefTable[0].setChildren(Children, 25); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - Children[7] = PDEF_PTR(13); - - ParamDefTable[5].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(15); - - ParamDefTable[14].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(17); - - ParamDefTable[16].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=18, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(19); - Children[1] = PDEF_PTR(20); - Children[2] = PDEF_PTR(21); - Children[3] = PDEF_PTR(22); - Children[4] = PDEF_PTR(23); - Children[5] = PDEF_PTR(24); - Children[6] = PDEF_PTR(25); - Children[7] = PDEF_PTR(26); - Children[8] = PDEF_PTR(27); - Children[9] = PDEF_PTR(28); - Children[10] = PDEF_PTR(29); - Children[11] = PDEF_PTR(30); - Children[12] = PDEF_PTR(31); - Children[13] = PDEF_PTR(32); - Children[14] = PDEF_PTR(33); - Children[15] = PDEF_PTR(34); - Children[16] = PDEF_PTR(35); - Children[17] = PDEF_PTR(36); - Children[18] = PDEF_PTR(43); - Children[19] = PDEF_PTR(44); - Children[20] = PDEF_PTR(45); - - ParamDefTable[18].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(37); - Children[1] = PDEF_PTR(38); - Children[2] = PDEF_PTR(39); - Children[3] = PDEF_PTR(40); - Children[4] = PDEF_PTR(41); - Children[5] = PDEF_PTR(42); - - ParamDefTable[36].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(46); - Children[1] = PDEF_PTR(47); - Children[2] = PDEF_PTR(48); - Children[3] = PDEF_PTR(49); - Children[4] = PDEF_PTR(50); - - ParamDefTable[45].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(52); - - ParamDefTable[51].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=52, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(53); - Children[1] = PDEF_PTR(54); - Children[2] = PDEF_PTR(55); - Children[3] = PDEF_PTR(56); - Children[4] = PDEF_PTR(57); - Children[5] = PDEF_PTR(58); - Children[6] = PDEF_PTR(59); - Children[7] = PDEF_PTR(60); - - ParamDefTable[52].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(65); - - ParamDefTable[64].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=67, longName="instancedRenderMeshAssets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(68); - - ParamDefTable[67].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=70, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(71); - - ParamDefTable[70].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=71, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(72); - Children[1] = PDEF_PTR(73); - Children[2] = PDEF_PTR(74); - - ParamDefTable[71].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=76, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(77); - - ParamDefTable[76].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=79, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(80); - - ParamDefTable[79].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=81, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(82); - - ParamDefTable[81].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p6::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p6::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - instancedRenderMeshAssets.buf = NULL; - instancedRenderMeshAssets.isAllocated = true; - instancedRenderMeshAssets.elementSize = sizeof(NvParameterized::Interface*); - instancedRenderMeshAssets.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p6::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p6::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p6::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (instancedRenderMeshAssets.isAllocated && instancedRenderMeshAssets.buf) - { - mParameterizedTraits->free(instancedRenderMeshAssets.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p6::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p6::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < instancedRenderMeshAssets.arraySizes[0]; ++i) - { - if (instancedRenderMeshAssets.buf[i]) - { - instancedRenderMeshAssets.buf[i]->destroy(); - } - } - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p6.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p6NS; + +const char* const DestructibleAssetParameters_0p6Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 87; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 14, 16, 18, 51, 61, 62, 63, 64, 66, 67, 69, 70, 75, 76, 78, 79, 81, 83, + 84, 85, 86, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 43, 44, 45, 37, 38, 39, 40, 41, 42, 46, 47, + 48, 49, 50, 52, 53, 54, 55, 56, 57, 58, 59, 60, 65, 68, 71, 72, 73, 74, 77, 80, 82, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 25 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(25), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(26), 8 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_BOUNDS3, false, (size_t)(&((Chunk_Type*)0)->bounds), NULL, 0 }, // chunks[].bounds + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(34), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(35), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(36), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(57), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(63), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(68), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(69), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(77), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->instancedRenderMeshAssets), CHILDREN(78), 1 }, // instancedRenderMeshAssets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // instancedRenderMeshAssets[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(79), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(80), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(83), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(84), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(85), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport +}; + + +bool DestructibleAssetParameters_0p6::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p6::mBuiltFlagMutex; + +DestructibleAssetParameters_0p6::DestructibleAssetParameters_0p6(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p6FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p6::~DestructibleAssetParameters_0p6() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p6::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p6(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p6::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p6::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p6* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p6::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p6::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p6::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - instancedRenderMeshAssets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p6::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p6::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of this chunk.", true); + HintTable[1].init("shortDescription", "The AABB of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[15].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset. This asset defines the\n graphical representation of all chunks that are not instanced (see instancedRenderMeshAssets).", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[66].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="instancedRenderMeshAssets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("instancedRenderMeshAssets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included instnanced render mesh assets. These assets define the\n graphical representation of all instanced chunks.", true); + HintTable[2].init("shortDescription", "The included instnanced render mesh assets", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[67].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="instancedRenderMeshAssets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("instancedRenderMeshAssets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included instnanced render mesh assets. These assets define the\n graphical representation of all instanced chunks.", true); + HintTable[2].init("shortDescription", "The included instnanced render mesh assets", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[68].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[79].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[80].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=86, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[86]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[86].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[25]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(16); + Children[6] = PDEF_PTR(18); + Children[7] = PDEF_PTR(51); + Children[8] = PDEF_PTR(61); + Children[9] = PDEF_PTR(62); + Children[10] = PDEF_PTR(63); + Children[11] = PDEF_PTR(64); + Children[12] = PDEF_PTR(66); + Children[13] = PDEF_PTR(67); + Children[14] = PDEF_PTR(69); + Children[15] = PDEF_PTR(70); + Children[16] = PDEF_PTR(75); + Children[17] = PDEF_PTR(76); + Children[18] = PDEF_PTR(78); + Children[19] = PDEF_PTR(79); + Children[20] = PDEF_PTR(81); + Children[21] = PDEF_PTR(83); + Children[22] = PDEF_PTR(84); + Children[23] = PDEF_PTR(85); + Children[24] = PDEF_PTR(86); + + ParamDefTable[0].setChildren(Children, 25); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + Children[7] = PDEF_PTR(13); + + ParamDefTable[5].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=14, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(15); + + ParamDefTable[14].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=16, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(17); + + ParamDefTable[16].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=18, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(19); + Children[1] = PDEF_PTR(20); + Children[2] = PDEF_PTR(21); + Children[3] = PDEF_PTR(22); + Children[4] = PDEF_PTR(23); + Children[5] = PDEF_PTR(24); + Children[6] = PDEF_PTR(25); + Children[7] = PDEF_PTR(26); + Children[8] = PDEF_PTR(27); + Children[9] = PDEF_PTR(28); + Children[10] = PDEF_PTR(29); + Children[11] = PDEF_PTR(30); + Children[12] = PDEF_PTR(31); + Children[13] = PDEF_PTR(32); + Children[14] = PDEF_PTR(33); + Children[15] = PDEF_PTR(34); + Children[16] = PDEF_PTR(35); + Children[17] = PDEF_PTR(36); + Children[18] = PDEF_PTR(43); + Children[19] = PDEF_PTR(44); + Children[20] = PDEF_PTR(45); + + ParamDefTable[18].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=36, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(37); + Children[1] = PDEF_PTR(38); + Children[2] = PDEF_PTR(39); + Children[3] = PDEF_PTR(40); + Children[4] = PDEF_PTR(41); + Children[5] = PDEF_PTR(42); + + ParamDefTable[36].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(46); + Children[1] = PDEF_PTR(47); + Children[2] = PDEF_PTR(48); + Children[3] = PDEF_PTR(49); + Children[4] = PDEF_PTR(50); + + ParamDefTable[45].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(52); + + ParamDefTable[51].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=52, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(53); + Children[1] = PDEF_PTR(54); + Children[2] = PDEF_PTR(55); + Children[3] = PDEF_PTR(56); + Children[4] = PDEF_PTR(57); + Children[5] = PDEF_PTR(58); + Children[6] = PDEF_PTR(59); + Children[7] = PDEF_PTR(60); + + ParamDefTable[52].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=64, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(65); + + ParamDefTable[64].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=67, longName="instancedRenderMeshAssets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(68); + + ParamDefTable[67].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=70, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(71); + + ParamDefTable[70].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=71, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(72); + Children[1] = PDEF_PTR(73); + Children[2] = PDEF_PTR(74); + + ParamDefTable[71].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=76, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(77); + + ParamDefTable[76].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=79, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(80); + + ParamDefTable[79].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=81, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(82); + + ParamDefTable[81].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p6::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p6::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + instancedRenderMeshAssets.buf = NULL; + instancedRenderMeshAssets.isAllocated = true; + instancedRenderMeshAssets.elementSize = sizeof(NvParameterized::Interface*); + instancedRenderMeshAssets.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p6::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p6::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p6::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (instancedRenderMeshAssets.isAllocated && instancedRenderMeshAssets.buf) + { + mParameterizedTraits->free(instancedRenderMeshAssets.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p6::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p6::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < instancedRenderMeshAssets.arraySizes[0]; ++i) + { + if (instancedRenderMeshAssets.buf[i]) + { + instancedRenderMeshAssets.buf[i]->destroy(); + } + } + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p7.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p7.cpp old mode 100644 new mode 100755 index cd9dc4c..8f0db98 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p7.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p7.cpp @@ -1,2723 +1,2723 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p7.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p7NS; - -const char* const DestructibleAssetParameters_0p7Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 84; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 13, 15, 17, 50, 60, 61, 62, 63, 65, 66, 67, 72, 73, 75, 76, 78, 80, 81, - 82, 83, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 42, 43, 44, 36, 37, 38, 39, 40, 41, 45, 46, 47, 48, - 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 64, 68, 69, 70, 71, 74, 77, 79, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 8 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(76), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(77), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(80), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(81), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(82), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport -}; - - -bool DestructibleAssetParameters_0p7::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p7::mBuiltFlagMutex; - -DestructibleAssetParameters_0p7::DestructibleAssetParameters_0p7(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p7FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p7::~DestructibleAssetParameters_0p7() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p7::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p7(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p7::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p7::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p7* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p7::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p7::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p7::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p7::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p7::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[13].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageToPercentDeformation" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); - HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.deformationPercentLimit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); - HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].TAKE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); - HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(15); - Children[6] = PDEF_PTR(17); - Children[7] = PDEF_PTR(50); - Children[8] = PDEF_PTR(60); - Children[9] = PDEF_PTR(61); - Children[10] = PDEF_PTR(62); - Children[11] = PDEF_PTR(63); - Children[12] = PDEF_PTR(65); - Children[13] = PDEF_PTR(66); - Children[14] = PDEF_PTR(67); - Children[15] = PDEF_PTR(72); - Children[16] = PDEF_PTR(73); - Children[17] = PDEF_PTR(75); - Children[18] = PDEF_PTR(76); - Children[19] = PDEF_PTR(78); - Children[20] = PDEF_PTR(80); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(82); - Children[23] = PDEF_PTR(83); - - ParamDefTable[0].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - - ParamDefTable[5].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=13, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(14); - - ParamDefTable[13].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=15, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="destructibleParameters" - { - static Definition* Children[21]; - Children[0] = PDEF_PTR(18); - Children[1] = PDEF_PTR(19); - Children[2] = PDEF_PTR(20); - Children[3] = PDEF_PTR(21); - Children[4] = PDEF_PTR(22); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(24); - Children[7] = PDEF_PTR(25); - Children[8] = PDEF_PTR(26); - Children[9] = PDEF_PTR(27); - Children[10] = PDEF_PTR(28); - Children[11] = PDEF_PTR(29); - Children[12] = PDEF_PTR(30); - Children[13] = PDEF_PTR(31); - Children[14] = PDEF_PTR(32); - Children[15] = PDEF_PTR(33); - Children[16] = PDEF_PTR(34); - Children[17] = PDEF_PTR(35); - Children[18] = PDEF_PTR(42); - Children[19] = PDEF_PTR(43); - Children[20] = PDEF_PTR(44); - - ParamDefTable[17].setChildren(Children, 21); - } - - // SetChildren for: nodeIndex=35, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(36); - Children[1] = PDEF_PTR(37); - Children[2] = PDEF_PTR(38); - Children[3] = PDEF_PTR(39); - Children[4] = PDEF_PTR(40); - Children[5] = PDEF_PTR(41); - - ParamDefTable[35].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(45); - Children[1] = PDEF_PTR(46); - Children[2] = PDEF_PTR(47); - Children[3] = PDEF_PTR(48); - Children[4] = PDEF_PTR(49); - - ParamDefTable[44].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(51); - - ParamDefTable[50].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=51, longName="depthParameters[]" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(52); - Children[1] = PDEF_PTR(53); - Children[2] = PDEF_PTR(54); - Children[3] = PDEF_PTR(55); - Children[4] = PDEF_PTR(56); - Children[5] = PDEF_PTR(57); - Children[6] = PDEF_PTR(58); - Children[7] = PDEF_PTR(59); - - ParamDefTable[51].setChildren(Children, 8); - } - - // SetChildren for: nodeIndex=63, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(64); - - ParamDefTable[63].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(68); - - ParamDefTable[67].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - - ParamDefTable[68].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=73, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(77); - - ParamDefTable[76].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(79); - - ParamDefTable[78].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p7::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p7::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p7::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.damageToPercentDeformation = float(0); - destructibleParameters.deformationPercentLimit = float(1); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p7::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p7::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p7::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p7::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p7.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p7NS; + +const char* const DestructibleAssetParameters_0p7Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 84; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 13, 15, 17, 50, 60, 61, 62, 63, 65, 66, 67, 72, 73, 75, 76, 78, 80, 81, + 82, 83, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 42, 43, 44, 36, 37, 38, 39, 40, 41, 45, 46, 47, 48, + 49, 51, 52, 53, 54, 55, 56, 57, 58, 59, 64, 68, 69, 70, 71, 74, 77, 79, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 21 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToPercentDeformation), NULL, 0 }, // destructibleParameters.damageToPercentDeformation + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->deformationPercentLimit), NULL, 0 }, // destructibleParameters.deformationPercentLimit + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 8 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->TAKE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].TAKE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(76), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(77), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(80), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(81), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(82), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport +}; + + +bool DestructibleAssetParameters_0p7::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p7::mBuiltFlagMutex; + +DestructibleAssetParameters_0p7::DestructibleAssetParameters_0p7(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p7FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p7::~DestructibleAssetParameters_0p7() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p7::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p7(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p7::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p7::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p7* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p7::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p7::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p7::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p7::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p7::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[13].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "If a chunk is at a depth which has NX_DESTRUCTIBLE_TAKE_IMPACT_DAMAGE set", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the realative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see NxDestructibleDepthParametersFlag::TAKE_IMPACT_DAMAGE), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.damageToPercentDeformation" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("damageToPercentDeformation", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it, if damageToPercentDeformation is\npositive. The damage applied to the chunk is multiplied by damageToPercentDeformation, and the resulting\n'percent deformation' is used to translate and rotate the chunk. The translation is the 'percent deformation'\ntimes the size of the chunk, in the direction given by the 'direction' paramater in applyDamage\n(see NxDestructibleActor). For radius damage, the direction is always radial from the impact position.\nThe rotation appplied is the 'percent deformation' times one radian.\nThe default value is zero, which disables deformation.\n", true); + HintTable[1].init("shortDescription", "Damage applied to chunks may deform (move) a chunk without fracturing it", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.deformationPercentLimit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("deformationPercentLimit", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk\'s percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in\neither translation or rotation, then the chunk will fracture.\n", true); + HintTable[1].init("shortDescription", "If a chunk's percent deformation (see damageToPercentDeformation) exceeds deformationPercentLimit in either translation or rotation, then the chunk will fracture.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between these two values, based upon the module\'s LOD setting. To disable\nmaxSeparation, clear the NX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation multiplied by the original\ndestructible asset size. The actual maxSeparation is interpolated between these\ntwo values, based upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].TAKE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("TAKE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.\nNote, NxDestructibleParameters::forceToDamage must also be positive for this\nto take effect.\n", true); + HintTable[1].init("shortDescription", "Chunks at this hierarchy depth level may take impact damage if this flag is set.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(15); + Children[6] = PDEF_PTR(17); + Children[7] = PDEF_PTR(50); + Children[8] = PDEF_PTR(60); + Children[9] = PDEF_PTR(61); + Children[10] = PDEF_PTR(62); + Children[11] = PDEF_PTR(63); + Children[12] = PDEF_PTR(65); + Children[13] = PDEF_PTR(66); + Children[14] = PDEF_PTR(67); + Children[15] = PDEF_PTR(72); + Children[16] = PDEF_PTR(73); + Children[17] = PDEF_PTR(75); + Children[18] = PDEF_PTR(76); + Children[19] = PDEF_PTR(78); + Children[20] = PDEF_PTR(80); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(82); + Children[23] = PDEF_PTR(83); + + ParamDefTable[0].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + + ParamDefTable[5].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=13, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(14); + + ParamDefTable[13].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=15, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="destructibleParameters" + { + static Definition* Children[21]; + Children[0] = PDEF_PTR(18); + Children[1] = PDEF_PTR(19); + Children[2] = PDEF_PTR(20); + Children[3] = PDEF_PTR(21); + Children[4] = PDEF_PTR(22); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(24); + Children[7] = PDEF_PTR(25); + Children[8] = PDEF_PTR(26); + Children[9] = PDEF_PTR(27); + Children[10] = PDEF_PTR(28); + Children[11] = PDEF_PTR(29); + Children[12] = PDEF_PTR(30); + Children[13] = PDEF_PTR(31); + Children[14] = PDEF_PTR(32); + Children[15] = PDEF_PTR(33); + Children[16] = PDEF_PTR(34); + Children[17] = PDEF_PTR(35); + Children[18] = PDEF_PTR(42); + Children[19] = PDEF_PTR(43); + Children[20] = PDEF_PTR(44); + + ParamDefTable[17].setChildren(Children, 21); + } + + // SetChildren for: nodeIndex=35, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(36); + Children[1] = PDEF_PTR(37); + Children[2] = PDEF_PTR(38); + Children[3] = PDEF_PTR(39); + Children[4] = PDEF_PTR(40); + Children[5] = PDEF_PTR(41); + + ParamDefTable[35].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(45); + Children[1] = PDEF_PTR(46); + Children[2] = PDEF_PTR(47); + Children[3] = PDEF_PTR(48); + Children[4] = PDEF_PTR(49); + + ParamDefTable[44].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(51); + + ParamDefTable[50].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=51, longName="depthParameters[]" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(52); + Children[1] = PDEF_PTR(53); + Children[2] = PDEF_PTR(54); + Children[3] = PDEF_PTR(55); + Children[4] = PDEF_PTR(56); + Children[5] = PDEF_PTR(57); + Children[6] = PDEF_PTR(58); + Children[7] = PDEF_PTR(59); + + ParamDefTable[51].setChildren(Children, 8); + } + + // SetChildren for: nodeIndex=63, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(64); + + ParamDefTable[63].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(68); + + ParamDefTable[67].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + + ParamDefTable[68].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=73, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(77); + + ParamDefTable[76].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(79); + + ParamDefTable[78].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p7::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p7::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p7::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.damageToPercentDeformation = float(0); + destructibleParameters.deformationPercentLimit = float(1); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p7::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p7::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p7::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p7::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p8.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p8.cpp old mode 100644 new mode 100755 index cd830f7..7cf3c1e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p8.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p8.cpp @@ -1,2722 +1,2722 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p8.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p8NS; - -const char* const DestructibleAssetParameters_0p8Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 84; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 13, 15, 17, 49, 60, 61, 62, 63, 65, 66, 67, 72, 73, 75, 76, 78, 80, 81, - 82, 83, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 64, 68, 69, 70, 71, 74, 77, 79, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(65), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(66), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(76), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(77), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(80), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(81), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(82), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport -}; - - -bool DestructibleAssetParameters_0p8::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p8::mBuiltFlagMutex; - -DestructibleAssetParameters_0p8::DestructibleAssetParameters_0p8(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p8FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p8::~DestructibleAssetParameters_0p8() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p8::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p8(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p8::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p8::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p8* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p8::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p8::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p8::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p8::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p8::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[13].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[24]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(15); - Children[6] = PDEF_PTR(17); - Children[7] = PDEF_PTR(49); - Children[8] = PDEF_PTR(60); - Children[9] = PDEF_PTR(61); - Children[10] = PDEF_PTR(62); - Children[11] = PDEF_PTR(63); - Children[12] = PDEF_PTR(65); - Children[13] = PDEF_PTR(66); - Children[14] = PDEF_PTR(67); - Children[15] = PDEF_PTR(72); - Children[16] = PDEF_PTR(73); - Children[17] = PDEF_PTR(75); - Children[18] = PDEF_PTR(76); - Children[19] = PDEF_PTR(78); - Children[20] = PDEF_PTR(80); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(82); - Children[23] = PDEF_PTR(83); - - ParamDefTable[0].setChildren(Children, 24); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - - ParamDefTable[5].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=13, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(14); - - ParamDefTable[13].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=15, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(18); - Children[1] = PDEF_PTR(19); - Children[2] = PDEF_PTR(20); - Children[3] = PDEF_PTR(21); - Children[4] = PDEF_PTR(22); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(24); - Children[7] = PDEF_PTR(25); - Children[8] = PDEF_PTR(26); - Children[9] = PDEF_PTR(27); - Children[10] = PDEF_PTR(28); - Children[11] = PDEF_PTR(29); - Children[12] = PDEF_PTR(30); - Children[13] = PDEF_PTR(31); - Children[14] = PDEF_PTR(32); - Children[15] = PDEF_PTR(33); - Children[16] = PDEF_PTR(34); - Children[17] = PDEF_PTR(41); - Children[18] = PDEF_PTR(42); - Children[19] = PDEF_PTR(43); - - ParamDefTable[17].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(35); - Children[1] = PDEF_PTR(36); - Children[2] = PDEF_PTR(37); - Children[3] = PDEF_PTR(38); - Children[4] = PDEF_PTR(39); - Children[5] = PDEF_PTR(40); - - ParamDefTable[34].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(44); - Children[1] = PDEF_PTR(45); - Children[2] = PDEF_PTR(46); - Children[3] = PDEF_PTR(47); - Children[4] = PDEF_PTR(48); - - ParamDefTable[43].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=49, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - Children[5] = PDEF_PTR(56); - Children[6] = PDEF_PTR(57); - Children[7] = PDEF_PTR(58); - Children[8] = PDEF_PTR(59); - - ParamDefTable[50].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(64); - - ParamDefTable[63].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(68); - - ParamDefTable[67].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - - ParamDefTable[68].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=73, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(77); - - ParamDefTable[76].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(79); - - ParamDefTable[78].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p8::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p8::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p8::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p8::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p8::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } -} - -void DestructibleAssetParameters_0p8::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p8::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p8.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p8NS; + +const char* const DestructibleAssetParameters_0p8Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 84; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 13, 15, 17, 49, 60, 61, 62, 63, 65, 66, 67, 72, 73, 75, 76, 78, 80, 81, + 82, 83, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, 48, + 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 64, 68, 69, 70, 71, 74, 77, 79, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 24 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(24), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(25), 7 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(32), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(33), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(34), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(54), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(60), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(65), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(66), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(75), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(76), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(77), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(80), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(81), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(82), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport +}; + + +bool DestructibleAssetParameters_0p8::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p8::mBuiltFlagMutex; + +DestructibleAssetParameters_0p8::DestructibleAssetParameters_0p8(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p8FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p8::~DestructibleAssetParameters_0p8() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p8::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p8(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p8::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p8::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p8* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p8::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p8::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p8::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p8::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p8::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[13].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[24]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(15); + Children[6] = PDEF_PTR(17); + Children[7] = PDEF_PTR(49); + Children[8] = PDEF_PTR(60); + Children[9] = PDEF_PTR(61); + Children[10] = PDEF_PTR(62); + Children[11] = PDEF_PTR(63); + Children[12] = PDEF_PTR(65); + Children[13] = PDEF_PTR(66); + Children[14] = PDEF_PTR(67); + Children[15] = PDEF_PTR(72); + Children[16] = PDEF_PTR(73); + Children[17] = PDEF_PTR(75); + Children[18] = PDEF_PTR(76); + Children[19] = PDEF_PTR(78); + Children[20] = PDEF_PTR(80); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(82); + Children[23] = PDEF_PTR(83); + + ParamDefTable[0].setChildren(Children, 24); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + + ParamDefTable[5].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=13, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(14); + + ParamDefTable[13].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=15, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(18); + Children[1] = PDEF_PTR(19); + Children[2] = PDEF_PTR(20); + Children[3] = PDEF_PTR(21); + Children[4] = PDEF_PTR(22); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(24); + Children[7] = PDEF_PTR(25); + Children[8] = PDEF_PTR(26); + Children[9] = PDEF_PTR(27); + Children[10] = PDEF_PTR(28); + Children[11] = PDEF_PTR(29); + Children[12] = PDEF_PTR(30); + Children[13] = PDEF_PTR(31); + Children[14] = PDEF_PTR(32); + Children[15] = PDEF_PTR(33); + Children[16] = PDEF_PTR(34); + Children[17] = PDEF_PTR(41); + Children[18] = PDEF_PTR(42); + Children[19] = PDEF_PTR(43); + + ParamDefTable[17].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(35); + Children[1] = PDEF_PTR(36); + Children[2] = PDEF_PTR(37); + Children[3] = PDEF_PTR(38); + Children[4] = PDEF_PTR(39); + Children[5] = PDEF_PTR(40); + + ParamDefTable[34].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(44); + Children[1] = PDEF_PTR(45); + Children[2] = PDEF_PTR(46); + Children[3] = PDEF_PTR(47); + Children[4] = PDEF_PTR(48); + + ParamDefTable[43].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=49, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + Children[5] = PDEF_PTR(56); + Children[6] = PDEF_PTR(57); + Children[7] = PDEF_PTR(58); + Children[8] = PDEF_PTR(59); + + ParamDefTable[50].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(64); + + ParamDefTable[63].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(68); + + ParamDefTable[67].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + + ParamDefTable[68].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=73, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(77); + + ParamDefTable[76].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(79); + + ParamDefTable[78].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p8::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p8::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p8::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p8::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p8::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } +} + +void DestructibleAssetParameters_0p8::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p8::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p9.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p9.cpp old mode 100644 new mode 100755 index 5a1cb4c..3da3d81 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p9.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleAssetParameters_0p9.cpp @@ -1,2787 +1,2787 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleAssetParameters_0p9.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleAssetParameters_0p9NS; - -const char* const DestructibleAssetParameters_0p9Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 86; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 13, 15, 17, 49, 60, 61, 62, 63, 65, 66, 67, 72, 73, 75, 76, 78, 80, 81, - 82, 83, 84, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, - 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 64, 68, 69, 70, 71, 74, 77, 79, 85, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 25 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount - { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(25), 1 }, // chunks - { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(26), 7 }, // chunks[] - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex - { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags - { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(33), 1 }, // chunkConvexHulls - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(34), 1 }, // chunkConvexHullStartIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(35), 20 }, // destructibleParameters - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth - { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth - { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax - { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS - { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS - { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale - { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup - { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask - { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 - { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters - { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 9 }, // depthParameters[] - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 - { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName - { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(76), 1 }, // surfaceTraceSets - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(77), 1 }, // chunkInstanceInfo - { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(78), 3 }, // chunkInstanceInfo[] - { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex - { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset - { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset - { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(81), 1 }, // staticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(82), 1 }, // overlapsAtDepth - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(83), 1 }, // firstChunkAtDepth - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(84), 1 }, // actorTransforms - { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] -}; - - -bool DestructibleAssetParameters_0p9::mBuiltFlag = false; -NvParameterized::MutexType DestructibleAssetParameters_0p9::mBuiltFlagMutex; - -DestructibleAssetParameters_0p9::DestructibleAssetParameters_0p9(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p9FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleAssetParameters_0p9::~DestructibleAssetParameters_0p9() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleAssetParameters_0p9::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleAssetParameters_0p9(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p9::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p9::getParameterDefinitionTree(void) const -{ - DestructibleAssetParameters_0p9* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p9::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleAssetParameters_0p9::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleAssetParameters_0p9::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - chunkConvexHulls (not an array of structs) */ -/* [0] - surfaceTraceSets (not an array of structs) */ -/* [0] - staticMaterialNames (not an array of structs) */ -/* [0] - overlapsAtDepth (not an array of structs) */ - -void DestructibleAssetParameters_0p9::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleAssetParameters_0p9::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("depthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); - HintTable[1].init("shortDescription", "The number of chunk depth levels", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); - HintTable[1].init("shortDescription", "The depth count when authored", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); - HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("chunks", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); - HintTable[1].init("shortDescription", "The array of chunks", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("depth", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); - HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("parentIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); - HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); - HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("numChildren", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); - HintTable[1].init("shortDescription", "This chunk's number of children", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); - HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("flags", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); - HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].surfaceNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); - HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="chunkConvexHulls" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[13].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); - HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "ConvexHullParameters" }; - ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHullStartIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); - HintTable[1].init("shortDescription", "Map into array of convex hulls", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("damageThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); - HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("damageToRadius", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); - HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("damageCap", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); - HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("forceToDamage", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); - HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); - HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; - ParamDef->init("materialStrength", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); - HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); - ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.minimumFractureDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; - ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); - HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); - ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactDamageDefaultDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; - ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); - HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); - ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; - ParamDef->init("debrisDepth", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); - ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; - ParamDef->init("essentialDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); - ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; - ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); - ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; - ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); - ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; - ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; - ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); - HintTable[1].init("shortDescription", "Minimum separation distance", true); - ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; - ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); - HintTable[1].init("shortDescription", "valid bounding region for debris", true); - ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; - ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); - HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); - ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; - ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); - HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); - ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; - ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); - HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); - ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; - ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); - ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; - ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); - HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); - ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; - ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); - HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); - ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; - ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); - HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); - ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; - ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); - HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); - ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; - ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); - HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); - ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; - ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); - HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); - ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; - ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); - HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); - ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; - ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); - HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); - ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; - ParamDef->init("bits0", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits0 of the groups mask", true); - ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; - ParamDef->init("bits1", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits1 of the groups mask", true); - ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; - ParamDef->init("bits2", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits2 of the groups mask", true); - ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; - ParamDef->init("bits3", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); - HintTable[1].init("shortDescription", "bits3 of the groups mask", true); - ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; - ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; - ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); - HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); - ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); - HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); - ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; - ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); - HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); - ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; - ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); - ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; - ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); - ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; - ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); - HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); - ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; - ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; - ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; - ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; - ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "User defined flag.\n", true); - HintTable[1].init("shortDescription", "User defined flag.", true); - ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=60, longName="crumbleEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; - ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); - HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); - ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=61, longName="dustEmitterName" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; - ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); - HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); - ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=62, longName="collisionData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; - ParamDef->init("collisionData", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); - HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); - ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; - ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; - ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; - ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); - HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); - ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; - ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; - ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The included render mesh asset.", true); - HintTable[2].init("shortDescription", "The included render mesh asset", true); - ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; - ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; - ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); - HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); - ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; - ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; - ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); - HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); - ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; - ParamDef->init("partIndex", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The part instanced for this chunk.", true); - HintTable[1].init("shortDescription", "The part instanced for this chunk", true); - ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; - ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); - HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); - ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; - ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); - HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); - ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; - ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); - HintTable[1].init("shortDescription", "The index of the interior submesh", true); - ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; - ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; - ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); - HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); - ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; - ParamDef->init("neighborPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); - HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); - ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; - ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; - ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); - HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); - ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "CachedOverlaps" }; - ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; - ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; - ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); - HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); - ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; - ParamDef->init("supportDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); - HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); - ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; - ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); - HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); - ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; - ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); - ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; - ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); - HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); - ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=84, longName="actorTransforms" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; - ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=85, longName="actorTransforms[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; - ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); - HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); - ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[25]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(13); - Children[5] = PDEF_PTR(15); - Children[6] = PDEF_PTR(17); - Children[7] = PDEF_PTR(49); - Children[8] = PDEF_PTR(60); - Children[9] = PDEF_PTR(61); - Children[10] = PDEF_PTR(62); - Children[11] = PDEF_PTR(63); - Children[12] = PDEF_PTR(65); - Children[13] = PDEF_PTR(66); - Children[14] = PDEF_PTR(67); - Children[15] = PDEF_PTR(72); - Children[16] = PDEF_PTR(73); - Children[17] = PDEF_PTR(75); - Children[18] = PDEF_PTR(76); - Children[19] = PDEF_PTR(78); - Children[20] = PDEF_PTR(80); - Children[21] = PDEF_PTR(81); - Children[22] = PDEF_PTR(82); - Children[23] = PDEF_PTR(83); - Children[24] = PDEF_PTR(84); - - ParamDefTable[0].setChildren(Children, 25); - } - - // SetChildren for: nodeIndex=4, longName="chunks" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="chunks[]" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(6); - Children[1] = PDEF_PTR(7); - Children[2] = PDEF_PTR(8); - Children[3] = PDEF_PTR(9); - Children[4] = PDEF_PTR(10); - Children[5] = PDEF_PTR(11); - Children[6] = PDEF_PTR(12); - - ParamDefTable[5].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=13, longName="chunkConvexHulls" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(14); - - ParamDefTable[13].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=15, longName="chunkConvexHullStartIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(16); - - ParamDefTable[15].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=17, longName="destructibleParameters" - { - static Definition* Children[20]; - Children[0] = PDEF_PTR(18); - Children[1] = PDEF_PTR(19); - Children[2] = PDEF_PTR(20); - Children[3] = PDEF_PTR(21); - Children[4] = PDEF_PTR(22); - Children[5] = PDEF_PTR(23); - Children[6] = PDEF_PTR(24); - Children[7] = PDEF_PTR(25); - Children[8] = PDEF_PTR(26); - Children[9] = PDEF_PTR(27); - Children[10] = PDEF_PTR(28); - Children[11] = PDEF_PTR(29); - Children[12] = PDEF_PTR(30); - Children[13] = PDEF_PTR(31); - Children[14] = PDEF_PTR(32); - Children[15] = PDEF_PTR(33); - Children[16] = PDEF_PTR(34); - Children[17] = PDEF_PTR(41); - Children[18] = PDEF_PTR(42); - Children[19] = PDEF_PTR(43); - - ParamDefTable[17].setChildren(Children, 20); - } - - // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(35); - Children[1] = PDEF_PTR(36); - Children[2] = PDEF_PTR(37); - Children[3] = PDEF_PTR(38); - Children[4] = PDEF_PTR(39); - Children[5] = PDEF_PTR(40); - - ParamDefTable[34].setChildren(Children, 6); - } - - // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(44); - Children[1] = PDEF_PTR(45); - Children[2] = PDEF_PTR(46); - Children[3] = PDEF_PTR(47); - Children[4] = PDEF_PTR(48); - - ParamDefTable[43].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=49, longName="depthParameters" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(50); - - ParamDefTable[49].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=50, longName="depthParameters[]" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(51); - Children[1] = PDEF_PTR(52); - Children[2] = PDEF_PTR(53); - Children[3] = PDEF_PTR(54); - Children[4] = PDEF_PTR(55); - Children[5] = PDEF_PTR(56); - Children[6] = PDEF_PTR(57); - Children[7] = PDEF_PTR(58); - Children[8] = PDEF_PTR(59); - - ParamDefTable[50].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=63, longName="surfaceTraceSets" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(64); - - ParamDefTable[63].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(68); - - ParamDefTable[67].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(69); - Children[1] = PDEF_PTR(70); - Children[2] = PDEF_PTR(71); - - ParamDefTable[68].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=73, longName="staticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(74); - - ParamDefTable[73].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(77); - - ParamDefTable[76].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(79); - - ParamDefTable[78].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=84, longName="actorTransforms" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(85); - - ParamDefTable[84].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructibleAssetParameters_0p9::initStrings(void) -{ - crumbleEmitterName.isAllocated = true; - crumbleEmitterName.buf = NULL; - dustEmitterName.isAllocated = true; - dustEmitterName.buf = NULL; -} - -void DestructibleAssetParameters_0p9::initDynamicArrays(void) -{ - chunks.buf = NULL; - chunks.isAllocated = true; - chunks.elementSize = sizeof(Chunk_Type); - chunks.arraySizes[0] = 0; - chunkConvexHulls.buf = NULL; - chunkConvexHulls.isAllocated = true; - chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); - chunkConvexHulls.arraySizes[0] = 0; - chunkConvexHullStartIndices.buf = NULL; - chunkConvexHullStartIndices.isAllocated = true; - chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); - chunkConvexHullStartIndices.arraySizes[0] = 0; - depthParameters.buf = NULL; - depthParameters.isAllocated = true; - depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); - depthParameters.arraySizes[0] = 0; - surfaceTraceSets.buf = NULL; - surfaceTraceSets.isAllocated = true; - surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); - surfaceTraceSets.arraySizes[0] = 0; - chunkInstanceInfo.buf = NULL; - chunkInstanceInfo.isAllocated = true; - chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); - chunkInstanceInfo.arraySizes[0] = 0; - staticMaterialNames.buf = NULL; - staticMaterialNames.isAllocated = true; - staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - staticMaterialNames.arraySizes[0] = 0; - overlapsAtDepth.buf = NULL; - overlapsAtDepth.isAllocated = true; - overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); - overlapsAtDepth.arraySizes[0] = 0; - firstChunkAtDepth.buf = NULL; - firstChunkAtDepth.isAllocated = true; - firstChunkAtDepth.elementSize = sizeof(uint32_t); - firstChunkAtDepth.arraySizes[0] = 0; - actorTransforms.buf = NULL; - actorTransforms.isAllocated = true; - actorTransforms.elementSize = sizeof(physx::PxMat44); - actorTransforms.arraySizes[0] = 0; -} - -void DestructibleAssetParameters_0p9::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - depthCount = uint32_t(0); - originalDepthCount = uint32_t(0); - destructibleParameters.damageThreshold = float(1); - destructibleParameters.damageToRadius = float(0.1); - destructibleParameters.damageCap = float(0); - destructibleParameters.forceToDamage = float(0); - destructibleParameters.impactVelocityThreshold = float(0); - destructibleParameters.materialStrength = float(0); - destructibleParameters.minimumFractureDepth = uint32_t(0); - destructibleParameters.impactDamageDefaultDepth = int32_t(-1); - destructibleParameters.debrisDepth = int32_t(-1); - destructibleParameters.essentialDepth = uint32_t(0); - destructibleParameters.debrisLifetimeMin = float(1); - destructibleParameters.debrisLifetimeMax = float(10); - destructibleParameters.debrisMaxSeparationMin = float(1); - destructibleParameters.debrisMaxSeparationMax = float(10); - destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); - destructibleParameters.maxChunkSpeed = float(0); - destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); - destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); - destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); - destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); - destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); - destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); - destructibleParameters.fractureImpulseScale = float(0); - destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); - destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); - destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); - destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); - initialDestructibleActorAllowanceForInstancing = uint32_t(0); - interiorSubmeshIndex = int32_t(-1); - neighborPadding = float(0.001); - supportDepth = uint32_t(0); - formExtendedStructures = bool(false); - useAssetDefinedSupport = bool(false); - useWorldSupport = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleAssetParameters_0p9::initReferences(void) -{ - collisionData = NULL; - - renderMeshAsset = NULL; - -} - -void DestructibleAssetParameters_0p9::freeDynamicArrays(void) -{ - if (chunks.isAllocated && chunks.buf) - { - mParameterizedTraits->free(chunks.buf); - } - if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) - { - mParameterizedTraits->free(chunkConvexHulls.buf); - } - if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) - { - mParameterizedTraits->free(chunkConvexHullStartIndices.buf); - } - if (depthParameters.isAllocated && depthParameters.buf) - { - mParameterizedTraits->free(depthParameters.buf); - } - if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) - { - mParameterizedTraits->free(surfaceTraceSets.buf); - } - if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) - { - mParameterizedTraits->free(chunkInstanceInfo.buf); - } - if (staticMaterialNames.isAllocated && staticMaterialNames.buf) - { - mParameterizedTraits->free(staticMaterialNames.buf); - } - if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) - { - mParameterizedTraits->free(overlapsAtDepth.buf); - } - if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) - { - mParameterizedTraits->free(firstChunkAtDepth.buf); - } - if (actorTransforms.isAllocated && actorTransforms.buf) - { - mParameterizedTraits->free(actorTransforms.buf); - } -} - -void DestructibleAssetParameters_0p9::freeStrings(void) -{ - - if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) - { - mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); - } - - if (dustEmitterName.isAllocated && dustEmitterName.buf) - { - mParameterizedTraits->strfree((char*)dustEmitterName.buf); - } - - for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) - { - if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); - } - } -} - -void DestructibleAssetParameters_0p9::freeReferences(void) -{ - - for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) - { - if (chunkConvexHulls.buf[i]) - { - chunkConvexHulls.buf[i]->destroy(); - } - } - if (collisionData) - { - collisionData->destroy(); - } - - - for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) - { - if (surfaceTraceSets.buf[i]) - { - surfaceTraceSets.buf[i]->destroy(); - } - } - if (renderMeshAsset) - { - renderMeshAsset->destroy(); - } - - - for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) - { - if (overlapsAtDepth.buf[i]) - { - overlapsAtDepth.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleAssetParameters_0p9.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleAssetParameters_0p9NS; + +const char* const DestructibleAssetParameters_0p9Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 86; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 13, 15, 17, 49, 60, 61, 62, 63, 65, 66, 67, 72, 73, 75, 76, 78, 80, 81, + 82, 83, 84, 5, 6, 7, 8, 9, 10, 11, 12, 14, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 41, 42, 43, 35, 36, 37, 38, 39, 40, 44, 45, 46, 47, + 48, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 64, 68, 69, 70, 71, 74, 77, 79, 85, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 25 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->depthCount), NULL, 0 }, // depthCount + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->originalDepthCount), NULL, 0 }, // originalDepthCount + { TYPE_BOUNDS3, false, (size_t)(&((ParametersStruct*)0)->bounds), NULL, 0 }, // bounds + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunks), CHILDREN(25), 1 }, // chunks + { TYPE_STRUCT, false, 1 * sizeof(Chunk_Type), CHILDREN(26), 7 }, // chunks[] + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->depth), NULL, 0 }, // chunks[].depth + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->parentIndex), NULL, 0 }, // chunks[].parentIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->firstChildIndex), NULL, 0 }, // chunks[].firstChildIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->numChildren), NULL, 0 }, // chunks[].numChildren + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->meshPartIndex), NULL, 0 }, // chunks[].meshPartIndex + { TYPE_U16, false, (size_t)(&((Chunk_Type*)0)->flags), NULL, 0 }, // chunks[].flags + { TYPE_VEC3, false, (size_t)(&((Chunk_Type*)0)->surfaceNormal), NULL, 0 }, // chunks[].surfaceNormal + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHulls), CHILDREN(33), 1 }, // chunkConvexHulls + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // chunkConvexHulls[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkConvexHullStartIndices), CHILDREN(34), 1 }, // chunkConvexHullStartIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // chunkConvexHullStartIndices[] + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->destructibleParameters), CHILDREN(35), 20 }, // destructibleParameters + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageThreshold), NULL, 0 }, // destructibleParameters.damageThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageToRadius), NULL, 0 }, // destructibleParameters.damageToRadius + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->damageCap), NULL, 0 }, // destructibleParameters.damageCap + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->forceToDamage), NULL, 0 }, // destructibleParameters.forceToDamage + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactVelocityThreshold), NULL, 0 }, // destructibleParameters.impactVelocityThreshold + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->materialStrength), NULL, 0 }, // destructibleParameters.materialStrength + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->minimumFractureDepth), NULL, 0 }, // destructibleParameters.minimumFractureDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->impactDamageDefaultDepth), NULL, 0 }, // destructibleParameters.impactDamageDefaultDepth + { TYPE_I32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisDepth), NULL, 0 }, // destructibleParameters.debrisDepth + { TYPE_U32, false, (size_t)(&((DestructibleParameters_Type*)0)->essentialDepth), NULL, 0 }, // destructibleParameters.essentialDepth + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMin), NULL, 0 }, // destructibleParameters.debrisLifetimeMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisLifetimeMax), NULL, 0 }, // destructibleParameters.debrisLifetimeMax + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMin), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMin + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->debrisMaxSeparationMax), NULL, 0 }, // destructibleParameters.debrisMaxSeparationMax + { TYPE_BOUNDS3, false, (size_t)(&((DestructibleParameters_Type*)0)->validBounds), NULL, 0 }, // destructibleParameters.validBounds + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->maxChunkSpeed), NULL, 0 }, // destructibleParameters.maxChunkSpeed + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->flags), CHILDREN(55), 6 }, // destructibleParameters.flags + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCUMULATE_DAMAGE), NULL, 0 }, // destructibleParameters.flags.ACCUMULATE_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_TIMEOUT), NULL, 0 }, // destructibleParameters.flags.DEBRIS_TIMEOUT + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->DEBRIS_MAX_SEPARATION), NULL, 0 }, // destructibleParameters.flags.DEBRIS_MAX_SEPARATION + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->CRUMBLE_SMALLEST_CHUNKS), NULL, 0 }, // destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->ACCURATE_RAYCASTS), NULL, 0 }, // destructibleParameters.flags.ACCURATE_RAYCASTS + { TYPE_BOOL, false, (size_t)(&((DestructibleParametersFlag_Type*)0)->USE_VALID_BOUNDS), NULL, 0 }, // destructibleParameters.flags.USE_VALID_BOUNDS + { TYPE_F32, false, (size_t)(&((DestructibleParameters_Type*)0)->fractureImpulseScale), NULL, 0 }, // destructibleParameters.fractureImpulseScale + { TYPE_U16, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunkDominanceGroup), NULL, 0 }, // destructibleParameters.dynamicChunkDominanceGroup + { TYPE_STRUCT, false, (size_t)(&((DestructibleParameters_Type*)0)->dynamicChunksGroupsMask), CHILDREN(61), 5 }, // destructibleParameters.dynamicChunksGroupsMask + { TYPE_BOOL, false, (size_t)(&((GroupsMask_Type*)0)->useGroupsMask), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.useGroupsMask + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits0), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits0 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits1), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits1 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits2), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits2 + { TYPE_U32, false, (size_t)(&((GroupsMask_Type*)0)->bits3), NULL, 0 }, // destructibleParameters.dynamicChunksGroupsMask.bits3 + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->depthParameters), CHILDREN(66), 1 }, // depthParameters + { TYPE_STRUCT, false, 1 * sizeof(DestructibleDepthParameters_Type), CHILDREN(67), 9 }, // depthParameters[] + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->OVERRIDE_IMPACT_DAMAGE_VALUE), NULL, 0 }, // depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_POSE_UPDATES), NULL, 0 }, // depthParameters[].IGNORE_POSE_UPDATES + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_RAYCAST_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_RAYCAST_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->IGNORE_CONTACT_CALLBACKS), NULL, 0 }, // depthParameters[].IGNORE_CONTACT_CALLBACKS + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_0), NULL, 0 }, // depthParameters[].USER_FLAG_0 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_1), NULL, 0 }, // depthParameters[].USER_FLAG_1 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_2), NULL, 0 }, // depthParameters[].USER_FLAG_2 + { TYPE_BOOL, false, (size_t)(&((DestructibleDepthParameters_Type*)0)->USER_FLAG_3), NULL, 0 }, // depthParameters[].USER_FLAG_3 + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->crumbleEmitterName), NULL, 0 }, // crumbleEmitterName + { TYPE_STRING, false, (size_t)(&((ParametersStruct*)0)->dustEmitterName), NULL, 0 }, // dustEmitterName + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->collisionData), NULL, 0 }, // collisionData + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->surfaceTraceSets), CHILDREN(76), 1 }, // surfaceTraceSets + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // surfaceTraceSets[] + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->renderMeshAsset), NULL, 0 }, // renderMeshAsset + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->initialDestructibleActorAllowanceForInstancing), NULL, 0 }, // initialDestructibleActorAllowanceForInstancing + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->chunkInstanceInfo), CHILDREN(77), 1 }, // chunkInstanceInfo + { TYPE_STRUCT, false, 1 * sizeof(InstanceInfo_Type), CHILDREN(78), 3 }, // chunkInstanceInfo[] + { TYPE_U16, false, (size_t)(&((InstanceInfo_Type*)0)->partIndex), NULL, 0 }, // chunkInstanceInfo[].partIndex + { TYPE_VEC3, false, (size_t)(&((InstanceInfo_Type*)0)->chunkPositionOffset), NULL, 0 }, // chunkInstanceInfo[].chunkPositionOffset + { TYPE_VEC2, false, (size_t)(&((InstanceInfo_Type*)0)->chunkUVOffset), NULL, 0 }, // chunkInstanceInfo[].chunkUVOffset + { TYPE_I32, false, (size_t)(&((ParametersStruct*)0)->interiorSubmeshIndex), NULL, 0 }, // interiorSubmeshIndex + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->staticMaterialNames), CHILDREN(81), 1 }, // staticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // staticMaterialNames[] + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->neighborPadding), NULL, 0 }, // neighborPadding + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overlapsAtDepth), CHILDREN(82), 1 }, // overlapsAtDepth + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // overlapsAtDepth[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->firstChunkAtDepth), CHILDREN(83), 1 }, // firstChunkAtDepth + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // firstChunkAtDepth[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->supportDepth), NULL, 0 }, // supportDepth + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->formExtendedStructures), NULL, 0 }, // formExtendedStructures + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useAssetDefinedSupport), NULL, 0 }, // useAssetDefinedSupport + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->useWorldSupport), NULL, 0 }, // useWorldSupport + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->actorTransforms), CHILDREN(84), 1 }, // actorTransforms + { TYPE_MAT44, false, 1 * sizeof(physx::PxMat44), NULL, 0 }, // actorTransforms[] +}; + + +bool DestructibleAssetParameters_0p9::mBuiltFlag = false; +NvParameterized::MutexType DestructibleAssetParameters_0p9::mBuiltFlagMutex; + +DestructibleAssetParameters_0p9::DestructibleAssetParameters_0p9(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleAssetParameters_0p9FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleAssetParameters_0p9::~DestructibleAssetParameters_0p9() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleAssetParameters_0p9::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleAssetParameters_0p9(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p9::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleAssetParameters_0p9::getParameterDefinitionTree(void) const +{ + DestructibleAssetParameters_0p9* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p9::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleAssetParameters_0p9::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleAssetParameters_0p9::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - chunkConvexHulls (not an array of structs) */ +/* [0] - surfaceTraceSets (not an array of structs) */ +/* [0] - staticMaterialNames (not an array of structs) */ +/* [0] - overlapsAtDepth (not an array of structs) */ + +void DestructibleAssetParameters_0p9::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleAssetParameters_0p9::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="depthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("depthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of chunk depth levels. This is 1 for an unfractured mesh.", true); + HintTable[1].init("shortDescription", "The number of chunk depth levels", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="originalDepthCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("originalDepthCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth count when authored - this way we can tell how far it's been reduced.", true); + HintTable[1].init("shortDescription", "The depth count when authored", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The axis-aligned bounding box of the destructible asset. This is the smallest AABB\n which contains all chunk AABBs.", true); + HintTable[1].init("shortDescription", "The AABB of the destructible asset", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="chunks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("chunks", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="chunks[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("chunks", TYPE_STRUCT, "Chunk", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The array of chunks. Chunks are stored breadth-first in their hierarchy.", true); + HintTable[1].init("shortDescription", "The array of chunks", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="chunks[].depth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("depth", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The depth of the chunk in the hierarchy.\n Level 0 chunks correspond to the unfractured (original) mesh. Level 1 chunks\n are their children, formed by splitting level 0 chunks, etc.", true); + HintTable[1].init("shortDescription", "The depth of the chunk in the hierarchy", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="chunks[].parentIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("parentIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the chunk's parent in the hierarchy.\n If the chunk has no parent (its depth is 0), then the parentIndex is -1.", true); + HintTable[1].init("shortDescription", "The index of the chunk's parent in the hierarchy", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="chunks[].firstChildIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("firstChildIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of this chunk's first child in the hierarchy.\n All children have contiguous chunk indices, and lie in the range\n [firstChildIndex,firstChildIndex+numChildren-1]. If the chunk has no children,\n this value is undefined.", true); + HintTable[1].init("shortDescription", "The index of this chunk's first child in the hierarchy", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="chunks[].numChildren" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("numChildren", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This chunk's number of children. If not 0, firstChildIndex\n is valid (see firstChildIndex).", true); + HintTable[1].init("shortDescription", "This chunk's number of children", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="chunks[].meshPartIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("meshPartIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If this chunk is not instanced, this is the corresponding mesh part for this chunk,\n in the NxApexRenderMeshAsset included within this destructible asset. If this chunk is instanced,\n this refers to the InstanceInfo in the asset (see InstanceInfo).", true); + HintTable[1].init("shortDescription", "The corresponding mesh part for this chunk", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="chunks[].flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("flags", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("longDescription", "Flags which define individual chunk attributes, such as support,\n fractureability, etc.", true); + HintTable[2].init("shortDescription", "Flags which define individual chunk attributes", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="chunks[].surfaceNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("surfaceNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal of this chunk. This is the normalized\n average of all triangle normals which are part of the original (unfractured) mesh.", true); + HintTable[1].init("shortDescription", "The average surface normal of this chunk", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="chunkConvexHulls" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("chunkConvexHulls", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[13].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="chunkConvexHulls[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("chunkConvexHulls", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Convex hull data for each chunk. This is not cooked convex hull data\n used for PhysX collision. These hulls are used to (a) create cooked PhysX convex hulls, and (b)\n for APEX scene queries.", true); + HintTable[2].init("shortDescription", "Convex hull data for each chunk", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "ConvexHullParameters" }; + ParamDefTable[14].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="chunkConvexHullStartIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="chunkConvexHullStartIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("chunkConvexHullStartIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Map into array of convex hulls. The convex hulls for chunk i are in\n the chunkConvexHulls array, starting at chunkConvexHulls[i], and ending at chunkConvexHulls[i+1]-1.\n The array length is one greater than that of chunkConvexHulls.", true); + HintTable[1].init("shortDescription", "Map into array of convex hulls", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="destructibleParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("destructibleParameters", TYPE_STRUCT, "DestructibleParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible properties for this asset. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible properties for this asset", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="destructibleParameters.damageThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("damageThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.\nThis is obtained from the damage value passed into the NxDestructibleActor::applyDamage,\nor NxDestructibleActor::applyRadiusDamage, or via impact (see 'forceToDamage', below).\n", true); + HintTable[1].init("shortDescription", "The damage amount which will cause a chunk to fracture (break free) from the destructible.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="destructibleParameters.damageToRadius" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("damageToRadius", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Controls the distance into the destructible to propagate damage. The damage applied to the chunk\nis multiplied by damageToRadius, to get the propagation distance. All chunks within the radius\nwill have damage applied to them. The damage applied to each chunk varies with distance to the damage\napplication position. Full damage is taken at zero distance, and zero damage at the damage radius.\n", true); + HintTable[1].init("shortDescription", "Controls the distance into the destructible to propagate damage.", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="destructibleParameters.damageCap" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("damageCap", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Limits the amount of damage applied to a chunk. This is useful for preventing the entire destructible\nfrom getting pulverized by a very large application of damage. This can easily happen when impact damage is\nused, and the damage amount is proportional to the impact force (see forceToDamage).\n", true); + HintTable[1].init("shortDescription", "Limits the amount of damage applied to a chunk.", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="destructibleParameters.forceToDamage" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("forceToDamage", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If a chunk is at a depth which takes impact damage (see NxDestructibleDepthParameters),\nthen when a chunk has a collision in the NxScene, it will take damage equal to forceToDamage mulitplied by\nthe impact force.\nThe default value is zero, which effectively disables impact damage.\n", true); + HintTable[1].init("shortDescription", "Multiplier to calculate applied damage from an impact.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="destructibleParameters.impactVelocityThreshold" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("impactVelocityThreshold", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Large impact force may be reported if rigid bodies are spawned inside one another. In this case the relative velocity of the two\nobjects will be low. This variable allows the user to set a minimum velocity threshold for impacts to ensure that the objects are\nmoving at a min velocity in order for the impact force to be considered.\n", true); + HintTable[1].init("shortDescription", "Large impact force may be reported if rigid bodies are spawned inside one another.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=23, longName="destructibleParameters.materialStrength" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[23]; + ParamDef->init("materialStrength", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "When a chunk takes impact damage due to physical contact (see see NxDestructibleDepthParameters), this parameter\nis the maximum impulse the contact can generate. Weak materials such as glass may have this set to a low value, so that\nheavier objects will pass through them during fracture.\nN.B.: Setting this parameter to 0 disables the impulse cap; that is, zero is interpreted as infinite.\nDefault value = 0.0f.\n", true); + HintTable[1].init("shortDescription", "When a chunk takes impact, this is the maximum impulse the contact can generate.", true); + ParamDefTable[23].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=24, longName="destructibleParameters.minimumFractureDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[24]; + ParamDef->init("minimumFractureDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks will not be broken free below this depth.\n", true); + HintTable[1].init("shortDescription", "The chunks will not be broken free below this depth.", true); + ParamDefTable[24].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=25, longName="destructibleParameters.impactDamageDefaultDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[25]; + ParamDef->init("impactDamageDefaultDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default depth to which chunks will take impact damage. This default may be overridden in the depth settings.\n", true); + HintTable[1].init("shortDescription", "The default depth to which chunks will take impact damage.", true); + ParamDefTable[25].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=26, longName="destructibleParameters.debrisDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[26]; + ParamDef->init("debrisDepth", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.' Chunks at this depth or\nbelow will be considered for various debris settings, such as debrisLifetime.\nNegative values indicate that no chunk depth is considered debris.\nDefault value is -1.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which chunks are considered to be 'debris.'", true); + ParamDefTable[26].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=27, longName="destructibleParameters.essentialDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[27]; + ParamDef->init("essentialDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth up to which chunks will always be processed. These chunks are considered\nto be essential either for gameplay or visually.\nThe minimum value is 0, meaning the level 0 chunk is always considered essential.\nDefault value is 0.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth up to which chunks will always be processed", true); + ParamDefTable[27].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=28, longName="destructibleParameters.debrisLifetimeMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[28]; + ParamDef->init("debrisLifetimeMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin and debrisLifetimeMax (see below), based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum time to destroy debris", true); + ParamDefTable[28].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=29, longName="destructibleParameters.debrisLifetimeMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[29]; + ParamDef->init("debrisLifetimeMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed after a time (in seconds)\nseparated from non-debris chunks. The actual lifetime is interpolated between\ndebrisLifetimeMin (see above) and debrisLifetimeMax, based upon the module\'s LOD setting.\nTo disable lifetime, clear the NxDestructibleDepthParametersFlag::DEBRIS_TIMEOUT\nflag in the flags field. If debrisLifetimeMax < debrisLifetimeMin, the mean of the two\nis used for both.\nDefault debrisLifetimeMin = 1.0, debrisLifetimeMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Maximum time to destroy debris", true); + ParamDefTable[29].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=30, longName="destructibleParameters.debrisMaxSeparationMin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[30]; + ParamDef->init("debrisMaxSeparationMin", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin and debrisMaxSeparationMax (see below),\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[30].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=31, longName="destructibleParameters.debrisMaxSeparationMax" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[31]; + ParamDef->init("debrisMaxSeparationMax", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "'Debris chunks' (see debrisDepth, above) will be destroyed if they are separated from\ntheir origin by a distance greater than maxSeparation. The actual maxSeparation is\ninterpolated between debrisMaxSeparationMin (see above) and debrisMaxSeparationMax,\nbased upon the module\'s LOD setting. To disable maxSeparation, clear the\nNX_DESTRUCTIBLE_DEBRIS_MAX_SEPARATION flag in the flags field.\nIf debrisMaxSeparationMax < debrisMaxSeparationMin, the mean of the two is used for both.\nDefault debrisMaxSeparationMin = 1.0, debrisMaxSeparationMax = 10.0f.\n", true); + HintTable[1].init("shortDescription", "Minimum separation distance", true); + ParamDefTable[31].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=32, longName="destructibleParameters.validBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[32]; + ParamDef->init("validBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A bounding box around each NxDestructibleActor created, defining a range of validity\nfor chunks that break free. These bounds are scaled and translated with the\nNxDestructibleActor\'s scale and position, but they are not rotated with the\nNxDestructibleActor.\n", true); + HintTable[1].init("shortDescription", "valid bounding region for debris", true); + ParamDefTable[32].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=33, longName="destructibleParameters.maxChunkSpeed" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[33]; + ParamDef->init("maxChunkSpeed", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If greater than 0, the chunks' speeds will not be allowed to exceed this value. Use 0\nto disable this feature (this is the default).\n", true); + HintTable[1].init("shortDescription", "Maximum speed of a chunk", true); + ParamDefTable[33].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=34, longName="destructibleParameters.flags" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[34]; + ParamDef->init("flags", TYPE_STRUCT, "DestructibleParametersFlag", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A collection of flags defined in NxDestructibleParametersFlag.\n", true); + HintTable[1].init("shortDescription", "A collection of flags defined in DestructibleParametersFlag.", true); + ParamDefTable[34].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=35, longName="destructibleParameters.flags.ACCUMULATE_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[35]; + ParamDef->init("ACCUMULATE_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, chunks will 'remember' damage applied to them, so that many applications of a damage amount\nbelow damageThreshold will eventually fracture the chunk. If not set, a single application of\ndamage must exceed damageThreshold in order to fracture the chunk.\n", true); + HintTable[1].init("shortDescription", "Determines if chunks accumulate damage", true); + ParamDefTable[35].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=36, longName="destructibleParameters.flags.DEBRIS_TIMEOUT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[36]; + ParamDef->init("DEBRIS_TIMEOUT", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill time out. The lifetime is a value between NxDestructibleParameters::debrisLifetimeMin and\nNxDestructibleParameters::debrisLifetimeMax, based upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will timeout", true); + ParamDefTable[36].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=37, longName="destructibleParameters.flags.DEBRIS_MAX_SEPARATION" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[37]; + ParamDef->init("DEBRIS_MAX_SEPARATION", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not chunks at or deeper than the 'debris' depth (see NxDestructibleParameters::debrisDepth)\nwill be removed if they separate too far from their origins. The maxSeparation is a value between\nNxDestructibleParameters::debrisMaxSeparationMin and NxDestructibleParameters::debrisMaxSeparationMax,\nbased upon the destructible module\'s LOD setting.\n", true); + HintTable[1].init("shortDescription", "Whether or not chunks at or deeper than the 'debris' depth will be removed if separated too far", true); + ParamDefTable[37].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=38, longName="destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[38]; + ParamDef->init("CRUMBLE_SMALLEST_CHUNKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the smallest chunks may be further broken down, either by fluid crumbles (if a crumble particle\nsystem is specified in the NxDestructibleActorDesc), or by simply removing the chunk if no crumble\nparticle system is specified. Note: the 'smallest chunks' are normally defined to be the deepest level\nof the fracture hierarchy. However, they may be taken from higher levels of the hierarchy if\nNxModuleDestructible::setMaxChunkDepthOffset is called with a non-zero value.\n", true); + HintTable[1].init("shortDescription", "If set, the smallest chunks may be further broken down", true); + ParamDefTable[38].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=39, longName="destructibleParameters.flags.ACCURATE_RAYCASTS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[39]; + ParamDef->init("ACCURATE_RAYCASTS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit\nfor collisions with child chunks. This is used to get a better raycast position and normal, in\ncase the parent collision volume does not tightly fit the graphics mesh. The returned chunk index\nwill always be that of the visible parent that is intersected, however.\n", true); + HintTable[1].init("shortDescription", "If set, the NxDestructibleActor::rayCast function will search within the nearest visible chunk hit", true); + ParamDefTable[39].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=40, longName="destructibleParameters.flags.USE_VALID_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[40]; + ParamDef->init("USE_VALID_BOUNDS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, the validBounds field of NxDestructibleParameters will be used. These bounds are translated\n(but not scaled or rotated) to the origin of the destructible actor. If a chunk or chunk island moves\noutside of those bounds, it is destroyed.\n", true); + HintTable[1].init("shortDescription", "If set, the validBounds field of NxDestructibleParameters will be used.", true); + ParamDefTable[40].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=41, longName="destructibleParameters.fractureImpulseScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[41]; + ParamDef->init("fractureImpulseScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured. This is used\nin order to 'push' the pieces out as they fracture.\n", true); + HintTable[1].init("shortDescription", "Scale factor used to apply an impulse force along the normal of chunk when fractured.", true); + ParamDefTable[41].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=42, longName="destructibleParameters.dynamicChunkDominanceGroup" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[42]; + ParamDef->init("dynamicChunkDominanceGroup", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional dominance group for dynamic chunks created when fractured. (ignored if > 31)\n", true); + HintTable[1].init("shortDescription", "Optional dominance group for dynamic chunks created when fractured.", true); + ParamDefTable[42].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[43]; + ParamDef->init("dynamicChunksGroupsMask", TYPE_STRUCT, "GroupsMask", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Optional groups mask for dynamic chunks created when fractured.\n", true); + HintTable[1].init("shortDescription", "Optional groups mask for dynamic chunks created when fractured.", true); + ParamDefTable[43].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=44, longName="destructibleParameters.dynamicChunksGroupsMask.useGroupsMask" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[44]; + ParamDef->init("useGroupsMask", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not the groupsMask should be used. If so, then this will be applied to all NxShapes\n created to represent this destructible's chunks.", true); + HintTable[1].init("shortDescription", "Whether or not the groupsMask should be used", true); + ParamDefTable[44].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=45, longName="destructibleParameters.dynamicChunksGroupsMask.bits0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[45]; + ParamDef->init("bits0", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits0 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits0 of the groups mask", true); + ParamDefTable[45].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=46, longName="destructibleParameters.dynamicChunksGroupsMask.bits1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[46]; + ParamDef->init("bits1", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits1 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits1 of the groups mask", true); + ParamDefTable[46].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=47, longName="destructibleParameters.dynamicChunksGroupsMask.bits2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[47]; + ParamDef->init("bits2", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits2 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits2 of the groups mask", true); + ParamDefTable[47].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=48, longName="destructibleParameters.dynamicChunksGroupsMask.bits3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[48]; + ParamDef->init("bits3", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If useGroupsMask is true, this is bits3 of the groups mask. See the PhysX documentation for more on groups masks.", true); + HintTable[1].init("shortDescription", "bits3 of the groups mask", true); + ParamDefTable[48].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=49, longName="depthParameters" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[49]; + ParamDef->init("depthParameters", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[49].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=50, longName="depthParameters[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[50]; + ParamDef->init("depthParameters", TYPE_STRUCT, "DestructibleDepthParameters", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The default destructible depth parameters for this asset. These\n are properties that apply to all chunks at a particular level of the hierarchy. These may be overridden\n for an instance (destructible actor), as a copy of the parameters is also stored in the actor.", true); + HintTable[1].init("shortDescription", "The default destructible depth parameters for this asset", true); + ParamDefTable[50].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=51, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[51]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.\n", true); + HintTable[1].init("shortDescription", "If true, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE, no matter the setting of impactDamageDefaultDepth.", true); + ParamDefTable[51].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=52, longName="depthParameters[].OVERRIDE_IMPACT_DAMAGE_VALUE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[52]; + ParamDef->init("OVERRIDE_IMPACT_DAMAGE_VALUE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.\n", true); + HintTable[1].init("shortDescription", "If OVERRIDE_IMPACT_DAMAGE = TRUE, chunks at this hierarchy depth level will take impact damage iff OVERRIDE_IMPACT_DAMAGE_VALUE = TRUE.", true); + ParamDefTable[52].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=53, longName="depthParameters[].IGNORE_POSE_UPDATES" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[53]; + ParamDef->init("IGNORE_POSE_UPDATES", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should have pose updates ignored.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should have pose updates ignored.", true); + ParamDefTable[53].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=54, longName="depthParameters[].IGNORE_RAYCAST_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[54]; + ParamDef->init("IGNORE_RAYCAST_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in raycast callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in raycast callbacks.", true); + ParamDefTable[54].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=55, longName="depthParameters[].IGNORE_CONTACT_CALLBACKS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[55]; + ParamDef->init("IGNORE_CONTACT_CALLBACKS", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunks at this depth should be ignored in contact callbacks.\n", true); + HintTable[1].init("shortDescription", "Chunks at this depth should be ignored in contact callbacks.", true); + ParamDefTable[55].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=56, longName="depthParameters[].USER_FLAG_0" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[56]; + ParamDef->init("USER_FLAG_0", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[56].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=57, longName="depthParameters[].USER_FLAG_1" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[57]; + ParamDef->init("USER_FLAG_1", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[57].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=58, longName="depthParameters[].USER_FLAG_2" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[58]; + ParamDef->init("USER_FLAG_2", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[58].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=59, longName="depthParameters[].USER_FLAG_3" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[59]; + ParamDef->init("USER_FLAG_3", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "User defined flag.\n", true); + HintTable[1].init("shortDescription", "User defined flag.", true); + ParamDefTable[59].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=60, longName="crumbleEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[60]; + ParamDef->init("crumbleEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the crumble emitter to use when crumbling\n the smallest chunks.", true); + HintTable[1].init("shortDescription", "The name of the crumble emitter to use", true); + ParamDefTable[60].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=61, longName="dustEmitterName" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[61]; + ParamDef->init("dustEmitterName", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The name of the dust emitter to use. If defined, dust particles\n will be spawned above the chunk surface traces when a chunk is fractured.", true); + HintTable[1].init("shortDescription", "The name of the dust emitter to use", true); + ParamDefTable[61].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=62, longName="collisionData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[62]; + ParamDef->init("collisionData", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The cooked convex data for PhysX collision. All cooked convex hulls for a set of\n scales may be included", true); + HintTable[2].init("shortDescription", "The cooked convex data for PhysX collision", true); + ParamDefTable[62].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "DestructibleAssetCollisionDataSet" }; + ParamDefTable[62].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=63, longName="surfaceTraceSets" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[63]; + ParamDef->init("surfaceTraceSets", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[63].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[63].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=64, longName="surfaceTraceSets[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[64]; + ParamDef->init("surfaceTraceSets", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "Traces along the surface boundaries of chunks. Used\n if the dustEmitterName is defined.", true); + HintTable[2].init("shortDescription", "Traces along the surface boundaries of chunks", true); + ParamDefTable[64].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceSetParameters" }; + ParamDefTable[64].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=65, longName="renderMeshAsset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[65]; + ParamDef->init("renderMeshAsset", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The included render mesh asset.", true); + HintTable[2].init("shortDescription", "The included render mesh asset", true); + ParamDefTable[65].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "RenderMeshAssetParameters" }; + ParamDefTable[65].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=66, longName="initialDestructibleActorAllowanceForInstancing" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[66]; + ParamDef->init("initialDestructibleActorAllowanceForInstancing", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Initial actor estimate for instance buffer allocation.\n Used for setting instance buffer sizes.", true); + HintTable[1].init("shortDescription", "Initial actor estimate for instance buffer allocation", true); + ParamDefTable[66].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=67, longName="chunkInstanceInfo" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[67]; + ParamDef->init("chunkInstanceInfo", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[67].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=68, longName="chunkInstanceInfo[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[68]; + ParamDef->init("chunkInstanceInfo", TYPE_STRUCT, "InstanceInfo", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-instance data for each instanced chunk.", true); + HintTable[1].init("shortDescription", "Per-instance data for each instanced chunk", true); + ParamDefTable[68].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=69, longName="chunkInstanceInfo[].partIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[69]; + ParamDef->init("partIndex", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The part instanced for this chunk.", true); + HintTable[1].init("shortDescription", "The part instanced for this chunk", true); + ParamDefTable[69].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=70, longName="chunkInstanceInfo[].chunkPositionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[70]; + ParamDef->init("chunkPositionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Translation for this chunk mesh within the asset.\n Normally a chunk needs no translation, but if a chunk is instanced within\n the asset, then this translation is needed.", true); + HintTable[1].init("shortDescription", "Translation for this chunk mesh within the asset", true); + ParamDefTable[70].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=71, longName="chunkInstanceInfo[].chunkUVOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[71]; + ParamDef->init("chunkUVOffset", TYPE_VEC2, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "UV translation for this chunk mesh's vertices.", true); + HintTable[1].init("shortDescription", "UV translation for this chunk mesh's vertices", true); + ParamDefTable[71].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=72, longName="interiorSubmeshIndex" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[72]; + ParamDef->init("interiorSubmeshIndex", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The index of the interior submesh. When fractured, the new (interior) triangles are put into\n their own submesh. This is its index. If there is no interior submesh, this index is -1.", true); + HintTable[1].init("shortDescription", "The index of the interior submesh", true); + ParamDefTable[72].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=73, longName="staticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[73]; + ParamDef->init("staticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[73].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=74, longName="staticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[74]; + ParamDef->init("staticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Alternative material names for the static render mesh, if it's created.", true); + HintTable[1].init("shortDescription", "Alternative material names for the static render mesh, if it's created", true); + ParamDefTable[74].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=75, longName="neighborPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[75]; + ParamDef->init("neighborPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Padding used for chunk neighbor tests. This padding is relative to the largest diagonal\n of the asset's local bounding box.\n This value must be non-negative.\n Default value = 0.001f.", true); + HintTable[1].init("shortDescription", "Padding used for chunk neighbor tests.", true); + ParamDefTable[75].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=76, longName="overlapsAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[76]; + ParamDef->init("overlapsAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[76].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[76].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=77, longName="overlapsAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[77]; + ParamDef->init("overlapsAtDepth", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "The chunk overlaps (adjacencies) at each depth of the hierarchy.", true); + HintTable[2].init("shortDescription", "The chunk overlaps at each depth of the hierarchy", true); + ParamDefTable[77].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "CachedOverlaps" }; + ParamDefTable[77].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=78, longName="firstChunkAtDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[78]; + ParamDef->init("firstChunkAtDepth", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[78].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=79, longName="firstChunkAtDepth[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[79]; + ParamDef->init("firstChunkAtDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The first index of chunks at each depth in the hierarchy. All chunks\n at a given depth are stored contiguously.", true); + HintTable[1].init("shortDescription", "The first index of chunks at each depth", true); + ParamDefTable[79].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=80, longName="supportDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[80]; + ParamDef->init("supportDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The chunk hierarchy depth at which to create a support graph. Higher depth levels give more detailed support,\nbut will give a higher computational load. Chunks below the support depth will never be supported.\n", true); + HintTable[1].init("shortDescription", "The chunk hierarchy depth at which to create a support graph.", true); + ParamDefTable[80].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=81, longName="formExtendedStructures" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[81]; + ParamDef->init("formExtendedStructures", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If initially static, the destructible will become part of an extended support structure if it is\nin contact with another static destructible that also has this flag set.\n", true); + HintTable[1].init("shortDescription", "If initially static, the destructible will become part of an extended support structure if it is in contact with another static destructible that also has this flag set.", true); + ParamDefTable[81].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=82, longName="useAssetDefinedSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[82]; + ParamDef->init("useAssetDefinedSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which are tagged as 'support' chunks (via NxDestructibleChunkDesc::isSupportChunk)\nwill have environmental support in static destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which are tagged as 'support' chunks", true); + ParamDefTable[82].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=83, longName="useWorldSupport" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[83]; + ParamDef->init("useWorldSupport", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, then chunks which overlap the NxScene\'s static geometry will have environmental support in\nstatic destructibles.\nNote: if both ASSET_DEFINED_SUPPORT and WORLD_SUPPORT are set, then chunks must be tagged as\n'support' chunks AND overlap the NxScene's static geometry in order to be environmentally supported.\n", true); + HintTable[1].init("shortDescription", "If set, then chunks which overlap the NxScene's static geometry will have environmental support", true); + ParamDefTable[83].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=84, longName="actorTransforms" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[84]; + ParamDef->init("actorTransforms", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[84].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=85, longName="actorTransforms[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[85]; + ParamDef->init("actorTransforms", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience.", true); + HintTable[1].init("shortDescription", "List of actor poses (that may contain scaling) which may be saved in the asset for convenience", true); + ParamDefTable[85].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[25]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(13); + Children[5] = PDEF_PTR(15); + Children[6] = PDEF_PTR(17); + Children[7] = PDEF_PTR(49); + Children[8] = PDEF_PTR(60); + Children[9] = PDEF_PTR(61); + Children[10] = PDEF_PTR(62); + Children[11] = PDEF_PTR(63); + Children[12] = PDEF_PTR(65); + Children[13] = PDEF_PTR(66); + Children[14] = PDEF_PTR(67); + Children[15] = PDEF_PTR(72); + Children[16] = PDEF_PTR(73); + Children[17] = PDEF_PTR(75); + Children[18] = PDEF_PTR(76); + Children[19] = PDEF_PTR(78); + Children[20] = PDEF_PTR(80); + Children[21] = PDEF_PTR(81); + Children[22] = PDEF_PTR(82); + Children[23] = PDEF_PTR(83); + Children[24] = PDEF_PTR(84); + + ParamDefTable[0].setChildren(Children, 25); + } + + // SetChildren for: nodeIndex=4, longName="chunks" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="chunks[]" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(6); + Children[1] = PDEF_PTR(7); + Children[2] = PDEF_PTR(8); + Children[3] = PDEF_PTR(9); + Children[4] = PDEF_PTR(10); + Children[5] = PDEF_PTR(11); + Children[6] = PDEF_PTR(12); + + ParamDefTable[5].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=13, longName="chunkConvexHulls" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(14); + + ParamDefTable[13].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=15, longName="chunkConvexHullStartIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(16); + + ParamDefTable[15].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=17, longName="destructibleParameters" + { + static Definition* Children[20]; + Children[0] = PDEF_PTR(18); + Children[1] = PDEF_PTR(19); + Children[2] = PDEF_PTR(20); + Children[3] = PDEF_PTR(21); + Children[4] = PDEF_PTR(22); + Children[5] = PDEF_PTR(23); + Children[6] = PDEF_PTR(24); + Children[7] = PDEF_PTR(25); + Children[8] = PDEF_PTR(26); + Children[9] = PDEF_PTR(27); + Children[10] = PDEF_PTR(28); + Children[11] = PDEF_PTR(29); + Children[12] = PDEF_PTR(30); + Children[13] = PDEF_PTR(31); + Children[14] = PDEF_PTR(32); + Children[15] = PDEF_PTR(33); + Children[16] = PDEF_PTR(34); + Children[17] = PDEF_PTR(41); + Children[18] = PDEF_PTR(42); + Children[19] = PDEF_PTR(43); + + ParamDefTable[17].setChildren(Children, 20); + } + + // SetChildren for: nodeIndex=34, longName="destructibleParameters.flags" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(35); + Children[1] = PDEF_PTR(36); + Children[2] = PDEF_PTR(37); + Children[3] = PDEF_PTR(38); + Children[4] = PDEF_PTR(39); + Children[5] = PDEF_PTR(40); + + ParamDefTable[34].setChildren(Children, 6); + } + + // SetChildren for: nodeIndex=43, longName="destructibleParameters.dynamicChunksGroupsMask" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(44); + Children[1] = PDEF_PTR(45); + Children[2] = PDEF_PTR(46); + Children[3] = PDEF_PTR(47); + Children[4] = PDEF_PTR(48); + + ParamDefTable[43].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=49, longName="depthParameters" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(50); + + ParamDefTable[49].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=50, longName="depthParameters[]" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(51); + Children[1] = PDEF_PTR(52); + Children[2] = PDEF_PTR(53); + Children[3] = PDEF_PTR(54); + Children[4] = PDEF_PTR(55); + Children[5] = PDEF_PTR(56); + Children[6] = PDEF_PTR(57); + Children[7] = PDEF_PTR(58); + Children[8] = PDEF_PTR(59); + + ParamDefTable[50].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=63, longName="surfaceTraceSets" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(64); + + ParamDefTable[63].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=67, longName="chunkInstanceInfo" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(68); + + ParamDefTable[67].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=68, longName="chunkInstanceInfo[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(69); + Children[1] = PDEF_PTR(70); + Children[2] = PDEF_PTR(71); + + ParamDefTable[68].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=73, longName="staticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(74); + + ParamDefTable[73].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=76, longName="overlapsAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(77); + + ParamDefTable[76].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=78, longName="firstChunkAtDepth" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(79); + + ParamDefTable[78].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=84, longName="actorTransforms" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(85); + + ParamDefTable[84].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructibleAssetParameters_0p9::initStrings(void) +{ + crumbleEmitterName.isAllocated = true; + crumbleEmitterName.buf = NULL; + dustEmitterName.isAllocated = true; + dustEmitterName.buf = NULL; +} + +void DestructibleAssetParameters_0p9::initDynamicArrays(void) +{ + chunks.buf = NULL; + chunks.isAllocated = true; + chunks.elementSize = sizeof(Chunk_Type); + chunks.arraySizes[0] = 0; + chunkConvexHulls.buf = NULL; + chunkConvexHulls.isAllocated = true; + chunkConvexHulls.elementSize = sizeof(NvParameterized::Interface*); + chunkConvexHulls.arraySizes[0] = 0; + chunkConvexHullStartIndices.buf = NULL; + chunkConvexHullStartIndices.isAllocated = true; + chunkConvexHullStartIndices.elementSize = sizeof(uint32_t); + chunkConvexHullStartIndices.arraySizes[0] = 0; + depthParameters.buf = NULL; + depthParameters.isAllocated = true; + depthParameters.elementSize = sizeof(DestructibleDepthParameters_Type); + depthParameters.arraySizes[0] = 0; + surfaceTraceSets.buf = NULL; + surfaceTraceSets.isAllocated = true; + surfaceTraceSets.elementSize = sizeof(NvParameterized::Interface*); + surfaceTraceSets.arraySizes[0] = 0; + chunkInstanceInfo.buf = NULL; + chunkInstanceInfo.isAllocated = true; + chunkInstanceInfo.elementSize = sizeof(InstanceInfo_Type); + chunkInstanceInfo.arraySizes[0] = 0; + staticMaterialNames.buf = NULL; + staticMaterialNames.isAllocated = true; + staticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + staticMaterialNames.arraySizes[0] = 0; + overlapsAtDepth.buf = NULL; + overlapsAtDepth.isAllocated = true; + overlapsAtDepth.elementSize = sizeof(NvParameterized::Interface*); + overlapsAtDepth.arraySizes[0] = 0; + firstChunkAtDepth.buf = NULL; + firstChunkAtDepth.isAllocated = true; + firstChunkAtDepth.elementSize = sizeof(uint32_t); + firstChunkAtDepth.arraySizes[0] = 0; + actorTransforms.buf = NULL; + actorTransforms.isAllocated = true; + actorTransforms.elementSize = sizeof(physx::PxMat44); + actorTransforms.arraySizes[0] = 0; +} + +void DestructibleAssetParameters_0p9::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + depthCount = uint32_t(0); + originalDepthCount = uint32_t(0); + destructibleParameters.damageThreshold = float(1); + destructibleParameters.damageToRadius = float(0.1); + destructibleParameters.damageCap = float(0); + destructibleParameters.forceToDamage = float(0); + destructibleParameters.impactVelocityThreshold = float(0); + destructibleParameters.materialStrength = float(0); + destructibleParameters.minimumFractureDepth = uint32_t(0); + destructibleParameters.impactDamageDefaultDepth = int32_t(-1); + destructibleParameters.debrisDepth = int32_t(-1); + destructibleParameters.essentialDepth = uint32_t(0); + destructibleParameters.debrisLifetimeMin = float(1); + destructibleParameters.debrisLifetimeMax = float(10); + destructibleParameters.debrisMaxSeparationMin = float(1); + destructibleParameters.debrisMaxSeparationMax = float(10); + destructibleParameters.validBounds = physx::PxBounds3(init(-1000, -1000, -1000, 1000, 1000, 1000)); + destructibleParameters.maxChunkSpeed = float(0); + destructibleParameters.flags.ACCUMULATE_DAMAGE = bool(true); + destructibleParameters.flags.DEBRIS_TIMEOUT = bool(false); + destructibleParameters.flags.DEBRIS_MAX_SEPARATION = bool(false); + destructibleParameters.flags.CRUMBLE_SMALLEST_CHUNKS = bool(false); + destructibleParameters.flags.ACCURATE_RAYCASTS = bool(false); + destructibleParameters.flags.USE_VALID_BOUNDS = bool(false); + destructibleParameters.fractureImpulseScale = float(0); + destructibleParameters.dynamicChunkDominanceGroup = uint16_t(UINT16_MAX); + destructibleParameters.dynamicChunksGroupsMask.useGroupsMask = bool(false); + destructibleParameters.dynamicChunksGroupsMask.bits0 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits1 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits2 = uint32_t(0); + destructibleParameters.dynamicChunksGroupsMask.bits3 = uint32_t(0); + initialDestructibleActorAllowanceForInstancing = uint32_t(0); + interiorSubmeshIndex = int32_t(-1); + neighborPadding = float(0.001); + supportDepth = uint32_t(0); + formExtendedStructures = bool(false); + useAssetDefinedSupport = bool(false); + useWorldSupport = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleAssetParameters_0p9::initReferences(void) +{ + collisionData = NULL; + + renderMeshAsset = NULL; + +} + +void DestructibleAssetParameters_0p9::freeDynamicArrays(void) +{ + if (chunks.isAllocated && chunks.buf) + { + mParameterizedTraits->free(chunks.buf); + } + if (chunkConvexHulls.isAllocated && chunkConvexHulls.buf) + { + mParameterizedTraits->free(chunkConvexHulls.buf); + } + if (chunkConvexHullStartIndices.isAllocated && chunkConvexHullStartIndices.buf) + { + mParameterizedTraits->free(chunkConvexHullStartIndices.buf); + } + if (depthParameters.isAllocated && depthParameters.buf) + { + mParameterizedTraits->free(depthParameters.buf); + } + if (surfaceTraceSets.isAllocated && surfaceTraceSets.buf) + { + mParameterizedTraits->free(surfaceTraceSets.buf); + } + if (chunkInstanceInfo.isAllocated && chunkInstanceInfo.buf) + { + mParameterizedTraits->free(chunkInstanceInfo.buf); + } + if (staticMaterialNames.isAllocated && staticMaterialNames.buf) + { + mParameterizedTraits->free(staticMaterialNames.buf); + } + if (overlapsAtDepth.isAllocated && overlapsAtDepth.buf) + { + mParameterizedTraits->free(overlapsAtDepth.buf); + } + if (firstChunkAtDepth.isAllocated && firstChunkAtDepth.buf) + { + mParameterizedTraits->free(firstChunkAtDepth.buf); + } + if (actorTransforms.isAllocated && actorTransforms.buf) + { + mParameterizedTraits->free(actorTransforms.buf); + } +} + +void DestructibleAssetParameters_0p9::freeStrings(void) +{ + + if (crumbleEmitterName.isAllocated && crumbleEmitterName.buf) + { + mParameterizedTraits->strfree((char*)crumbleEmitterName.buf); + } + + if (dustEmitterName.isAllocated && dustEmitterName.buf) + { + mParameterizedTraits->strfree((char*)dustEmitterName.buf); + } + + for (int i = 0; i < staticMaterialNames.arraySizes[0]; ++i) + { + if (staticMaterialNames.buf[i].isAllocated && staticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)staticMaterialNames.buf[i].buf); + } + } +} + +void DestructibleAssetParameters_0p9::freeReferences(void) +{ + + for (int i = 0; i < chunkConvexHulls.arraySizes[0]; ++i) + { + if (chunkConvexHulls.buf[i]) + { + chunkConvexHulls.buf[i]->destroy(); + } + } + if (collisionData) + { + collisionData->destroy(); + } + + + for (int i = 0; i < surfaceTraceSets.arraySizes[0]; ++i) + { + if (surfaceTraceSets.buf[i]) + { + surfaceTraceSets.buf[i]->destroy(); + } + } + if (renderMeshAsset) + { + renderMeshAsset->destroy(); + } + + + for (int i = 0; i < overlapsAtDepth.arraySizes[0]; ++i) + { + if (overlapsAtDepth.buf[i]) + { + overlapsAtDepth.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleDebugRenderParams_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleDebugRenderParams_0p0.cpp old mode 100644 new mode 100755 index ea28fc5..b3f11b6 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleDebugRenderParams_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleDebugRenderParams_0p0.cpp @@ -1,508 +1,508 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleDebugRenderParams_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleDebugRenderParams_0p0NS; - -const char* const DestructibleDebugRenderParams_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 10; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_BOUNDS), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_BOUNDS - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_SUPPORT), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_SUPPORT - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_POSE - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_NAME - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE -}; - - -bool DestructibleDebugRenderParams_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructibleDebugRenderParams_0p0::mBuiltFlagMutex; - -DestructibleDebugRenderParams_0p0::DestructibleDebugRenderParams_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleDebugRenderParams_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleDebugRenderParams_0p0::~DestructibleDebugRenderParams_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleDebugRenderParams_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleDebugRenderParams_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams_0p0::getParameterDefinitionTree(void) const -{ - DestructibleDebugRenderParams_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleDebugRenderParams_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleDebugRenderParams_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleDebugRenderParams_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleDebugRenderParams_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleDebugRenderParams_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="VISUALIZE_DESTRUCTIBLE_ACTOR" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Module switch - whether or not to visualize destruction.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="VISUALIZE_DESTRUCTIBLE_BOUNDS" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_BOUNDS", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the axis-aligned bounding box which contains all chunks for each destructible actor.", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="VISUALIZE_DESTRUCTIBLE_SUPPORT" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_SUPPORT", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the support graph as lines and support chunks' bounding boxes.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_POSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for unfractured destructibles.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_POSE is true, the maximum object-to-eye distance to draw the chunk poses.", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_NAME" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_NAME", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the name of each destructible.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_NAME is true, the maximum object-to-eye distance to draw the actor names.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for each chunk island.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE is true, the maximum object-to-eye distance to draw the fragment poses", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - Children[8] = PDEF_PTR(9); - - ParamDefTable[0].setChildren(Children, 9); - } - - mBuiltFlag = true; - -} -void DestructibleDebugRenderParams_0p0::initStrings(void) -{ -} - -void DestructibleDebugRenderParams_0p0::initDynamicArrays(void) -{ -} - -void DestructibleDebugRenderParams_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - VISUALIZE_DESTRUCTIBLE_ACTOR = bool(true); - VISUALIZE_DESTRUCTIBLE_BOUNDS = float(0); - VISUALIZE_DESTRUCTIBLE_SUPPORT = float(0); - VISUALIZE_DESTRUCTIBLE_ACTOR_POSE = bool(true); - THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE = float(3.402823466e+038); - VISUALIZE_DESTRUCTIBLE_ACTOR_NAME = bool(true); - THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME = float(3.402823466e+038); - VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE = bool(true); - THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE = float(3.402823466e+038); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleDebugRenderParams_0p0::initReferences(void) -{ -} - -void DestructibleDebugRenderParams_0p0::freeDynamicArrays(void) -{ -} - -void DestructibleDebugRenderParams_0p0::freeStrings(void) -{ -} - -void DestructibleDebugRenderParams_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleDebugRenderParams_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleDebugRenderParams_0p0NS; + +const char* const DestructibleDebugRenderParams_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 10; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_BOUNDS), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_BOUNDS + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_SUPPORT), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_SUPPORT + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_POSE + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_ACTOR_NAME + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE), NULL, 0 }, // THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE +}; + + +bool DestructibleDebugRenderParams_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructibleDebugRenderParams_0p0::mBuiltFlagMutex; + +DestructibleDebugRenderParams_0p0::DestructibleDebugRenderParams_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleDebugRenderParams_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleDebugRenderParams_0p0::~DestructibleDebugRenderParams_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleDebugRenderParams_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleDebugRenderParams_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleDebugRenderParams_0p0::getParameterDefinitionTree(void) const +{ + DestructibleDebugRenderParams_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleDebugRenderParams_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleDebugRenderParams_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleDebugRenderParams_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleDebugRenderParams_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleDebugRenderParams_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="VISUALIZE_DESTRUCTIBLE_ACTOR" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Module switch - whether or not to visualize destruction.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="VISUALIZE_DESTRUCTIBLE_BOUNDS" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_BOUNDS", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the axis-aligned bounding box which contains all chunks for each destructible actor.", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="VISUALIZE_DESTRUCTIBLE_SUPPORT" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_SUPPORT", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the support graph as lines and support chunks' bounding boxes.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_POSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for unfractured destructibles.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_POSE is true, the maximum object-to-eye distance to draw the chunk poses.", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="VISUALIZE_DESTRUCTIBLE_ACTOR_NAME" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_ACTOR_NAME", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the name of each destructible.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_ACTOR_NAME is true, the maximum object-to-eye distance to draw the actor names.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Shows the coordinate frame representing the local origin for each chunk island.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "If VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE is true, the maximum object-to-eye distance to draw the fragment poses", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + Children[8] = PDEF_PTR(9); + + ParamDefTable[0].setChildren(Children, 9); + } + + mBuiltFlag = true; + +} +void DestructibleDebugRenderParams_0p0::initStrings(void) +{ +} + +void DestructibleDebugRenderParams_0p0::initDynamicArrays(void) +{ +} + +void DestructibleDebugRenderParams_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + VISUALIZE_DESTRUCTIBLE_ACTOR = bool(true); + VISUALIZE_DESTRUCTIBLE_BOUNDS = float(0); + VISUALIZE_DESTRUCTIBLE_SUPPORT = float(0); + VISUALIZE_DESTRUCTIBLE_ACTOR_POSE = bool(true); + THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_POSE = float(3.402823466e+038); + VISUALIZE_DESTRUCTIBLE_ACTOR_NAME = bool(true); + THRESHOLD_DISTANCE_DESTRUCTIBLE_ACTOR_NAME = float(3.402823466e+038); + VISUALIZE_DESTRUCTIBLE_FRAGMENT_POSE = bool(true); + THRESHOLD_DISTANCE_DESTRUCTIBLE_FRAGMENT_POSE = float(3.402823466e+038); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleDebugRenderParams_0p0::initReferences(void) +{ +} + +void DestructibleDebugRenderParams_0p0::freeDynamicArrays(void) +{ +} + +void DestructibleDebugRenderParams_0p0::freeStrings(void) +{ +} + +void DestructibleDebugRenderParams_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p0.cpp old mode 100644 new mode 100755 index a792292..4d71914 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p0.cpp @@ -1,710 +1,710 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleModuleParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleModuleParameters_0p0NS; - -const char* const DestructibleModuleParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 17; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 11, 12, 13, 14, 15, 16, 2, 3, 4, 5, 6, 7, 8, 9, 10, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->gpuRigidBodySettings), CHILDREN(7), 9 }, // gpuRigidBodySettings - { TYPE_I32, false, (size_t)(&((GRBSettings_Type*)0)->gpuDeviceOrdinal), NULL, 0 }, // gpuRigidBodySettings.gpuDeviceOrdinal - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->meshCellSize), NULL, 0 }, // gpuRigidBodySettings.meshCellSize - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->skinWidth), NULL, 0 }, // gpuRigidBodySettings.skinWidth - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->nonPenSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.nonPenSolverPosIterCount - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverPosIterCount - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverVelIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverVelIterCount - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->maxLinAcceleration), NULL, 0 }, // gpuRigidBodySettings.maxLinAcceleration - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemSceneSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemSceneSize - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemTempDataSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemTempDataSize - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset -}; - - -bool DestructibleModuleParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructibleModuleParameters_0p0::mBuiltFlagMutex; - -DestructibleModuleParameters_0p0::DestructibleModuleParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleModuleParameters_0p0::~DestructibleModuleParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleModuleParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleModuleParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p0::getParameterDefinitionTree(void) const -{ - DestructibleModuleParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleModuleParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleModuleParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleModuleParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "This class is used for initializing the NxModuleDestructible.", true); - ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="gpuRigidBodySettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("gpuRigidBodySettings", TYPE_STRUCT, "GRBSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "See the GRBParameters struct. The user can enable/disable GPU rigid bodies, and set various parameters for them.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="gpuRigidBodySettings.gpuDeviceOrdinal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("gpuDeviceOrdinal", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Leaving this field at its default value (-1) will disable GRB entirely. Setting this field to -2 will allow GRB to use the default PhysX GPU as defined by the NVIDIA control panel. Any other value will explicitly specify the GPU ordinal to use for all GRB scenes.", true); - HintTable[1].init("shortDescription", "override automatic GPU detection and selection", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="gpuRigidBodySettings.meshCellSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("meshCellSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Size of grid cells used in mesh collision.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="gpuRigidBodySettings.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Collision skin width, as in PhysX.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="gpuRigidBodySettings.nonPenSolverPosIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("nonPenSolverPosIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of non-penetration solver iterations.", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="gpuRigidBodySettings.frictionSolverPosIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("frictionSolverPosIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of friction solver position iterations.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="gpuRigidBodySettings.frictionSolverVelIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("frictionSolverVelIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of friction solver velocity iterations.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="gpuRigidBodySettings.maxLinAcceleration" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("maxLinAcceleration", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Maximum linear acceleration", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="gpuRigidBodySettings.gpuMemSceneSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("gpuMemSceneSize", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB scene data (shapes, actors etc)", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="gpuRigidBodySettings.gpuMemTempDataSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("gpuMemTempDataSize", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB temporary data (broadphase pairs, contacts etc)", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="maxDynamicChunkIslandCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The maximum number of dynamic NxActors that will be allowed to be active per NxApexScene. A value of 0 (the default) is interpreted as no limit.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="sortFIFOByBenefit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="validBoundsPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and NxDestructible actor bounds. The final combined and passed bounds is used to cull NxActors and GrbActors", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="maxChunkSeparationLOD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("max", uint64_t(1), true); - HintTable[1].init("min", uint64_t(0), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); - HintTable[1].init("max", uint64_t(1), true); - HintTable[2].init("min", uint64_t(0), true); - HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="maxActorCreatesPerFrame" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="maxChunkDepthOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); - HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from NxDestructibleAssets (see NxDestructibleAsset).", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - Children[3] = PDEF_PTR(13); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(15); - Children[6] = PDEF_PTR(16); - - ParamDefTable[0].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=1, longName="gpuRigidBodySettings" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(2); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(4); - Children[3] = PDEF_PTR(5); - Children[4] = PDEF_PTR(6); - Children[5] = PDEF_PTR(7); - Children[6] = PDEF_PTR(8); - Children[7] = PDEF_PTR(9); - Children[8] = PDEF_PTR(10); - - ParamDefTable[1].setChildren(Children, 9); - } - - mBuiltFlag = true; - -} -void DestructibleModuleParameters_0p0::initStrings(void) -{ -} - -void DestructibleModuleParameters_0p0::initDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - gpuRigidBodySettings.gpuDeviceOrdinal = int32_t(-1); - gpuRigidBodySettings.meshCellSize = float(0.25); - gpuRigidBodySettings.skinWidth = float(0.01); - gpuRigidBodySettings.nonPenSolverPosIterCount = uint32_t(9); - gpuRigidBodySettings.frictionSolverPosIterCount = uint32_t(3); - gpuRigidBodySettings.frictionSolverVelIterCount = uint32_t(3); - gpuRigidBodySettings.maxLinAcceleration = float(PX_MAX_F32); - gpuRigidBodySettings.gpuMemSceneSize = uint32_t(64); - gpuRigidBodySettings.gpuMemTempDataSize = uint32_t(192); - maxDynamicChunkIslandCount = uint32_t(0); - sortFIFOByBenefit = bool(false); - validBoundsPadding = float(0); - maxChunkSeparationLOD = float(0.5); - maxActorCreatesPerFrame = uint32_t(UINT32_MAX); - maxChunkDepthOffset = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleModuleParameters_0p0::initReferences(void) -{ -} - -void DestructibleModuleParameters_0p0::freeDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p0::freeStrings(void) -{ -} - -void DestructibleModuleParameters_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleModuleParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleModuleParameters_0p0NS; + +const char* const DestructibleModuleParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 17; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 11, 12, 13, 14, 15, 16, 2, 3, 4, 5, 6, 7, 8, 9, 10, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->gpuRigidBodySettings), CHILDREN(7), 9 }, // gpuRigidBodySettings + { TYPE_I32, false, (size_t)(&((GRBSettings_Type*)0)->gpuDeviceOrdinal), NULL, 0 }, // gpuRigidBodySettings.gpuDeviceOrdinal + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->meshCellSize), NULL, 0 }, // gpuRigidBodySettings.meshCellSize + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->skinWidth), NULL, 0 }, // gpuRigidBodySettings.skinWidth + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->nonPenSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.nonPenSolverPosIterCount + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverPosIterCount + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverVelIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverVelIterCount + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->maxLinAcceleration), NULL, 0 }, // gpuRigidBodySettings.maxLinAcceleration + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemSceneSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemSceneSize + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemTempDataSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemTempDataSize + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset +}; + + +bool DestructibleModuleParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructibleModuleParameters_0p0::mBuiltFlagMutex; + +DestructibleModuleParameters_0p0::DestructibleModuleParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleModuleParameters_0p0::~DestructibleModuleParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleModuleParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleModuleParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p0::getParameterDefinitionTree(void) const +{ + DestructibleModuleParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleModuleParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleModuleParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleModuleParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "This class is used for initializing the NxModuleDestructible.", true); + ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="gpuRigidBodySettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("gpuRigidBodySettings", TYPE_STRUCT, "GRBSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "See the GRBParameters struct. The user can enable/disable GPU rigid bodies, and set various parameters for them.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="gpuRigidBodySettings.gpuDeviceOrdinal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("gpuDeviceOrdinal", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Leaving this field at its default value (-1) will disable GRB entirely. Setting this field to -2 will allow GRB to use the default PhysX GPU as defined by the NVIDIA control panel. Any other value will explicitly specify the GPU ordinal to use for all GRB scenes.", true); + HintTable[1].init("shortDescription", "override automatic GPU detection and selection", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="gpuRigidBodySettings.meshCellSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("meshCellSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Size of grid cells used in mesh collision.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="gpuRigidBodySettings.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Collision skin width, as in PhysX.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="gpuRigidBodySettings.nonPenSolverPosIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("nonPenSolverPosIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of non-penetration solver iterations.", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="gpuRigidBodySettings.frictionSolverPosIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("frictionSolverPosIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of friction solver position iterations.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="gpuRigidBodySettings.frictionSolverVelIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("frictionSolverVelIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of friction solver velocity iterations.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="gpuRigidBodySettings.maxLinAcceleration" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("maxLinAcceleration", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Maximum linear acceleration", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="gpuRigidBodySettings.gpuMemSceneSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("gpuMemSceneSize", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB scene data (shapes, actors etc)", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="gpuRigidBodySettings.gpuMemTempDataSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("gpuMemTempDataSize", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB temporary data (broadphase pairs, contacts etc)", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="maxDynamicChunkIslandCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The maximum number of dynamic NxActors that will be allowed to be active per NxApexScene. A value of 0 (the default) is interpreted as no limit.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="sortFIFOByBenefit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="validBoundsPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and NxDestructible actor bounds. The final combined and passed bounds is used to cull NxActors and GrbActors", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="maxChunkSeparationLOD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("max", uint64_t(1), true); + HintTable[1].init("min", uint64_t(0), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); + HintTable[1].init("max", uint64_t(1), true); + HintTable[2].init("min", uint64_t(0), true); + HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="maxActorCreatesPerFrame" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="maxChunkDepthOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); + HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from NxDestructibleAssets (see NxDestructibleAsset).", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + Children[3] = PDEF_PTR(13); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(15); + Children[6] = PDEF_PTR(16); + + ParamDefTable[0].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=1, longName="gpuRigidBodySettings" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(2); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(4); + Children[3] = PDEF_PTR(5); + Children[4] = PDEF_PTR(6); + Children[5] = PDEF_PTR(7); + Children[6] = PDEF_PTR(8); + Children[7] = PDEF_PTR(9); + Children[8] = PDEF_PTR(10); + + ParamDefTable[1].setChildren(Children, 9); + } + + mBuiltFlag = true; + +} +void DestructibleModuleParameters_0p0::initStrings(void) +{ +} + +void DestructibleModuleParameters_0p0::initDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + gpuRigidBodySettings.gpuDeviceOrdinal = int32_t(-1); + gpuRigidBodySettings.meshCellSize = float(0.25); + gpuRigidBodySettings.skinWidth = float(0.01); + gpuRigidBodySettings.nonPenSolverPosIterCount = uint32_t(9); + gpuRigidBodySettings.frictionSolverPosIterCount = uint32_t(3); + gpuRigidBodySettings.frictionSolverVelIterCount = uint32_t(3); + gpuRigidBodySettings.maxLinAcceleration = float(PX_MAX_F32); + gpuRigidBodySettings.gpuMemSceneSize = uint32_t(64); + gpuRigidBodySettings.gpuMemTempDataSize = uint32_t(192); + maxDynamicChunkIslandCount = uint32_t(0); + sortFIFOByBenefit = bool(false); + validBoundsPadding = float(0); + maxChunkSeparationLOD = float(0.5); + maxActorCreatesPerFrame = uint32_t(UINT32_MAX); + maxChunkDepthOffset = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleModuleParameters_0p0::initReferences(void) +{ +} + +void DestructibleModuleParameters_0p0::freeDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p0::freeStrings(void) +{ +} + +void DestructibleModuleParameters_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p1.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p1.cpp old mode 100644 new mode 100755 index 5f0c81e..1fbc82d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p1.cpp @@ -1,762 +1,762 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleModuleParameters_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleModuleParameters_0p1NS; - -const char* const DestructibleModuleParameters_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 19; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 11, 12, 13, 14, 15, 16, 17, 18, 2, 3, 4, 5, 6, 7, 8, 9, 10, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->gpuRigidBodySettings), CHILDREN(9), 9 }, // gpuRigidBodySettings - { TYPE_I32, false, (size_t)(&((GRBSettings_Type*)0)->gpuDeviceOrdinal), NULL, 0 }, // gpuRigidBodySettings.gpuDeviceOrdinal - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->meshCellSize), NULL, 0 }, // gpuRigidBodySettings.meshCellSize - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->skinWidth), NULL, 0 }, // gpuRigidBodySettings.skinWidth - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->nonPenSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.nonPenSolverPosIterCount - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverPosIterCount - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverVelIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverVelIterCount - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->maxLinAcceleration), NULL, 0 }, // gpuRigidBodySettings.maxLinAcceleration - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemSceneSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemSceneSize - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemTempDataSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemTempDataSize - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent -}; - - -bool DestructibleModuleParameters_0p1::mBuiltFlag = false; -NvParameterized::MutexType DestructibleModuleParameters_0p1::mBuiltFlagMutex; - -DestructibleModuleParameters_0p1::DestructibleModuleParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleModuleParameters_0p1::~DestructibleModuleParameters_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleModuleParameters_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleModuleParameters_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p1::getParameterDefinitionTree(void) const -{ - DestructibleModuleParameters_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleModuleParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleModuleParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleModuleParameters_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "This class is used for initializing the NxModuleDestructible.", true); - ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="gpuRigidBodySettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("gpuRigidBodySettings", TYPE_STRUCT, "GRBSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "See the GRBParameters struct. The user can enable/disable GPU rigid bodies, and set various parameters for them.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="gpuRigidBodySettings.gpuDeviceOrdinal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("gpuDeviceOrdinal", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Leaving this field at its default value (-1) will disable GRB entirely. Setting this field to -2 will allow GRB to use the default PhysX GPU as defined by the NVIDIA control panel. A value of -3 is the same as -2, except device detection fails silently (no warnings to the error stream). Any other value will explicitly specify the GPU ordinal to use for all GRB scenes.", true); - HintTable[1].init("shortDescription", "override automatic GPU detection and selection", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="gpuRigidBodySettings.meshCellSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("meshCellSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Size of grid cells used in mesh collision.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="gpuRigidBodySettings.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Collision skin width, as in PhysX.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="gpuRigidBodySettings.nonPenSolverPosIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("nonPenSolverPosIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of non-penetration solver iterations.", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="gpuRigidBodySettings.frictionSolverPosIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("frictionSolverPosIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of friction solver position iterations.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="gpuRigidBodySettings.frictionSolverVelIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("frictionSolverVelIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of friction solver velocity iterations.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="gpuRigidBodySettings.maxLinAcceleration" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("maxLinAcceleration", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Maximum linear acceleration", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="gpuRigidBodySettings.gpuMemSceneSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("gpuMemSceneSize", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB scene data (shapes, actors etc)", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="gpuRigidBodySettings.gpuMemTempDataSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("gpuMemTempDataSize", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB temporary data (broadphase pairs, contacts etc)", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="maxDynamicChunkIslandCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The maximum number of dynamic NxActors that will be allowed to be active per NxApexScene. A value of 0 (the default) is interpreted as no limit.", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="sortFIFOByBenefit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="validBoundsPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and NxDestructible actor bounds. The final combined and passed bounds is used to cull NxActors and GrbActors", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="maxChunkSeparationLOD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("max", uint64_t(1), true); - HintTable[1].init("min", uint64_t(0), true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); - HintTable[1].init("max", uint64_t(1), true); - HintTable[2].init("min", uint64_t(0), true); - HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="maxActorCreatesPerFrame" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="maxChunkDepthOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); - HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from NxDestructibleAssets (see NxDestructibleAsset).", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="massScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("massScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); - HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="scaledMassExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(11); - Children[2] = PDEF_PTR(12); - Children[3] = PDEF_PTR(13); - Children[4] = PDEF_PTR(14); - Children[5] = PDEF_PTR(15); - Children[6] = PDEF_PTR(16); - Children[7] = PDEF_PTR(17); - Children[8] = PDEF_PTR(18); - - ParamDefTable[0].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=1, longName="gpuRigidBodySettings" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(2); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(4); - Children[3] = PDEF_PTR(5); - Children[4] = PDEF_PTR(6); - Children[5] = PDEF_PTR(7); - Children[6] = PDEF_PTR(8); - Children[7] = PDEF_PTR(9); - Children[8] = PDEF_PTR(10); - - ParamDefTable[1].setChildren(Children, 9); - } - - mBuiltFlag = true; - -} -void DestructibleModuleParameters_0p1::initStrings(void) -{ -} - -void DestructibleModuleParameters_0p1::initDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - gpuRigidBodySettings.gpuDeviceOrdinal = int32_t(-1); - gpuRigidBodySettings.meshCellSize = float(0.25); - gpuRigidBodySettings.skinWidth = float(0.01); - gpuRigidBodySettings.nonPenSolverPosIterCount = uint32_t(9); - gpuRigidBodySettings.frictionSolverPosIterCount = uint32_t(3); - gpuRigidBodySettings.frictionSolverVelIterCount = uint32_t(3); - gpuRigidBodySettings.maxLinAcceleration = float(PX_MAX_F32); - gpuRigidBodySettings.gpuMemSceneSize = uint32_t(64); - gpuRigidBodySettings.gpuMemTempDataSize = uint32_t(192); - maxDynamicChunkIslandCount = uint32_t(0); - sortFIFOByBenefit = bool(false); - validBoundsPadding = float(0); - maxChunkSeparationLOD = float(0.5); - maxActorCreatesPerFrame = uint32_t(UINT32_MAX); - maxChunkDepthOffset = uint32_t(0); - massScale = float(1); - scaledMassExponent = float(0.5); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleModuleParameters_0p1::initReferences(void) -{ -} - -void DestructibleModuleParameters_0p1::freeDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p1::freeStrings(void) -{ -} - -void DestructibleModuleParameters_0p1::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleModuleParameters_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleModuleParameters_0p1NS; + +const char* const DestructibleModuleParameters_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 19; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 11, 12, 13, 14, 15, 16, 17, 18, 2, 3, 4, 5, 6, 7, 8, 9, 10, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->gpuRigidBodySettings), CHILDREN(9), 9 }, // gpuRigidBodySettings + { TYPE_I32, false, (size_t)(&((GRBSettings_Type*)0)->gpuDeviceOrdinal), NULL, 0 }, // gpuRigidBodySettings.gpuDeviceOrdinal + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->meshCellSize), NULL, 0 }, // gpuRigidBodySettings.meshCellSize + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->skinWidth), NULL, 0 }, // gpuRigidBodySettings.skinWidth + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->nonPenSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.nonPenSolverPosIterCount + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverPosIterCount + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverVelIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverVelIterCount + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->maxLinAcceleration), NULL, 0 }, // gpuRigidBodySettings.maxLinAcceleration + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemSceneSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemSceneSize + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemTempDataSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemTempDataSize + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent +}; + + +bool DestructibleModuleParameters_0p1::mBuiltFlag = false; +NvParameterized::MutexType DestructibleModuleParameters_0p1::mBuiltFlagMutex; + +DestructibleModuleParameters_0p1::DestructibleModuleParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleModuleParameters_0p1::~DestructibleModuleParameters_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleModuleParameters_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleModuleParameters_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p1::getParameterDefinitionTree(void) const +{ + DestructibleModuleParameters_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleModuleParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleModuleParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleModuleParameters_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "This class is used for initializing the NxModuleDestructible.", true); + ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="gpuRigidBodySettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("gpuRigidBodySettings", TYPE_STRUCT, "GRBSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "See the GRBParameters struct. The user can enable/disable GPU rigid bodies, and set various parameters for them.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="gpuRigidBodySettings.gpuDeviceOrdinal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("gpuDeviceOrdinal", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Leaving this field at its default value (-1) will disable GRB entirely. Setting this field to -2 will allow GRB to use the default PhysX GPU as defined by the NVIDIA control panel. A value of -3 is the same as -2, except device detection fails silently (no warnings to the error stream). Any other value will explicitly specify the GPU ordinal to use for all GRB scenes.", true); + HintTable[1].init("shortDescription", "override automatic GPU detection and selection", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="gpuRigidBodySettings.meshCellSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("meshCellSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Size of grid cells used in mesh collision.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="gpuRigidBodySettings.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Collision skin width, as in PhysX.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="gpuRigidBodySettings.nonPenSolverPosIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("nonPenSolverPosIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of non-penetration solver iterations.", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="gpuRigidBodySettings.frictionSolverPosIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("frictionSolverPosIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of friction solver position iterations.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="gpuRigidBodySettings.frictionSolverVelIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("frictionSolverVelIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of friction solver velocity iterations.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="gpuRigidBodySettings.maxLinAcceleration" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("maxLinAcceleration", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Maximum linear acceleration", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="gpuRigidBodySettings.gpuMemSceneSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("gpuMemSceneSize", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB scene data (shapes, actors etc)", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="gpuRigidBodySettings.gpuMemTempDataSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("gpuMemTempDataSize", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB temporary data (broadphase pairs, contacts etc)", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="maxDynamicChunkIslandCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The maximum number of dynamic NxActors that will be allowed to be active per NxApexScene. A value of 0 (the default) is interpreted as no limit.", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="sortFIFOByBenefit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="validBoundsPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and NxDestructible actor bounds. The final combined and passed bounds is used to cull NxActors and GrbActors", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="maxChunkSeparationLOD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("max", uint64_t(1), true); + HintTable[1].init("min", uint64_t(0), true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); + HintTable[1].init("max", uint64_t(1), true); + HintTable[2].init("min", uint64_t(0), true); + HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="maxActorCreatesPerFrame" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="maxChunkDepthOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); + HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from NxDestructibleAssets (see NxDestructibleAsset).", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="massScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("massScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); + HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="scaledMassExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(11); + Children[2] = PDEF_PTR(12); + Children[3] = PDEF_PTR(13); + Children[4] = PDEF_PTR(14); + Children[5] = PDEF_PTR(15); + Children[6] = PDEF_PTR(16); + Children[7] = PDEF_PTR(17); + Children[8] = PDEF_PTR(18); + + ParamDefTable[0].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=1, longName="gpuRigidBodySettings" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(2); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(4); + Children[3] = PDEF_PTR(5); + Children[4] = PDEF_PTR(6); + Children[5] = PDEF_PTR(7); + Children[6] = PDEF_PTR(8); + Children[7] = PDEF_PTR(9); + Children[8] = PDEF_PTR(10); + + ParamDefTable[1].setChildren(Children, 9); + } + + mBuiltFlag = true; + +} +void DestructibleModuleParameters_0p1::initStrings(void) +{ +} + +void DestructibleModuleParameters_0p1::initDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + gpuRigidBodySettings.gpuDeviceOrdinal = int32_t(-1); + gpuRigidBodySettings.meshCellSize = float(0.25); + gpuRigidBodySettings.skinWidth = float(0.01); + gpuRigidBodySettings.nonPenSolverPosIterCount = uint32_t(9); + gpuRigidBodySettings.frictionSolverPosIterCount = uint32_t(3); + gpuRigidBodySettings.frictionSolverVelIterCount = uint32_t(3); + gpuRigidBodySettings.maxLinAcceleration = float(PX_MAX_F32); + gpuRigidBodySettings.gpuMemSceneSize = uint32_t(64); + gpuRigidBodySettings.gpuMemTempDataSize = uint32_t(192); + maxDynamicChunkIslandCount = uint32_t(0); + sortFIFOByBenefit = bool(false); + validBoundsPadding = float(0); + maxChunkSeparationLOD = float(0.5); + maxActorCreatesPerFrame = uint32_t(UINT32_MAX); + maxChunkDepthOffset = uint32_t(0); + massScale = float(1); + scaledMassExponent = float(0.5); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleModuleParameters_0p1::initReferences(void) +{ +} + +void DestructibleModuleParameters_0p1::freeDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p1::freeStrings(void) +{ +} + +void DestructibleModuleParameters_0p1::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p2.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p2.cpp old mode 100644 new mode 100755 index 4ebbc6e..d2e54d4 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p2.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p2.cpp @@ -1,862 +1,862 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleModuleParameters_0p2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleModuleParameters_0p2NS; - -const char* const DestructibleModuleParameters_0p2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 23; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 15, 16, 17, 18, 19, 20, 21, 22, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, - { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->gpuRigidBodySettings), CHILDREN(9), 13 }, // gpuRigidBodySettings - { TYPE_I32, false, (size_t)(&((GRBSettings_Type*)0)->gpuDeviceOrdinal), NULL, 0 }, // gpuRigidBodySettings.gpuDeviceOrdinal - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->meshCellSize), NULL, 0 }, // gpuRigidBodySettings.meshCellSize - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->skinWidth), NULL, 0 }, // gpuRigidBodySettings.skinWidth - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->nonPenSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.nonPenSolverPosIterCount - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverPosIterCount - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverVelIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverVelIterCount - { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->maxLinAcceleration), NULL, 0 }, // gpuRigidBodySettings.maxLinAcceleration - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemSceneSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemSceneSize - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemTempDataSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemTempDataSize - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->sphereSlices), NULL, 0 }, // gpuRigidBodySettings.sphereSlices - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->sphereStacks), NULL, 0 }, // gpuRigidBodySettings.sphereStacks - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->capsuleSlices), NULL, 0 }, // gpuRigidBodySettings.capsuleSlices - { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->capsuleStacks), NULL, 0 }, // gpuRigidBodySettings.capsuleStacks - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent -}; - - -bool DestructibleModuleParameters_0p2::mBuiltFlag = false; -NvParameterized::MutexType DestructibleModuleParameters_0p2::mBuiltFlagMutex; - -DestructibleModuleParameters_0p2::DestructibleModuleParameters_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleModuleParameters_0p2::~DestructibleModuleParameters_0p2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleModuleParameters_0p2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleModuleParameters_0p2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p2::getParameterDefinitionTree(void) const -{ - DestructibleModuleParameters_0p2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleModuleParameters_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleModuleParameters_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleModuleParameters_0p2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "This class is used for initializing the NxModuleDestructible.", true); - ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="gpuRigidBodySettings" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("gpuRigidBodySettings", TYPE_STRUCT, "GRBSettings", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "See the GRBParameters struct. The user can enable/disable GPU rigid bodies, and set various parameters for them.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="gpuRigidBodySettings.gpuDeviceOrdinal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("gpuDeviceOrdinal", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Leaving this field at its default value (-1) will disable GRB entirely. Setting this field to -2 will allow GRB to use the default PhysX GPU as defined by the NVIDIA control panel. A value of -3 is the same as -2, except device detection fails silently (no warnings to the error stream). Any other value will explicitly specify the GPU ordinal to use for all GRB scenes.", true); - HintTable[1].init("shortDescription", "override automatic GPU detection and selection", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="gpuRigidBodySettings.meshCellSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("meshCellSize", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Size of grid cells used in mesh collision.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="gpuRigidBodySettings.skinWidth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("skinWidth", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Collision skin width, as in PhysX.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="gpuRigidBodySettings.nonPenSolverPosIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("nonPenSolverPosIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of non-penetration solver iterations.", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="gpuRigidBodySettings.frictionSolverPosIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("frictionSolverPosIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of friction solver position iterations.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="gpuRigidBodySettings.frictionSolverVelIterCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("frictionSolverVelIterCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of friction solver velocity iterations.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="gpuRigidBodySettings.maxLinAcceleration" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("maxLinAcceleration", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Maximum linear acceleration", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="gpuRigidBodySettings.gpuMemSceneSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("gpuMemSceneSize", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB scene data (shapes, actors etc)", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="gpuRigidBodySettings.gpuMemTempDataSize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("gpuMemTempDataSize", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB temporary data (broadphase pairs, contacts etc)", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=11, longName="gpuRigidBodySettings.sphereSlices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; - ParamDef->init("sphereSlices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Slices to use for convex sphere representation", true); - ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=12, longName="gpuRigidBodySettings.sphereStacks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; - ParamDef->init("sphereStacks", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Stacks to use for convex sphere representation", true); - ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=13, longName="gpuRigidBodySettings.capsuleSlices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; - ParamDef->init("capsuleSlices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Slices to use for convex capsule representation", true); - ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=14, longName="gpuRigidBodySettings.capsuleStacks" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; - ParamDef->init("capsuleStacks", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Stacks to use for convex capsule representation", true); - ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=15, longName="maxDynamicChunkIslandCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; - ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The maximum number of dynamic NxActors that will be allowed to be active per NxApexScene. A value of 0 (the default) is interpreted as no limit.", true); - ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=16, longName="sortFIFOByBenefit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; - ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); - ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=17, longName="validBoundsPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; - ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and NxDestructible actor bounds. The final combined and passed bounds is used to cull NxActors and GrbActors", true); - ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=18, longName="maxChunkSeparationLOD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; - ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("max", uint64_t(1), true); - HintTable[1].init("min", uint64_t(0), true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); - HintTable[1].init("max", uint64_t(1), true); - HintTable[2].init("min", uint64_t(0), true); - HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); - ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=19, longName="maxActorCreatesPerFrame" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; - ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); - ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=20, longName="maxChunkDepthOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; - ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); - HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from NxDestructibleAssets (see NxDestructibleAsset).", true); - ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=21, longName="massScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; - ParamDef->init("massScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); - HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); - ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=22, longName="scaledMassExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; - ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); - ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[9]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(15); - Children[2] = PDEF_PTR(16); - Children[3] = PDEF_PTR(17); - Children[4] = PDEF_PTR(18); - Children[5] = PDEF_PTR(19); - Children[6] = PDEF_PTR(20); - Children[7] = PDEF_PTR(21); - Children[8] = PDEF_PTR(22); - - ParamDefTable[0].setChildren(Children, 9); - } - - // SetChildren for: nodeIndex=1, longName="gpuRigidBodySettings" - { - static Definition* Children[13]; - Children[0] = PDEF_PTR(2); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(4); - Children[3] = PDEF_PTR(5); - Children[4] = PDEF_PTR(6); - Children[5] = PDEF_PTR(7); - Children[6] = PDEF_PTR(8); - Children[7] = PDEF_PTR(9); - Children[8] = PDEF_PTR(10); - Children[9] = PDEF_PTR(11); - Children[10] = PDEF_PTR(12); - Children[11] = PDEF_PTR(13); - Children[12] = PDEF_PTR(14); - - ParamDefTable[1].setChildren(Children, 13); - } - - mBuiltFlag = true; - -} -void DestructibleModuleParameters_0p2::initStrings(void) -{ -} - -void DestructibleModuleParameters_0p2::initDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - gpuRigidBodySettings.gpuDeviceOrdinal = int32_t(-1); - gpuRigidBodySettings.meshCellSize = float(0.25); - gpuRigidBodySettings.skinWidth = float(0.01); - gpuRigidBodySettings.nonPenSolverPosIterCount = uint32_t(9); - gpuRigidBodySettings.frictionSolverPosIterCount = uint32_t(3); - gpuRigidBodySettings.frictionSolverVelIterCount = uint32_t(3); - gpuRigidBodySettings.maxLinAcceleration = float(PX_MAX_F32); - gpuRigidBodySettings.gpuMemSceneSize = uint32_t(64); - gpuRigidBodySettings.gpuMemTempDataSize = uint32_t(192); - gpuRigidBodySettings.sphereSlices = uint32_t(4); - gpuRigidBodySettings.sphereStacks = uint32_t(4); - gpuRigidBodySettings.capsuleSlices = uint32_t(6); - gpuRigidBodySettings.capsuleStacks = uint32_t(4); - maxDynamicChunkIslandCount = uint32_t(0); - sortFIFOByBenefit = bool(false); - validBoundsPadding = float(0); - maxChunkSeparationLOD = float(0.5); - maxActorCreatesPerFrame = uint32_t(UINT32_MAX); - maxChunkDepthOffset = uint32_t(0); - massScale = float(1); - scaledMassExponent = float(0.5); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleModuleParameters_0p2::initReferences(void) -{ -} - -void DestructibleModuleParameters_0p2::freeDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p2::freeStrings(void) -{ -} - -void DestructibleModuleParameters_0p2::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleModuleParameters_0p2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleModuleParameters_0p2NS; + +const char* const DestructibleModuleParameters_0p2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 23; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 15, 16, 17, 18, 19, 20, 21, 22, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 9 }, + { TYPE_STRUCT, false, (size_t)(&((ParametersStruct*)0)->gpuRigidBodySettings), CHILDREN(9), 13 }, // gpuRigidBodySettings + { TYPE_I32, false, (size_t)(&((GRBSettings_Type*)0)->gpuDeviceOrdinal), NULL, 0 }, // gpuRigidBodySettings.gpuDeviceOrdinal + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->meshCellSize), NULL, 0 }, // gpuRigidBodySettings.meshCellSize + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->skinWidth), NULL, 0 }, // gpuRigidBodySettings.skinWidth + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->nonPenSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.nonPenSolverPosIterCount + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverPosIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverPosIterCount + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->frictionSolverVelIterCount), NULL, 0 }, // gpuRigidBodySettings.frictionSolverVelIterCount + { TYPE_F32, false, (size_t)(&((GRBSettings_Type*)0)->maxLinAcceleration), NULL, 0 }, // gpuRigidBodySettings.maxLinAcceleration + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemSceneSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemSceneSize + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->gpuMemTempDataSize), NULL, 0 }, // gpuRigidBodySettings.gpuMemTempDataSize + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->sphereSlices), NULL, 0 }, // gpuRigidBodySettings.sphereSlices + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->sphereStacks), NULL, 0 }, // gpuRigidBodySettings.sphereStacks + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->capsuleSlices), NULL, 0 }, // gpuRigidBodySettings.capsuleSlices + { TYPE_U32, false, (size_t)(&((GRBSettings_Type*)0)->capsuleStacks), NULL, 0 }, // gpuRigidBodySettings.capsuleStacks + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent +}; + + +bool DestructibleModuleParameters_0p2::mBuiltFlag = false; +NvParameterized::MutexType DestructibleModuleParameters_0p2::mBuiltFlagMutex; + +DestructibleModuleParameters_0p2::DestructibleModuleParameters_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleModuleParameters_0p2::~DestructibleModuleParameters_0p2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleModuleParameters_0p2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleModuleParameters_0p2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p2::getParameterDefinitionTree(void) const +{ + DestructibleModuleParameters_0p2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleModuleParameters_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleModuleParameters_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleModuleParameters_0p2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "This class is used for initializing the NxModuleDestructible.", true); + ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="gpuRigidBodySettings" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("gpuRigidBodySettings", TYPE_STRUCT, "GRBSettings", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "See the GRBParameters struct. The user can enable/disable GPU rigid bodies, and set various parameters for them.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="gpuRigidBodySettings.gpuDeviceOrdinal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("gpuDeviceOrdinal", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Leaving this field at its default value (-1) will disable GRB entirely. Setting this field to -2 will allow GRB to use the default PhysX GPU as defined by the NVIDIA control panel. A value of -3 is the same as -2, except device detection fails silently (no warnings to the error stream). Any other value will explicitly specify the GPU ordinal to use for all GRB scenes.", true); + HintTable[1].init("shortDescription", "override automatic GPU detection and selection", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="gpuRigidBodySettings.meshCellSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("meshCellSize", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Size of grid cells used in mesh collision.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="gpuRigidBodySettings.skinWidth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("skinWidth", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Collision skin width, as in PhysX.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="gpuRigidBodySettings.nonPenSolverPosIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("nonPenSolverPosIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of non-penetration solver iterations.", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="gpuRigidBodySettings.frictionSolverPosIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("frictionSolverPosIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of friction solver position iterations.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="gpuRigidBodySettings.frictionSolverVelIterCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("frictionSolverVelIterCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of friction solver velocity iterations.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="gpuRigidBodySettings.maxLinAcceleration" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("maxLinAcceleration", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Maximum linear acceleration", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="gpuRigidBodySettings.gpuMemSceneSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("gpuMemSceneSize", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB scene data (shapes, actors etc)", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="gpuRigidBodySettings.gpuMemTempDataSize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("gpuMemTempDataSize", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Amount (in MB) of GPU memory to allocate for GRB temporary data (broadphase pairs, contacts etc)", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=11, longName="gpuRigidBodySettings.sphereSlices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[11]; + ParamDef->init("sphereSlices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Slices to use for convex sphere representation", true); + ParamDefTable[11].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=12, longName="gpuRigidBodySettings.sphereStacks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[12]; + ParamDef->init("sphereStacks", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Stacks to use for convex sphere representation", true); + ParamDefTable[12].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=13, longName="gpuRigidBodySettings.capsuleSlices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[13]; + ParamDef->init("capsuleSlices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Slices to use for convex capsule representation", true); + ParamDefTable[13].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=14, longName="gpuRigidBodySettings.capsuleStacks" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[14]; + ParamDef->init("capsuleStacks", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Stacks to use for convex capsule representation", true); + ParamDefTable[14].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=15, longName="maxDynamicChunkIslandCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[15]; + ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The maximum number of dynamic NxActors that will be allowed to be active per NxApexScene. A value of 0 (the default) is interpreted as no limit.", true); + ParamDefTable[15].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=16, longName="sortFIFOByBenefit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[16]; + ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); + ParamDefTable[16].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=17, longName="validBoundsPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[17]; + ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and NxDestructible actor bounds. The final combined and passed bounds is used to cull NxActors and GrbActors", true); + ParamDefTable[17].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=18, longName="maxChunkSeparationLOD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[18]; + ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("max", uint64_t(1), true); + HintTable[1].init("min", uint64_t(0), true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); + HintTable[1].init("max", uint64_t(1), true); + HintTable[2].init("min", uint64_t(0), true); + HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); + ParamDefTable[18].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=19, longName="maxActorCreatesPerFrame" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[19]; + ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); + ParamDefTable[19].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=20, longName="maxChunkDepthOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[20]; + ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); + HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from NxDestructibleAssets (see NxDestructibleAsset).", true); + ParamDefTable[20].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=21, longName="massScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[21]; + ParamDef->init("massScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); + HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); + ParamDefTable[21].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=22, longName="scaledMassExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[22]; + ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); + ParamDefTable[22].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[9]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(15); + Children[2] = PDEF_PTR(16); + Children[3] = PDEF_PTR(17); + Children[4] = PDEF_PTR(18); + Children[5] = PDEF_PTR(19); + Children[6] = PDEF_PTR(20); + Children[7] = PDEF_PTR(21); + Children[8] = PDEF_PTR(22); + + ParamDefTable[0].setChildren(Children, 9); + } + + // SetChildren for: nodeIndex=1, longName="gpuRigidBodySettings" + { + static Definition* Children[13]; + Children[0] = PDEF_PTR(2); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(4); + Children[3] = PDEF_PTR(5); + Children[4] = PDEF_PTR(6); + Children[5] = PDEF_PTR(7); + Children[6] = PDEF_PTR(8); + Children[7] = PDEF_PTR(9); + Children[8] = PDEF_PTR(10); + Children[9] = PDEF_PTR(11); + Children[10] = PDEF_PTR(12); + Children[11] = PDEF_PTR(13); + Children[12] = PDEF_PTR(14); + + ParamDefTable[1].setChildren(Children, 13); + } + + mBuiltFlag = true; + +} +void DestructibleModuleParameters_0p2::initStrings(void) +{ +} + +void DestructibleModuleParameters_0p2::initDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + gpuRigidBodySettings.gpuDeviceOrdinal = int32_t(-1); + gpuRigidBodySettings.meshCellSize = float(0.25); + gpuRigidBodySettings.skinWidth = float(0.01); + gpuRigidBodySettings.nonPenSolverPosIterCount = uint32_t(9); + gpuRigidBodySettings.frictionSolverPosIterCount = uint32_t(3); + gpuRigidBodySettings.frictionSolverVelIterCount = uint32_t(3); + gpuRigidBodySettings.maxLinAcceleration = float(PX_MAX_F32); + gpuRigidBodySettings.gpuMemSceneSize = uint32_t(64); + gpuRigidBodySettings.gpuMemTempDataSize = uint32_t(192); + gpuRigidBodySettings.sphereSlices = uint32_t(4); + gpuRigidBodySettings.sphereStacks = uint32_t(4); + gpuRigidBodySettings.capsuleSlices = uint32_t(6); + gpuRigidBodySettings.capsuleStacks = uint32_t(4); + maxDynamicChunkIslandCount = uint32_t(0); + sortFIFOByBenefit = bool(false); + validBoundsPadding = float(0); + maxChunkSeparationLOD = float(0.5); + maxActorCreatesPerFrame = uint32_t(UINT32_MAX); + maxChunkDepthOffset = uint32_t(0); + massScale = float(1); + scaledMassExponent = float(0.5); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleModuleParameters_0p2::initReferences(void) +{ +} + +void DestructibleModuleParameters_0p2::freeDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p2::freeStrings(void) +{ +} + +void DestructibleModuleParameters_0p2::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p3.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p3.cpp old mode 100644 new mode 100755 index 30dff92..f45bbe9 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p3.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructibleModuleParameters_0p3.cpp @@ -1,505 +1,505 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructibleModuleParameters_0p3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructibleModuleParameters_0p3NS; - -const char* const DestructibleModuleParameters_0p3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 9; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent -}; - - -bool DestructibleModuleParameters_0p3::mBuiltFlag = false; -NvParameterized::MutexType DestructibleModuleParameters_0p3::mBuiltFlagMutex; - -DestructibleModuleParameters_0p3::DestructibleModuleParameters_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructibleModuleParameters_0p3::~DestructibleModuleParameters_0p3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructibleModuleParameters_0p3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructibleModuleParameters_0p3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p3::getParameterDefinitionTree(void) const -{ - DestructibleModuleParameters_0p3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructibleModuleParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructibleModuleParameters_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void DestructibleModuleParameters_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructibleModuleParameters_0p3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "This class is used for initializing the ModuleDestructible.", true); - ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="maxDynamicChunkIslandCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The maximum number of dynamic PxActors that will be allowed to be active per ApexScene. A value of 0 (the default) is interpreted as no limit.", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="sortFIFOByBenefit" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="validBoundsPadding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and Destructible actor bounds. The final combined and passed bounds is used to cull PxActors", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="maxChunkSeparationLOD" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("max", uint64_t(1), true); - HintTable[1].init("min", uint64_t(0), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); - HintTable[1].init("max", uint64_t(1), true); - HintTable[2].init("min", uint64_t(0), true); - HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="maxActorCreatesPerFrame" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="maxChunkDepthOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); - HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from DestructibleAssets (see DestructibleAsset).", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="massScale" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("massScale", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); - HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="scaledMassExponent" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); - HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[8]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(6); - Children[6] = PDEF_PTR(7); - Children[7] = PDEF_PTR(8); - - ParamDefTable[0].setChildren(Children, 8); - } - - mBuiltFlag = true; - -} -void DestructibleModuleParameters_0p3::initStrings(void) -{ -} - -void DestructibleModuleParameters_0p3::initDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - maxDynamicChunkIslandCount = uint32_t(0); - sortFIFOByBenefit = bool(false); - validBoundsPadding = float(0); - maxChunkSeparationLOD = float(0.5); - maxActorCreatesPerFrame = uint32_t(UINT32_MAX); - maxChunkDepthOffset = uint32_t(0); - massScale = float(1); - scaledMassExponent = float(0.5); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructibleModuleParameters_0p3::initReferences(void) -{ -} - -void DestructibleModuleParameters_0p3::freeDynamicArrays(void) -{ -} - -void DestructibleModuleParameters_0p3::freeStrings(void) -{ -} - -void DestructibleModuleParameters_0p3::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructibleModuleParameters_0p3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructibleModuleParameters_0p3NS; + +const char* const DestructibleModuleParameters_0p3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 9; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 8 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxDynamicChunkIslandCount), NULL, 0 }, // maxDynamicChunkIslandCount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->sortFIFOByBenefit), NULL, 0 }, // sortFIFOByBenefit + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->validBoundsPadding), NULL, 0 }, // validBoundsPadding + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->maxChunkSeparationLOD), NULL, 0 }, // maxChunkSeparationLOD + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxActorCreatesPerFrame), NULL, 0 }, // maxActorCreatesPerFrame + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->maxChunkDepthOffset), NULL, 0 }, // maxChunkDepthOffset + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->massScale), NULL, 0 }, // massScale + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->scaledMassExponent), NULL, 0 }, // scaledMassExponent +}; + + +bool DestructibleModuleParameters_0p3::mBuiltFlag = false; +NvParameterized::MutexType DestructibleModuleParameters_0p3::mBuiltFlagMutex; + +DestructibleModuleParameters_0p3::DestructibleModuleParameters_0p3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructibleModuleParameters_0p3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructibleModuleParameters_0p3::~DestructibleModuleParameters_0p3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructibleModuleParameters_0p3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructibleModuleParameters_0p3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructibleModuleParameters_0p3::getParameterDefinitionTree(void) const +{ + DestructibleModuleParameters_0p3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructibleModuleParameters_0p3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructibleModuleParameters_0p3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void DestructibleModuleParameters_0p3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructibleModuleParameters_0p3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "This class is used for initializing the ModuleDestructible.", true); + ParamDefTable[0].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="maxDynamicChunkIslandCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("maxDynamicChunkIslandCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The maximum number of dynamic PxActors that will be allowed to be active per ApexScene. A value of 0 (the default) is interpreted as no limit.", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="sortFIFOByBenefit" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("sortFIFOByBenefit", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Instead of keeping the maxCount youngest, use maxCount largest benefit if this is true.", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="validBoundsPadding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("validBoundsPadding", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "The padding applied to the combined scene valid bounds and Destructible actor bounds. The final combined and passed bounds is used to cull PxActors", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="maxChunkSeparationLOD" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("maxChunkSeparationLOD", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("max", uint64_t(1), true); + HintTable[1].init("min", uint64_t(0), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("longDescription", "Chunk islands are destroyed after this time or separation from their origins. This parameter sets the lifetimes and max separations within their min-max ranges. The valid range is [0,1]. Default is 0.5.", true); + HintTable[1].init("max", uint64_t(1), true); + HintTable[2].init("min", uint64_t(0), true); + HintTable[3].init("shortDescription", "Every destructible asset defines a min and max lifetime, and maximum separation distance for its chunks.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="maxActorCreatesPerFrame" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("maxActorCreatesPerFrame", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Lets the user throttle the number of SDK actor creates per frame (per scene) due to destruction, as this can be quite costly. The default is 0xffffffff (unlimited).", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="maxChunkDepthOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("maxChunkDepthOffset", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If maxChunkDepthOffset = 0, all chunks can be fractured. If maxChunkDepthOffset = 1, the highest level (smallest) chunks are eliminated, etc. This prevents too many chunks from being formed. In other words, the higher maxChunkDepthOffset, the lower the LOD.", true); + HintTable[1].init("shortDescription", "Effectively eliminates the higher level (smaller) chunks from DestructibleAssets (see DestructibleAsset).", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="massScale" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("massScale", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,infinity). Default = 1.0.\n", true); + HintTable[1].init("shortDescription", "Used with scaledMassExponent for scaling dynamic chunk masses.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="scaledMassExponent" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("scaledMassExponent", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Used with massScale for scaling dynamic chunk masses.\nThe 'real' mass m of a chunk is calculated by the destructible actor's density multiplied by\nthe total volume of the chunk's (scaled) collision shapes. The mass used in\nthe simulation is massScale*pow(m/massScale,scaledMassExponent). Values less than 1 have the\neffect of reducing the ratio of different masses. The closer scaledMassExponent is to zero, the\nmore the ratio will be 'flattened.' This helps PhysX converge when there is a very large number\nof interacting rigid bodies (such as a pile of destructible chunks).\nValid range: (0,1]. Default = 0.5.\n", true); + HintTable[1].init("shortDescription", "Used with massScale for scaling dynamic chunk masses.", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[8]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(6); + Children[6] = PDEF_PTR(7); + Children[7] = PDEF_PTR(8); + + ParamDefTable[0].setChildren(Children, 8); + } + + mBuiltFlag = true; + +} +void DestructibleModuleParameters_0p3::initStrings(void) +{ +} + +void DestructibleModuleParameters_0p3::initDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + maxDynamicChunkIslandCount = uint32_t(0); + sortFIFOByBenefit = bool(false); + validBoundsPadding = float(0); + maxChunkSeparationLOD = float(0.5); + maxActorCreatesPerFrame = uint32_t(UINT32_MAX); + maxChunkDepthOffset = uint32_t(0); + massScale = float(1); + scaledMassExponent = float(0.5); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructibleModuleParameters_0p3::initReferences(void) +{ +} + +void DestructibleModuleParameters_0p3::freeDynamicArrays(void) +{ +} + +void DestructibleModuleParameters_0p3::freeStrings(void) +{ +} + +void DestructibleModuleParameters_0p3::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructiblePreviewParam_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructiblePreviewParam_0p0.cpp old mode 100644 new mode 100755 index c2a1212..a3144c5 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructiblePreviewParam_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/DestructiblePreviewParam_0p0.cpp @@ -1,572 +1,572 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "DestructiblePreviewParam_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace DestructiblePreviewParam_0p0NS; - -const char* const DestructiblePreviewParam_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 10; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 7, 9, 6, 8, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, - { TYPE_MAT44, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->chunkDepth), NULL, 0 }, // chunkDepth - { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->explodeAmount), NULL, 0 }, // explodeAmount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderUnexplodedChunksStatically), NULL, 0 }, // renderUnexplodedChunksStatically - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(7), 1 }, // overrideSkinnedMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(8), 1 }, // overrideStaticMaterialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] - { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData -}; - - -bool DestructiblePreviewParam_0p0::mBuiltFlag = false; -NvParameterized::MutexType DestructiblePreviewParam_0p0::mBuiltFlagMutex; - -DestructiblePreviewParam_0p0::DestructiblePreviewParam_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &DestructiblePreviewParam_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -DestructiblePreviewParam_0p0::~DestructiblePreviewParam_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void DestructiblePreviewParam_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~DestructiblePreviewParam_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* DestructiblePreviewParam_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* DestructiblePreviewParam_0p0::getParameterDefinitionTree(void) const -{ - DestructiblePreviewParam_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType DestructiblePreviewParam_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType DestructiblePreviewParam_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void DestructiblePreviewParam_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ -/* [0] - overrideStaticMaterialNames (not an array of structs) */ - -void DestructiblePreviewParam_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void DestructiblePreviewParam_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="globalPose" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("globalPose", TYPE_MAT44, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The pose for the destructible preview, including scaling.\n", true); - HintTable[1].init("shortDescription", "The pose for the destructible preview", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="chunkDepth" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("chunkDepth", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Which chunk depth to render.\n", true); - HintTable[1].init("shortDescription", "Which chunk depth to render.", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="explodeAmount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("explodeAmount", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "How far apart to 'explode' the chunks rendered. The value is relative to the chunk's initial offset from the origin.\n", true); - HintTable[1].init("shortDescription", "How far apart to 'explode' the chunks rendered.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="renderUnexplodedChunksStatically" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("renderUnexplodedChunksStatically", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If true, unexploded chunks (see explodeAmount) will be renderered statically (without skinning).\nDefault value = false.\n", true); - HintTable[1].init("shortDescription", "Whether or not to render unexploded chunks statically (without skinning)", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="overrideSkinnedMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="overrideSkinnedMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideStaticMaterialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideStaticMaterialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); - HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="userData" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("userData", TYPE_U64, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("editorDisplay", "false", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("editorDisplay", "false", true); - HintTable[1].init("shortDescription", "Optional user data pointer associated with the destructible preview", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - Children[4] = PDEF_PTR(5); - Children[5] = PDEF_PTR(7); - Children[6] = PDEF_PTR(9); - - ParamDefTable[0].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=5, longName="overrideSkinnedMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=7, longName="overrideStaticMaterialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(8); - - ParamDefTable[7].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void DestructiblePreviewParam_0p0::initStrings(void) -{ -} - -void DestructiblePreviewParam_0p0::initDynamicArrays(void) -{ - overrideSkinnedMaterialNames.buf = NULL; - overrideSkinnedMaterialNames.isAllocated = true; - overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideSkinnedMaterialNames.arraySizes[0] = 0; - overrideStaticMaterialNames.buf = NULL; - overrideStaticMaterialNames.isAllocated = true; - overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - overrideStaticMaterialNames.arraySizes[0] = 0; -} - -void DestructiblePreviewParam_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - globalPose = physx::PxMat44(init(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)); - chunkDepth = uint32_t(0); - explodeAmount = float(0); - renderUnexplodedChunksStatically = bool(false); - userData = uint64_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void DestructiblePreviewParam_0p0::initReferences(void) -{ -} - -void DestructiblePreviewParam_0p0::freeDynamicArrays(void) -{ - if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) - { - mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); - } - if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) - { - mParameterizedTraits->free(overrideStaticMaterialNames.buf); - } -} - -void DestructiblePreviewParam_0p0::freeStrings(void) -{ - - for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) - { - if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); - } - } - - for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) - { - if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); - } - } -} - -void DestructiblePreviewParam_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "DestructiblePreviewParam_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace DestructiblePreviewParam_0p0NS; + +const char* const DestructiblePreviewParam_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 10; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 7, 9, 6, 8, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, + { TYPE_MAT44, false, (size_t)(&((ParametersStruct*)0)->globalPose), NULL, 0 }, // globalPose + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->chunkDepth), NULL, 0 }, // chunkDepth + { TYPE_F32, false, (size_t)(&((ParametersStruct*)0)->explodeAmount), NULL, 0 }, // explodeAmount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->renderUnexplodedChunksStatically), NULL, 0 }, // renderUnexplodedChunksStatically + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideSkinnedMaterialNames), CHILDREN(7), 1 }, // overrideSkinnedMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideSkinnedMaterialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->overrideStaticMaterialNames), CHILDREN(8), 1 }, // overrideStaticMaterialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // overrideStaticMaterialNames[] + { TYPE_U64, false, (size_t)(&((ParametersStruct*)0)->userData), NULL, 0 }, // userData +}; + + +bool DestructiblePreviewParam_0p0::mBuiltFlag = false; +NvParameterized::MutexType DestructiblePreviewParam_0p0::mBuiltFlagMutex; + +DestructiblePreviewParam_0p0::DestructiblePreviewParam_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &DestructiblePreviewParam_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +DestructiblePreviewParam_0p0::~DestructiblePreviewParam_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void DestructiblePreviewParam_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~DestructiblePreviewParam_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* DestructiblePreviewParam_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* DestructiblePreviewParam_0p0::getParameterDefinitionTree(void) const +{ + DestructiblePreviewParam_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType DestructiblePreviewParam_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType DestructiblePreviewParam_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void DestructiblePreviewParam_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - overrideSkinnedMaterialNames (not an array of structs) */ +/* [0] - overrideStaticMaterialNames (not an array of structs) */ + +void DestructiblePreviewParam_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void DestructiblePreviewParam_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="globalPose" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("globalPose", TYPE_MAT44, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The pose for the destructible preview, including scaling.\n", true); + HintTable[1].init("shortDescription", "The pose for the destructible preview", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="chunkDepth" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("chunkDepth", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Which chunk depth to render.\n", true); + HintTable[1].init("shortDescription", "Which chunk depth to render.", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="explodeAmount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("explodeAmount", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "How far apart to 'explode' the chunks rendered. The value is relative to the chunk's initial offset from the origin.\n", true); + HintTable[1].init("shortDescription", "How far apart to 'explode' the chunks rendered.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="renderUnexplodedChunksStatically" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("renderUnexplodedChunksStatically", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If true, unexploded chunks (see explodeAmount) will be renderered statically (without skinning).\nDefault value = false.\n", true); + HintTable[1].init("shortDescription", "Whether or not to render unexploded chunks statically (without skinning)", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="overrideSkinnedMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="overrideSkinnedMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("overrideSkinnedMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for skinned rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for skinned rendering", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="overrideStaticMaterialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("overrideStaticMaterialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="overrideStaticMaterialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("overrideStaticMaterialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-actor material names, to override those in the asset, for static rendering.", true); + HintTable[1].init("shortDescription", "Per-actor material names, to override those in the asset, for static rendering", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="userData" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("userData", TYPE_U64, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("editorDisplay", "false", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("editorDisplay", "false", true); + HintTable[1].init("shortDescription", "Optional user data pointer associated with the destructible preview", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + Children[4] = PDEF_PTR(5); + Children[5] = PDEF_PTR(7); + Children[6] = PDEF_PTR(9); + + ParamDefTable[0].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=5, longName="overrideSkinnedMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=7, longName="overrideStaticMaterialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(8); + + ParamDefTable[7].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void DestructiblePreviewParam_0p0::initStrings(void) +{ +} + +void DestructiblePreviewParam_0p0::initDynamicArrays(void) +{ + overrideSkinnedMaterialNames.buf = NULL; + overrideSkinnedMaterialNames.isAllocated = true; + overrideSkinnedMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideSkinnedMaterialNames.arraySizes[0] = 0; + overrideStaticMaterialNames.buf = NULL; + overrideStaticMaterialNames.isAllocated = true; + overrideStaticMaterialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + overrideStaticMaterialNames.arraySizes[0] = 0; +} + +void DestructiblePreviewParam_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + globalPose = physx::PxMat44(init(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1)); + chunkDepth = uint32_t(0); + explodeAmount = float(0); + renderUnexplodedChunksStatically = bool(false); + userData = uint64_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void DestructiblePreviewParam_0p0::initReferences(void) +{ +} + +void DestructiblePreviewParam_0p0::freeDynamicArrays(void) +{ + if (overrideSkinnedMaterialNames.isAllocated && overrideSkinnedMaterialNames.buf) + { + mParameterizedTraits->free(overrideSkinnedMaterialNames.buf); + } + if (overrideStaticMaterialNames.isAllocated && overrideStaticMaterialNames.buf) + { + mParameterizedTraits->free(overrideStaticMaterialNames.buf); + } +} + +void DestructiblePreviewParam_0p0::freeStrings(void) +{ + + for (int i = 0; i < overrideSkinnedMaterialNames.arraySizes[0]; ++i) + { + if (overrideSkinnedMaterialNames.buf[i].isAllocated && overrideSkinnedMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideSkinnedMaterialNames.buf[i].buf); + } + } + + for (int i = 0; i < overrideStaticMaterialNames.arraySizes[0]; ++i) + { + if (overrideStaticMaterialNames.buf[i].isAllocated && overrideStaticMaterialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)overrideStaticMaterialNames.buf[i].buf); + } + } +} + +void DestructiblePreviewParam_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStream_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStream_0p0.cpp old mode 100644 new mode 100755 index fbd2d71..93004bb --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStream_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStream_0p0.cpp @@ -1,348 +1,348 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "MeshCookedCollisionStream_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace MeshCookedCollisionStream_0p0NS; - -const char* const MeshCookedCollisionStream_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bytes), CHILDREN(1), 1 }, // bytes - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // bytes[] -}; - - -bool MeshCookedCollisionStream_0p0::mBuiltFlag = false; -NvParameterized::MutexType MeshCookedCollisionStream_0p0::mBuiltFlagMutex; - -MeshCookedCollisionStream_0p0::MeshCookedCollisionStream_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStream_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -MeshCookedCollisionStream_0p0::~MeshCookedCollisionStream_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void MeshCookedCollisionStream_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~MeshCookedCollisionStream_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStream_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStream_0p0::getParameterDefinitionTree(void) const -{ - MeshCookedCollisionStream_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType MeshCookedCollisionStream_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType MeshCookedCollisionStream_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void MeshCookedCollisionStream_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void MeshCookedCollisionStream_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void MeshCookedCollisionStream_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="bytes" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("bytes", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); - HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="bytes[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("bytes", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); - HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="bytes" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void MeshCookedCollisionStream_0p0::initStrings(void) -{ -} - -void MeshCookedCollisionStream_0p0::initDynamicArrays(void) -{ - bytes.buf = NULL; - bytes.isAllocated = true; - bytes.elementSize = sizeof(uint8_t); - bytes.arraySizes[0] = 0; -} - -void MeshCookedCollisionStream_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void MeshCookedCollisionStream_0p0::initReferences(void) -{ -} - -void MeshCookedCollisionStream_0p0::freeDynamicArrays(void) -{ - if (bytes.isAllocated && bytes.buf) - { - mParameterizedTraits->free(bytes.buf); - } -} - -void MeshCookedCollisionStream_0p0::freeStrings(void) -{ -} - -void MeshCookedCollisionStream_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "MeshCookedCollisionStream_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace MeshCookedCollisionStream_0p0NS; + +const char* const MeshCookedCollisionStream_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bytes), CHILDREN(1), 1 }, // bytes + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // bytes[] +}; + + +bool MeshCookedCollisionStream_0p0::mBuiltFlag = false; +NvParameterized::MutexType MeshCookedCollisionStream_0p0::mBuiltFlagMutex; + +MeshCookedCollisionStream_0p0::MeshCookedCollisionStream_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStream_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +MeshCookedCollisionStream_0p0::~MeshCookedCollisionStream_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void MeshCookedCollisionStream_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~MeshCookedCollisionStream_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStream_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStream_0p0::getParameterDefinitionTree(void) const +{ + MeshCookedCollisionStream_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType MeshCookedCollisionStream_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType MeshCookedCollisionStream_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void MeshCookedCollisionStream_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void MeshCookedCollisionStream_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void MeshCookedCollisionStream_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="bytes" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("bytes", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); + HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="bytes[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("bytes", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "A byte stream used to store cooked convex collision data. One\n is needed for every chunk at every scale which will be instanced.", true); + HintTable[1].init("shortDescription", "A byte stream used to store cooked convex collision data", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="bytes" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void MeshCookedCollisionStream_0p0::initStrings(void) +{ +} + +void MeshCookedCollisionStream_0p0::initDynamicArrays(void) +{ + bytes.buf = NULL; + bytes.isAllocated = true; + bytes.elementSize = sizeof(uint8_t); + bytes.arraySizes[0] = 0; +} + +void MeshCookedCollisionStream_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void MeshCookedCollisionStream_0p0::initReferences(void) +{ +} + +void MeshCookedCollisionStream_0p0::freeDynamicArrays(void) +{ + if (bytes.isAllocated && bytes.buf) + { + mParameterizedTraits->free(bytes.buf); + } +} + +void MeshCookedCollisionStream_0p0::freeStrings(void) +{ +} + +void MeshCookedCollisionStream_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStreamsAtScale_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStreamsAtScale_0p0.cpp old mode 100644 new mode 100755 index 053cab3..66f43da --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStreamsAtScale_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/MeshCookedCollisionStreamsAtScale_0p0.cpp @@ -1,376 +1,376 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "MeshCookedCollisionStreamsAtScale_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace MeshCookedCollisionStreamsAtScale_0p0NS; - -const char* const MeshCookedCollisionStreamsAtScale_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreams), CHILDREN(1), 1 }, // meshCookedCollisionStreams - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreams[] -}; - - -bool MeshCookedCollisionStreamsAtScale_0p0::mBuiltFlag = false; -NvParameterized::MutexType MeshCookedCollisionStreamsAtScale_0p0::mBuiltFlagMutex; - -MeshCookedCollisionStreamsAtScale_0p0::MeshCookedCollisionStreamsAtScale_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStreamsAtScale_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -MeshCookedCollisionStreamsAtScale_0p0::~MeshCookedCollisionStreamsAtScale_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void MeshCookedCollisionStreamsAtScale_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~MeshCookedCollisionStreamsAtScale_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale_0p0::getParameterDefinitionTree(void) const -{ - MeshCookedCollisionStreamsAtScale_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void MeshCookedCollisionStreamsAtScale_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - meshCookedCollisionStreams (not an array of structs) */ - -void MeshCookedCollisionStreamsAtScale_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void MeshCookedCollisionStreamsAtScale_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="meshCookedCollisionStreams" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("meshCookedCollisionStreams", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); - HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="meshCookedCollisionStreams[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("meshCookedCollisionStreams", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); - HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="meshCookedCollisionStreams" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void MeshCookedCollisionStreamsAtScale_0p0::initStrings(void) -{ -} - -void MeshCookedCollisionStreamsAtScale_0p0::initDynamicArrays(void) -{ - meshCookedCollisionStreams.buf = NULL; - meshCookedCollisionStreams.isAllocated = true; - meshCookedCollisionStreams.elementSize = sizeof(NvParameterized::Interface*); - meshCookedCollisionStreams.arraySizes[0] = 0; -} - -void MeshCookedCollisionStreamsAtScale_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void MeshCookedCollisionStreamsAtScale_0p0::initReferences(void) -{ -} - -void MeshCookedCollisionStreamsAtScale_0p0::freeDynamicArrays(void) -{ - if (meshCookedCollisionStreams.isAllocated && meshCookedCollisionStreams.buf) - { - mParameterizedTraits->free(meshCookedCollisionStreams.buf); - } -} - -void MeshCookedCollisionStreamsAtScale_0p0::freeStrings(void) -{ -} - -void MeshCookedCollisionStreamsAtScale_0p0::freeReferences(void) -{ - - for (int i = 0; i < meshCookedCollisionStreams.arraySizes[0]; ++i) - { - if (meshCookedCollisionStreams.buf[i]) - { - meshCookedCollisionStreams.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "MeshCookedCollisionStreamsAtScale_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace MeshCookedCollisionStreamsAtScale_0p0NS; + +const char* const MeshCookedCollisionStreamsAtScale_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->meshCookedCollisionStreams), CHILDREN(1), 1 }, // meshCookedCollisionStreams + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // meshCookedCollisionStreams[] +}; + + +bool MeshCookedCollisionStreamsAtScale_0p0::mBuiltFlag = false; +NvParameterized::MutexType MeshCookedCollisionStreamsAtScale_0p0::mBuiltFlagMutex; + +MeshCookedCollisionStreamsAtScale_0p0::MeshCookedCollisionStreamsAtScale_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &MeshCookedCollisionStreamsAtScale_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +MeshCookedCollisionStreamsAtScale_0p0::~MeshCookedCollisionStreamsAtScale_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void MeshCookedCollisionStreamsAtScale_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~MeshCookedCollisionStreamsAtScale_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* MeshCookedCollisionStreamsAtScale_0p0::getParameterDefinitionTree(void) const +{ + MeshCookedCollisionStreamsAtScale_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType MeshCookedCollisionStreamsAtScale_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void MeshCookedCollisionStreamsAtScale_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - meshCookedCollisionStreams (not an array of structs) */ + +void MeshCookedCollisionStreamsAtScale_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void MeshCookedCollisionStreamsAtScale_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="meshCookedCollisionStreams" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("meshCookedCollisionStreams", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); + HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="meshCookedCollisionStreams[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("meshCookedCollisionStreams", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "An array of collision hull byte streams. These will be the convex\n hulls for all chunks at a particular scale.", true); + HintTable[2].init("shortDescription", "An array of collision hull byte streams", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "MeshCookedCollisionStream" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="meshCookedCollisionStreams" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void MeshCookedCollisionStreamsAtScale_0p0::initStrings(void) +{ +} + +void MeshCookedCollisionStreamsAtScale_0p0::initDynamicArrays(void) +{ + meshCookedCollisionStreams.buf = NULL; + meshCookedCollisionStreams.isAllocated = true; + meshCookedCollisionStreams.elementSize = sizeof(NvParameterized::Interface*); + meshCookedCollisionStreams.arraySizes[0] = 0; +} + +void MeshCookedCollisionStreamsAtScale_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void MeshCookedCollisionStreamsAtScale_0p0::initReferences(void) +{ +} + +void MeshCookedCollisionStreamsAtScale_0p0::freeDynamicArrays(void) +{ + if (meshCookedCollisionStreams.isAllocated && meshCookedCollisionStreams.buf) + { + mParameterizedTraits->free(meshCookedCollisionStreams.buf); + } +} + +void MeshCookedCollisionStreamsAtScale_0p0::freeStrings(void) +{ +} + +void MeshCookedCollisionStreamsAtScale_0p0::freeReferences(void) +{ + + for (int i = 0; i < meshCookedCollisionStreams.arraySizes[0]; ++i) + { + if (meshCookedCollisionStreams.buf[i]) + { + meshCookedCollisionStreams.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceParameters_0p0.cpp old mode 100644 new mode 100755 index 0399f89..5ec860e --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceParameters_0p0.cpp @@ -1,438 +1,438 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceTraceParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace SurfaceTraceParameters_0p0NS; - -const char* const SurfaceTraceParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 5, 2, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshIndices), CHILDREN(3), 1 }, // submeshIndices - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // submeshIndices[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexIndices), CHILDREN(4), 1 }, // vertexIndices - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexIndices[] - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->defaultNormal), NULL, 0 }, // defaultNormal -}; - - -bool SurfaceTraceParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType SurfaceTraceParameters_0p0::mBuiltFlagMutex; - -SurfaceTraceParameters_0p0::SurfaceTraceParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceTraceParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceTraceParameters_0p0::~SurfaceTraceParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceTraceParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceTraceParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceParameters_0p0::getParameterDefinitionTree(void) const -{ - SurfaceTraceParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceTraceParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceTraceParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceTraceParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void SurfaceTraceParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceTraceParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("submeshIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("submeshIndices", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="vertexIndices" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("vertexIndices", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexIndices[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("vertexIndices", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); - HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultNormal" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("defaultNormal", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The average surface normal for this trace. A surface trace is a single closed loop\n on the surface of the mesh, along triangle boundaries. This normal is the normalized average of the\n surface triangles enclosed by the loop.", true); - HintTable[1].init("shortDescription", "The average surface normal for this trace", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(5); - - ParamDefTable[0].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=1, longName="submeshIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="vertexIndices" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SurfaceTraceParameters_0p0::initStrings(void) -{ -} - -void SurfaceTraceParameters_0p0::initDynamicArrays(void) -{ - submeshIndices.buf = NULL; - submeshIndices.isAllocated = true; - submeshIndices.elementSize = sizeof(uint8_t); - submeshIndices.arraySizes[0] = 0; - vertexIndices.buf = NULL; - vertexIndices.isAllocated = true; - vertexIndices.elementSize = sizeof(uint32_t); - vertexIndices.arraySizes[0] = 0; -} - -void SurfaceTraceParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceTraceParameters_0p0::initReferences(void) -{ -} - -void SurfaceTraceParameters_0p0::freeDynamicArrays(void) -{ - if (submeshIndices.isAllocated && submeshIndices.buf) - { - mParameterizedTraits->free(submeshIndices.buf); - } - if (vertexIndices.isAllocated && vertexIndices.buf) - { - mParameterizedTraits->free(vertexIndices.buf); - } -} - -void SurfaceTraceParameters_0p0::freeStrings(void) -{ -} - -void SurfaceTraceParameters_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceTraceParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace SurfaceTraceParameters_0p0NS; + +const char* const SurfaceTraceParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 5, 2, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshIndices), CHILDREN(3), 1 }, // submeshIndices + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // submeshIndices[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexIndices), CHILDREN(4), 1 }, // vertexIndices + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexIndices[] + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->defaultNormal), NULL, 0 }, // defaultNormal +}; + + +bool SurfaceTraceParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType SurfaceTraceParameters_0p0::mBuiltFlagMutex; + +SurfaceTraceParameters_0p0::SurfaceTraceParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceTraceParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceTraceParameters_0p0::~SurfaceTraceParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceTraceParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceTraceParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceParameters_0p0::getParameterDefinitionTree(void) const +{ + SurfaceTraceParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceTraceParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceTraceParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceTraceParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void SurfaceTraceParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceTraceParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("submeshIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("submeshIndices", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong.\n The surface traces are defined as a set of vertex indices, but these indices are relative to\n a submesh. The size of submeshIndices must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The submeshes to which the corresponding vertices (in vertexIndices) belong", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="vertexIndices" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("vertexIndices", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexIndices[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("vertexIndices", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The vertex indices defining the surface trace. The surface traces are defined\n as a set of vertex indices, but these indices are relative to a submesh. The size of submeshIndices\n must be equal to the size of vertexIndices.", true); + HintTable[1].init("shortDescription", "The vertex indices defining the surface trace.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="defaultNormal" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("defaultNormal", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The average surface normal for this trace. A surface trace is a single closed loop\n on the surface of the mesh, along triangle boundaries. This normal is the normalized average of the\n surface triangles enclosed by the loop.", true); + HintTable[1].init("shortDescription", "The average surface normal for this trace", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(5); + + ParamDefTable[0].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=1, longName="submeshIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="vertexIndices" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SurfaceTraceParameters_0p0::initStrings(void) +{ +} + +void SurfaceTraceParameters_0p0::initDynamicArrays(void) +{ + submeshIndices.buf = NULL; + submeshIndices.isAllocated = true; + submeshIndices.elementSize = sizeof(uint8_t); + submeshIndices.arraySizes[0] = 0; + vertexIndices.buf = NULL; + vertexIndices.isAllocated = true; + vertexIndices.elementSize = sizeof(uint32_t); + vertexIndices.arraySizes[0] = 0; +} + +void SurfaceTraceParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceTraceParameters_0p0::initReferences(void) +{ +} + +void SurfaceTraceParameters_0p0::freeDynamicArrays(void) +{ + if (submeshIndices.isAllocated && submeshIndices.buf) + { + mParameterizedTraits->free(submeshIndices.buf); + } + if (vertexIndices.isAllocated && vertexIndices.buf) + { + mParameterizedTraits->free(vertexIndices.buf); + } +} + +void SurfaceTraceParameters_0p0::freeStrings(void) +{ +} + +void SurfaceTraceParameters_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p0.cpp old mode 100644 new mode 100755 index 8c07952..b0153e2 --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p0.cpp @@ -1,376 +1,376 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceTraceSetParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace SurfaceTraceSetParameters_0p0NS; - -const char* const SurfaceTraceSetParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(1), 1 }, // traces - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] -}; - - -bool SurfaceTraceSetParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType SurfaceTraceSetParameters_0p0::mBuiltFlagMutex; - -SurfaceTraceSetParameters_0p0::SurfaceTraceSetParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceTraceSetParameters_0p0::~SurfaceTraceSetParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceTraceSetParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceTraceSetParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p0::getParameterDefinitionTree(void) const -{ - SurfaceTraceSetParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceTraceSetParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - traces (not an array of structs) */ - -void SurfaceTraceSetParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceTraceSetParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("traces", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("traces", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="traces" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SurfaceTraceSetParameters_0p0::initStrings(void) -{ -} - -void SurfaceTraceSetParameters_0p0::initDynamicArrays(void) -{ - traces.buf = NULL; - traces.isAllocated = true; - traces.elementSize = sizeof(NvParameterized::Interface*); - traces.arraySizes[0] = 0; -} - -void SurfaceTraceSetParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceTraceSetParameters_0p0::initReferences(void) -{ -} - -void SurfaceTraceSetParameters_0p0::freeDynamicArrays(void) -{ - if (traces.isAllocated && traces.buf) - { - mParameterizedTraits->free(traces.buf); - } -} - -void SurfaceTraceSetParameters_0p0::freeStrings(void) -{ -} - -void SurfaceTraceSetParameters_0p0::freeReferences(void) -{ - - for (int i = 0; i < traces.arraySizes[0]; ++i) - { - if (traces.buf[i]) - { - traces.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceTraceSetParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace SurfaceTraceSetParameters_0p0NS; + +const char* const SurfaceTraceSetParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(1), 1 }, // traces + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] +}; + + +bool SurfaceTraceSetParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType SurfaceTraceSetParameters_0p0::mBuiltFlagMutex; + +SurfaceTraceSetParameters_0p0::SurfaceTraceSetParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceTraceSetParameters_0p0::~SurfaceTraceSetParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceTraceSetParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceTraceSetParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p0::getParameterDefinitionTree(void) const +{ + SurfaceTraceSetParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceTraceSetParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - traces (not an array of structs) */ + +void SurfaceTraceSetParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceTraceSetParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("traces", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("traces", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="traces" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SurfaceTraceSetParameters_0p0::initStrings(void) +{ +} + +void SurfaceTraceSetParameters_0p0::initDynamicArrays(void) +{ + traces.buf = NULL; + traces.isAllocated = true; + traces.elementSize = sizeof(NvParameterized::Interface*); + traces.arraySizes[0] = 0; +} + +void SurfaceTraceSetParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceTraceSetParameters_0p0::initReferences(void) +{ +} + +void SurfaceTraceSetParameters_0p0::freeDynamicArrays(void) +{ + if (traces.isAllocated && traces.buf) + { + mParameterizedTraits->free(traces.buf); + } +} + +void SurfaceTraceSetParameters_0p0::freeStrings(void) +{ +} + +void SurfaceTraceSetParameters_0p0::freeReferences(void) +{ + + for (int i = 0; i < traces.arraySizes[0]; ++i) + { + if (traces.buf[i]) + { + traces.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p1.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p1.cpp old mode 100644 new mode 100755 index 5327d3c..10af2df --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p1.cpp @@ -1,402 +1,402 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceTraceSetParameters_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace SurfaceTraceSetParameters_0p1NS; - -const char* const SurfaceTraceSetParameters_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 4; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(2), 1 }, // traces - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->positionOffset), NULL, 0 }, // positionOffset -}; - - -bool SurfaceTraceSetParameters_0p1::mBuiltFlag = false; -NvParameterized::MutexType SurfaceTraceSetParameters_0p1::mBuiltFlagMutex; - -SurfaceTraceSetParameters_0p1::SurfaceTraceSetParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParameters_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceTraceSetParameters_0p1::~SurfaceTraceSetParameters_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceTraceSetParameters_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceTraceSetParameters_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p1::getParameterDefinitionTree(void) const -{ - SurfaceTraceSetParameters_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceTraceSetParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - traces (not an array of structs) */ - -void SurfaceTraceSetParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceTraceSetParameters_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("traces", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("traces", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="positionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("positionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk-local offset for this trace, needed for instanced chunks.", true); - HintTable[1].init("shortDescription", "Chunk-local offset for this trace, needed for instanced chunks", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=1, longName="traces" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SurfaceTraceSetParameters_0p1::initStrings(void) -{ -} - -void SurfaceTraceSetParameters_0p1::initDynamicArrays(void) -{ - traces.buf = NULL; - traces.isAllocated = true; - traces.elementSize = sizeof(NvParameterized::Interface*); - traces.arraySizes[0] = 0; -} - -void SurfaceTraceSetParameters_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - positionOffset = physx::PxVec3(physx::PxVec3(0.0f)); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceTraceSetParameters_0p1::initReferences(void) -{ -} - -void SurfaceTraceSetParameters_0p1::freeDynamicArrays(void) -{ - if (traces.isAllocated && traces.buf) - { - mParameterizedTraits->free(traces.buf); - } -} - -void SurfaceTraceSetParameters_0p1::freeStrings(void) -{ -} - -void SurfaceTraceSetParameters_0p1::freeReferences(void) -{ - - for (int i = 0; i < traces.arraySizes[0]; ++i) - { - if (traces.buf[i]) - { - traces.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceTraceSetParameters_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace SurfaceTraceSetParameters_0p1NS; + +const char* const SurfaceTraceSetParameters_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 4; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(2), 1 }, // traces + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->positionOffset), NULL, 0 }, // positionOffset +}; + + +bool SurfaceTraceSetParameters_0p1::mBuiltFlag = false; +NvParameterized::MutexType SurfaceTraceSetParameters_0p1::mBuiltFlagMutex; + +SurfaceTraceSetParameters_0p1::SurfaceTraceSetParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParameters_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceTraceSetParameters_0p1::~SurfaceTraceSetParameters_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceTraceSetParameters_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceTraceSetParameters_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p1::getParameterDefinitionTree(void) const +{ + SurfaceTraceSetParameters_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceTraceSetParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - traces (not an array of structs) */ + +void SurfaceTraceSetParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceTraceSetParameters_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("traces", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("traces", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="positionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("positionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk-local offset for this trace, needed for instanced chunks.", true); + HintTable[1].init("shortDescription", "Chunk-local offset for this trace, needed for instanced chunks", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=1, longName="traces" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SurfaceTraceSetParameters_0p1::initStrings(void) +{ +} + +void SurfaceTraceSetParameters_0p1::initDynamicArrays(void) +{ + traces.buf = NULL; + traces.isAllocated = true; + traces.elementSize = sizeof(NvParameterized::Interface*); + traces.arraySizes[0] = 0; +} + +void SurfaceTraceSetParameters_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + positionOffset = physx::PxVec3(physx::PxVec3(0.0f)); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceTraceSetParameters_0p1::initReferences(void) +{ +} + +void SurfaceTraceSetParameters_0p1::freeDynamicArrays(void) +{ + if (traces.isAllocated && traces.buf) + { + mParameterizedTraits->free(traces.buf); + } +} + +void SurfaceTraceSetParameters_0p1::freeStrings(void) +{ +} + +void SurfaceTraceSetParameters_0p1::freeReferences(void) +{ + + for (int i = 0; i < traces.arraySizes[0]; ++i) + { + if (traces.buf[i]) + { + traces.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p2.cpp b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p2.cpp old mode 100644 new mode 100755 index fa80a00..fcd822d --- a/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p2.cpp +++ b/sdk/extensions/import/apexmodules/modules/destructible_legacy/src/autogen/SurfaceTraceSetParameters_0p2.cpp @@ -1,402 +1,402 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceTraceSetParameters_0p2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace SurfaceTraceSetParameters_0p2NS; - -const char* const SurfaceTraceSetParameters_0p2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 4; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(2), 1 }, // traces - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] - { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->positionOffset), NULL, 0 }, // positionOffset -}; - - -bool SurfaceTraceSetParameters_0p2::mBuiltFlag = false; -NvParameterized::MutexType SurfaceTraceSetParameters_0p2::mBuiltFlagMutex; - -SurfaceTraceSetParameters_0p2::SurfaceTraceSetParameters_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParameters_0p2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceTraceSetParameters_0p2::~SurfaceTraceSetParameters_0p2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceTraceSetParameters_0p2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceTraceSetParameters_0p2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p2::getParameterDefinitionTree(void) const -{ - SurfaceTraceSetParameters_0p2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceTraceSetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceTraceSetParameters_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - traces (not an array of structs) */ - -void SurfaceTraceSetParameters_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceTraceSetParameters_0p2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("traces", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("traces", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); - HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="positionOffset" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("positionOffset", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Chunk-local offset for this trace, needed for instanced chunks.", true); - HintTable[1].init("shortDescription", "Chunk-local offset for this trace, needed for instanced chunks", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 2); - } - - // SetChildren for: nodeIndex=1, longName="traces" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SurfaceTraceSetParameters_0p2::initStrings(void) -{ -} - -void SurfaceTraceSetParameters_0p2::initDynamicArrays(void) -{ - traces.buf = NULL; - traces.isAllocated = true; - traces.elementSize = sizeof(NvParameterized::Interface*); - traces.arraySizes[0] = 0; -} - -void SurfaceTraceSetParameters_0p2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - positionOffset = physx::PxVec3(physx::PxVec3(0.0f)); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceTraceSetParameters_0p2::initReferences(void) -{ -} - -void SurfaceTraceSetParameters_0p2::freeDynamicArrays(void) -{ - if (traces.isAllocated && traces.buf) - { - mParameterizedTraits->free(traces.buf); - } -} - -void SurfaceTraceSetParameters_0p2::freeStrings(void) -{ -} - -void SurfaceTraceSetParameters_0p2::freeReferences(void) -{ - - for (int i = 0; i < traces.arraySizes[0]; ++i) - { - if (traces.buf[i]) - { - traces.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceTraceSetParameters_0p2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace SurfaceTraceSetParameters_0p2NS; + +const char* const SurfaceTraceSetParameters_0p2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 4; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 2 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->traces), CHILDREN(2), 1 }, // traces + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // traces[] + { TYPE_VEC3, false, (size_t)(&((ParametersStruct*)0)->positionOffset), NULL, 0 }, // positionOffset +}; + + +bool SurfaceTraceSetParameters_0p2::mBuiltFlag = false; +NvParameterized::MutexType SurfaceTraceSetParameters_0p2::mBuiltFlagMutex; + +SurfaceTraceSetParameters_0p2::SurfaceTraceSetParameters_0p2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceTraceSetParameters_0p2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceTraceSetParameters_0p2::~SurfaceTraceSetParameters_0p2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceTraceSetParameters_0p2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceTraceSetParameters_0p2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceTraceSetParameters_0p2::getParameterDefinitionTree(void) const +{ + SurfaceTraceSetParameters_0p2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceTraceSetParameters_0p2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceTraceSetParameters_0p2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - traces (not an array of structs) */ + +void SurfaceTraceSetParameters_0p2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceTraceSetParameters_0p2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="traces" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("traces", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="traces[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("traces", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "A set of surface traces belonging to a single chunk. Since chunks\n may have a complex shape, the triangles which are on the destructible's surface may not\n form a contiguous set. Therefore there may be more than one surface trace per chunk.", true); + HintTable[2].init("shortDescription", "A set of surface traces belonging to a single chunk", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SurfaceTraceParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="positionOffset" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("positionOffset", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Chunk-local offset for this trace, needed for instanced chunks.", true); + HintTable[1].init("shortDescription", "Chunk-local offset for this trace, needed for instanced chunks", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 2); + } + + // SetChildren for: nodeIndex=1, longName="traces" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SurfaceTraceSetParameters_0p2::initStrings(void) +{ +} + +void SurfaceTraceSetParameters_0p2::initDynamicArrays(void) +{ + traces.buf = NULL; + traces.isAllocated = true; + traces.elementSize = sizeof(NvParameterized::Interface*); + traces.arraySizes[0] = 0; +} + +void SurfaceTraceSetParameters_0p2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + positionOffset = physx::PxVec3(physx::PxVec3(0.0f)); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceTraceSetParameters_0p2::initReferences(void) +{ +} + +void SurfaceTraceSetParameters_0p2::freeDynamicArrays(void) +{ + if (traces.isAllocated && traces.buf) + { + mParameterizedTraits->free(traces.buf); + } +} + +void SurfaceTraceSetParameters_0p2::freeStrings(void) +{ +} + +void SurfaceTraceSetParameters_0p2::freeReferences(void) +{ + + for (int i = 0; i < traces.arraySizes[0]; ++i) + { + if (traces.buf[i]) + { + traces.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x1.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x1.h old mode 100644 new mode 100755 index 72b1543..cf35dd0 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x1.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x1.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x1_h -#define HEADER_BufferF32x1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x1NS -{ - - -struct F32_DynamicArray1D_Type -{ - float* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - F32_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xcdd104f7, 0x061ac76e, 0xc255d951, 0x1e7cffef, }; - -} // namespace BufferF32x1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x1 : public NvParameterized::NvParameters, public BufferF32x1NS::ParametersStruct -{ -public: - BufferF32x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x1NS::checksum); - return BufferF32x1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x1NS::ParametersStruct& parameters(void) const - { - BufferF32x1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x1), BufferF32x1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x1*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x1_h +#define HEADER_BufferF32x1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x1NS +{ + + +struct F32_DynamicArray1D_Type +{ + float* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + F32_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xcdd104f7, 0x061ac76e, 0xc255d951, 0x1e7cffef, }; + +} // namespace BufferF32x1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x1 : public NvParameterized::NvParameters, public BufferF32x1NS::ParametersStruct +{ +public: + BufferF32x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x1NS::checksum); + return BufferF32x1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x1NS::ParametersStruct& parameters(void) const + { + BufferF32x1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x1), BufferF32x1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x1*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x2.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x2.h old mode 100644 new mode 100755 index 50f2699..2b7ac57 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x2.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x2.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x2_h -#define HEADER_BufferF32x2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x2NS -{ - -struct F32x2_Type; - -struct F32x2_DynamicArray1D_Type -{ - F32x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x2_Type -{ - float x; - float y; -}; - -struct ParametersStruct -{ - - F32x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x788349ee, 0x95c560e2, 0x9633945e, 0x8cc784a0, }; - -} // namespace BufferF32x2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x2 : public NvParameterized::NvParameters, public BufferF32x2NS::ParametersStruct -{ -public: - BufferF32x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x2NS::checksum); - return BufferF32x2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x2NS::ParametersStruct& parameters(void) const - { - BufferF32x2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x2), BufferF32x2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x2*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x2_h +#define HEADER_BufferF32x2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x2NS +{ + +struct F32x2_Type; + +struct F32x2_DynamicArray1D_Type +{ + F32x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x2_Type +{ + float x; + float y; +}; + +struct ParametersStruct +{ + + F32x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x788349ee, 0x95c560e2, 0x9633945e, 0x8cc784a0, }; + +} // namespace BufferF32x2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x2 : public NvParameterized::NvParameters, public BufferF32x2NS::ParametersStruct +{ +public: + BufferF32x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x2NS::checksum); + return BufferF32x2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x2NS::ParametersStruct& parameters(void) const + { + BufferF32x2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x2), BufferF32x2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x2*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x3.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x3.h old mode 100644 new mode 100755 index 060a35e..97c0249 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x3.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x3.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x3_h -#define HEADER_BufferF32x3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x3NS -{ - -struct F32x3_Type; - -struct VEC3_DynamicArray1D_Type -{ - physx::PxVec3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x3_Type -{ - float x; - float y; - float z; -}; - -struct ParametersStruct -{ - - VEC3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x458b554a, 0x7ed3e930, 0x0299ff33, 0x9d69c11b, }; - -} // namespace BufferF32x3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x3 : public NvParameterized::NvParameters, public BufferF32x3NS::ParametersStruct -{ -public: - BufferF32x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x3NS::checksum); - return BufferF32x3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x3NS::ParametersStruct& parameters(void) const - { - BufferF32x3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x3), BufferF32x3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x3*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x3_h +#define HEADER_BufferF32x3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x3NS +{ + +struct F32x3_Type; + +struct VEC3_DynamicArray1D_Type +{ + physx::PxVec3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x3_Type +{ + float x; + float y; + float z; +}; + +struct ParametersStruct +{ + + VEC3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x458b554a, 0x7ed3e930, 0x0299ff33, 0x9d69c11b, }; + +} // namespace BufferF32x3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x3 : public NvParameterized::NvParameters, public BufferF32x3NS::ParametersStruct +{ +public: + BufferF32x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x3NS::checksum); + return BufferF32x3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x3NS::ParametersStruct& parameters(void) const + { + BufferF32x3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x3), BufferF32x3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x3*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x4.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x4.h old mode 100644 new mode 100755 index ad78586..d7f649f --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x4.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferF32x4.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x4_h -#define HEADER_BufferF32x4_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x4NS -{ - -struct F32x4_Type; - -struct F32x4_DynamicArray1D_Type -{ - F32x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x4_Type -{ - PX_ALIGN(16, float x); - float y; - float z; - float w; -}; - -struct ParametersStruct -{ - - F32x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x80321851, 0xa99e95a1, 0xd26ec9a8, 0x14206b37, }; - -} // namespace BufferF32x4NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x4 : public NvParameterized::NvParameters, public BufferF32x4NS::ParametersStruct -{ -public: - BufferF32x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x4(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x4NS::checksum); - return BufferF32x4NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x4NS::ParametersStruct& parameters(void) const - { - BufferF32x4* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x4NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x4Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x4::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x4), BufferF32x4::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x4)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x4)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x4::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x4 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x4*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x4::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x4::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x4::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x4::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x4_h +#define HEADER_BufferF32x4_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x4NS +{ + +struct F32x4_Type; + +struct F32x4_DynamicArray1D_Type +{ + F32x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x4_Type +{ + PX_ALIGN(16, float x); + float y; + float z; + float w; +}; + +struct ParametersStruct +{ + + F32x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x80321851, 0xa99e95a1, 0xd26ec9a8, 0x14206b37, }; + +} // namespace BufferF32x4NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x4 : public NvParameterized::NvParameters, public BufferF32x4NS::ParametersStruct +{ +public: + BufferF32x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x4(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x4NS::checksum); + return BufferF32x4NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x4NS::ParametersStruct& parameters(void) const + { + BufferF32x4* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x4NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x4Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x4::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x4), BufferF32x4::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x4)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x4)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x4::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x4 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x4*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x4::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x4::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x4::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x4::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x1.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x1.h old mode 100644 new mode 100755 index 51f93d4..e761220 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x1.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x1.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x1_h -#define HEADER_BufferU16x1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x1NS -{ - - -struct U16_DynamicArray1D_Type -{ - uint16_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U16_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x3c20aee2, 0x4e6abe8c, 0x8c1e5625, 0x7cabf8fc, }; - -} // namespace BufferU16x1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x1 : public NvParameterized::NvParameters, public BufferU16x1NS::ParametersStruct -{ -public: - BufferU16x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x1NS::checksum); - return BufferU16x1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x1NS::ParametersStruct& parameters(void) const - { - BufferU16x1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x1), BufferU16x1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x1*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x1_h +#define HEADER_BufferU16x1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x1NS +{ + + +struct U16_DynamicArray1D_Type +{ + uint16_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U16_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x3c20aee2, 0x4e6abe8c, 0x8c1e5625, 0x7cabf8fc, }; + +} // namespace BufferU16x1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x1 : public NvParameterized::NvParameters, public BufferU16x1NS::ParametersStruct +{ +public: + BufferU16x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x1NS::checksum); + return BufferU16x1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x1NS::ParametersStruct& parameters(void) const + { + BufferU16x1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x1), BufferU16x1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x1*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x2.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x2.h old mode 100644 new mode 100755 index e81607b..7592362 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x2.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x2.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x2_h -#define HEADER_BufferU16x2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x2NS -{ - -struct U16x2_Type; - -struct U16x2_DynamicArray1D_Type -{ - U16x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U16x2_Type -{ - uint16_t x; - uint16_t y; -}; - -struct ParametersStruct -{ - - U16x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x35087bb2, 0x98bdb0fd, 0x22e601f6, 0x79ba85e9, }; - -} // namespace BufferU16x2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x2 : public NvParameterized::NvParameters, public BufferU16x2NS::ParametersStruct -{ -public: - BufferU16x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x2NS::checksum); - return BufferU16x2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x2NS::ParametersStruct& parameters(void) const - { - BufferU16x2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x2), BufferU16x2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x2*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x2_h +#define HEADER_BufferU16x2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x2NS +{ + +struct U16x2_Type; + +struct U16x2_DynamicArray1D_Type +{ + U16x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U16x2_Type +{ + uint16_t x; + uint16_t y; +}; + +struct ParametersStruct +{ + + U16x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x35087bb2, 0x98bdb0fd, 0x22e601f6, 0x79ba85e9, }; + +} // namespace BufferU16x2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x2 : public NvParameterized::NvParameters, public BufferU16x2NS::ParametersStruct +{ +public: + BufferU16x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x2NS::checksum); + return BufferU16x2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x2NS::ParametersStruct& parameters(void) const + { + BufferU16x2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x2), BufferU16x2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x2*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x3.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x3.h old mode 100644 new mode 100755 index e16e5d7..7933a49 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x3.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x3.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x3_h -#define HEADER_BufferU16x3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x3NS -{ - -struct U16x3_Type; - -struct U16x3_DynamicArray1D_Type -{ - U16x3_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U16x3_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; -}; - -struct ParametersStruct -{ - - U16x3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x904a928f, 0x9f3f0b91, 0x29168b39, 0x31638e80, }; - -} // namespace BufferU16x3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x3 : public NvParameterized::NvParameters, public BufferU16x3NS::ParametersStruct -{ -public: - BufferU16x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x3NS::checksum); - return BufferU16x3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x3NS::ParametersStruct& parameters(void) const - { - BufferU16x3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x3), BufferU16x3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x3*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x3_h +#define HEADER_BufferU16x3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x3NS +{ + +struct U16x3_Type; + +struct U16x3_DynamicArray1D_Type +{ + U16x3_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U16x3_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; +}; + +struct ParametersStruct +{ + + U16x3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x904a928f, 0x9f3f0b91, 0x29168b39, 0x31638e80, }; + +} // namespace BufferU16x3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x3 : public NvParameterized::NvParameters, public BufferU16x3NS::ParametersStruct +{ +public: + BufferU16x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x3NS::checksum); + return BufferU16x3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x3NS::ParametersStruct& parameters(void) const + { + BufferU16x3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x3), BufferU16x3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x3*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x4.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x4.h old mode 100644 new mode 100755 index 0ab053a..c2c1db7 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x4.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU16x4.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x4_h -#define HEADER_BufferU16x4_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x4NS -{ - -struct U16x4_Type; - -struct U16x4_DynamicArray1D_Type -{ - U16x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U16x4_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; - uint16_t w; -}; - -struct ParametersStruct -{ - - U16x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x17ce6b83, 0x32ba98aa, 0xd03f98f6, 0x26918369, }; - -} // namespace BufferU16x4NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x4 : public NvParameterized::NvParameters, public BufferU16x4NS::ParametersStruct -{ -public: - BufferU16x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x4(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x4NS::checksum); - return BufferU16x4NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x4NS::ParametersStruct& parameters(void) const - { - BufferU16x4* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x4NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x4Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x4::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x4), BufferU16x4::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x4)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x4)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x4::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x4 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x4*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x4::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x4::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x4::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x4::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x4_h +#define HEADER_BufferU16x4_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x4NS +{ + +struct U16x4_Type; + +struct U16x4_DynamicArray1D_Type +{ + U16x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U16x4_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; + uint16_t w; +}; + +struct ParametersStruct +{ + + U16x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x17ce6b83, 0x32ba98aa, 0xd03f98f6, 0x26918369, }; + +} // namespace BufferU16x4NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x4 : public NvParameterized::NvParameters, public BufferU16x4NS::ParametersStruct +{ +public: + BufferU16x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x4(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x4NS::checksum); + return BufferU16x4NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x4NS::ParametersStruct& parameters(void) const + { + BufferU16x4* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x4NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x4Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x4::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x4), BufferU16x4::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x4)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x4)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x4::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x4 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x4*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x4::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x4::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x4::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x4::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x1.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x1.h old mode 100644 new mode 100755 index 30d9836..d6df69f --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x1.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x1.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x1_h -#define HEADER_BufferU32x1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x1NS -{ - - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U32_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xaea8bce2, 0x233c95f7, 0xdaa9d0d3, 0x43951dbe, }; - -} // namespace BufferU32x1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x1 : public NvParameterized::NvParameters, public BufferU32x1NS::ParametersStruct -{ -public: - BufferU32x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x1NS::checksum); - return BufferU32x1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x1NS::ParametersStruct& parameters(void) const - { - BufferU32x1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x1), BufferU32x1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x1*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x1_h +#define HEADER_BufferU32x1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x1NS +{ + + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U32_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xaea8bce2, 0x233c95f7, 0xdaa9d0d3, 0x43951dbe, }; + +} // namespace BufferU32x1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x1 : public NvParameterized::NvParameters, public BufferU32x1NS::ParametersStruct +{ +public: + BufferU32x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x1NS::checksum); + return BufferU32x1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x1NS::ParametersStruct& parameters(void) const + { + BufferU32x1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x1), BufferU32x1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x1*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x2.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x2.h old mode 100644 new mode 100755 index d955df4..59690d0 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x2.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x2.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x2_h -#define HEADER_BufferU32x2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x2NS -{ - -struct U32x2_Type; - -struct U32x2_DynamicArray1D_Type -{ - U32x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32x2_Type -{ - uint32_t x; - uint32_t y; -}; - -struct ParametersStruct -{ - - U32x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x8f8dc3d4, 0x45e914f5, 0xe6432284, 0xf7487471, }; - -} // namespace BufferU32x2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x2 : public NvParameterized::NvParameters, public BufferU32x2NS::ParametersStruct -{ -public: - BufferU32x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x2NS::checksum); - return BufferU32x2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x2NS::ParametersStruct& parameters(void) const - { - BufferU32x2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x2), BufferU32x2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x2*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x2_h +#define HEADER_BufferU32x2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x2NS +{ + +struct U32x2_Type; + +struct U32x2_DynamicArray1D_Type +{ + U32x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32x2_Type +{ + uint32_t x; + uint32_t y; +}; + +struct ParametersStruct +{ + + U32x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x8f8dc3d4, 0x45e914f5, 0xe6432284, 0xf7487471, }; + +} // namespace BufferU32x2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x2 : public NvParameterized::NvParameters, public BufferU32x2NS::ParametersStruct +{ +public: + BufferU32x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x2NS::checksum); + return BufferU32x2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x2NS::ParametersStruct& parameters(void) const + { + BufferU32x2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x2), BufferU32x2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x2*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x3.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x3.h old mode 100644 new mode 100755 index 41ee251..967b83f --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x3.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x3.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x3_h -#define HEADER_BufferU32x3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x3NS -{ - -struct U32x3_Type; - -struct U32x3_DynamicArray1D_Type -{ - U32x3_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32x3_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; -}; - -struct ParametersStruct -{ - - U32x3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xc0b737db, 0x1cae35c4, 0xe957acc9, 0x68cb2306, }; - -} // namespace BufferU32x3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x3 : public NvParameterized::NvParameters, public BufferU32x3NS::ParametersStruct -{ -public: - BufferU32x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x3NS::checksum); - return BufferU32x3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x3NS::ParametersStruct& parameters(void) const - { - BufferU32x3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x3), BufferU32x3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x3*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x3_h +#define HEADER_BufferU32x3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x3NS +{ + +struct U32x3_Type; + +struct U32x3_DynamicArray1D_Type +{ + U32x3_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32x3_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; +}; + +struct ParametersStruct +{ + + U32x3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xc0b737db, 0x1cae35c4, 0xe957acc9, 0x68cb2306, }; + +} // namespace BufferU32x3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x3 : public NvParameterized::NvParameters, public BufferU32x3NS::ParametersStruct +{ +public: + BufferU32x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x3NS::checksum); + return BufferU32x3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x3NS::ParametersStruct& parameters(void) const + { + BufferU32x3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x3), BufferU32x3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x3*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x4.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x4.h old mode 100644 new mode 100755 index e072cd4..74ee64c --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x4.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU32x4.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x4_h -#define HEADER_BufferU32x4_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x4NS -{ - -struct U32x4_Type; - -struct U32x4_DynamicArray1D_Type -{ - U32x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32x4_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; - uint32_t w; -}; - -struct ParametersStruct -{ - - U32x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x8e5349d3, 0xbf3dae15, 0x22c57bb9, 0x7c602608, }; - -} // namespace BufferU32x4NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x4 : public NvParameterized::NvParameters, public BufferU32x4NS::ParametersStruct -{ -public: - BufferU32x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x4(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x4NS::checksum); - return BufferU32x4NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x4NS::ParametersStruct& parameters(void) const - { - BufferU32x4* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x4NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x4Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x4::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x4), BufferU32x4::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x4)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x4)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x4::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x4 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x4*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x4::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x4::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x4::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x4::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x4_h +#define HEADER_BufferU32x4_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x4NS +{ + +struct U32x4_Type; + +struct U32x4_DynamicArray1D_Type +{ + U32x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32x4_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; + uint32_t w; +}; + +struct ParametersStruct +{ + + U32x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x8e5349d3, 0xbf3dae15, 0x22c57bb9, 0x7c602608, }; + +} // namespace BufferU32x4NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x4 : public NvParameterized::NvParameters, public BufferU32x4NS::ParametersStruct +{ +public: + BufferU32x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x4(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x4NS::checksum); + return BufferU32x4NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x4NS::ParametersStruct& parameters(void) const + { + BufferU32x4* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x4NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x4Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x4::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x4), BufferU32x4::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x4)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x4)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x4::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x4 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x4*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x4::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x4::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x4::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x4::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x1.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x1.h old mode 100644 new mode 100755 index 878441d..e90a421 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x1.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x1.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x1_h -#define HEADER_BufferU8x1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x1NS -{ - - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U8_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x9c4137b9, 0x1fe24c98, 0xae580b55, 0x7e908e02, }; - -} // namespace BufferU8x1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x1 : public NvParameterized::NvParameters, public BufferU8x1NS::ParametersStruct -{ -public: - BufferU8x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x1NS::checksum); - return BufferU8x1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x1NS::ParametersStruct& parameters(void) const - { - BufferU8x1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x1), BufferU8x1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x1*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x1_h +#define HEADER_BufferU8x1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x1NS +{ + + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U8_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x9c4137b9, 0x1fe24c98, 0xae580b55, 0x7e908e02, }; + +} // namespace BufferU8x1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x1 : public NvParameterized::NvParameters, public BufferU8x1NS::ParametersStruct +{ +public: + BufferU8x1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x1NS::checksum); + return BufferU8x1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x1NS::ParametersStruct& parameters(void) const + { + BufferU8x1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x1), BufferU8x1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x1*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x2.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x2.h old mode 100644 new mode 100755 index c536c4e..bb98e61 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x2.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x2.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x2_h -#define HEADER_BufferU8x2_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x2NS -{ - -struct U8x2_Type; - -struct U8x2_DynamicArray1D_Type -{ - U8x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8x2_Type -{ - uint8_t x; - uint8_t y; -}; - -struct ParametersStruct -{ - - U8x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x9857276c, 0xc24be4d6, 0x1aee732c, 0xf8979343, }; - -} // namespace BufferU8x2NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x2 : public NvParameterized::NvParameters, public BufferU8x2NS::ParametersStruct -{ -public: - BufferU8x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x2(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x2NS::checksum); - return BufferU8x2NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x2NS::ParametersStruct& parameters(void) const - { - BufferU8x2* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x2NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x2Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x2::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x2), BufferU8x2::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x2)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x2)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x2::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x2::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x2 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x2*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x2::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x2::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x2::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x2::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x2_h +#define HEADER_BufferU8x2_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x2NS +{ + +struct U8x2_Type; + +struct U8x2_DynamicArray1D_Type +{ + U8x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8x2_Type +{ + uint8_t x; + uint8_t y; +}; + +struct ParametersStruct +{ + + U8x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x9857276c, 0xc24be4d6, 0x1aee732c, 0xf8979343, }; + +} // namespace BufferU8x2NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x2 : public NvParameterized::NvParameters, public BufferU8x2NS::ParametersStruct +{ +public: + BufferU8x2(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x2(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x2NS::checksum); + return BufferU8x2NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x2NS::ParametersStruct& parameters(void) const + { + BufferU8x2* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x2NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x2Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x2::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x2), BufferU8x2::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x2)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x2)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x2::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x2::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x2 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x2*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x2::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x2::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x2::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x2::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x3.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x3.h old mode 100644 new mode 100755 index 5fbdb06..d683d1d --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x3.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x3.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x3_h -#define HEADER_BufferU8x3_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x3NS -{ - -struct U8x3_Type; - -struct U8x3_DynamicArray1D_Type -{ - U8x3_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8x3_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; -}; - -struct ParametersStruct -{ - - U8x3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xf5cdaf40, 0x1d38c18b, 0x85082025, 0x4cefb88a, }; - -} // namespace BufferU8x3NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x3 : public NvParameterized::NvParameters, public BufferU8x3NS::ParametersStruct -{ -public: - BufferU8x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x3(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x3NS::checksum); - return BufferU8x3NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x3NS::ParametersStruct& parameters(void) const - { - BufferU8x3* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x3NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x3Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x3::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x3), BufferU8x3::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x3)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x3)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x3::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x3::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x3 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x3*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x3::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x3::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x3::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x3::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x3_h +#define HEADER_BufferU8x3_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x3NS +{ + +struct U8x3_Type; + +struct U8x3_DynamicArray1D_Type +{ + U8x3_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8x3_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; +}; + +struct ParametersStruct +{ + + U8x3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xf5cdaf40, 0x1d38c18b, 0x85082025, 0x4cefb88a, }; + +} // namespace BufferU8x3NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x3 : public NvParameterized::NvParameters, public BufferU8x3NS::ParametersStruct +{ +public: + BufferU8x3(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x3(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x3NS::checksum); + return BufferU8x3NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x3NS::ParametersStruct& parameters(void) const + { + BufferU8x3* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x3NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x3Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x3::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x3), BufferU8x3::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x3)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x3)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x3::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x3::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x3 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x3*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x3::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x3::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x3::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x3::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x4.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x4.h old mode 100644 new mode 100755 index 9f8e518..50d422d --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x4.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/BufferU8x4.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x4_h -#define HEADER_BufferU8x4_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x4NS -{ - -struct U8x4_Type; - -struct U8x4_DynamicArray1D_Type -{ - U8x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8x4_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; - uint8_t w; -}; - -struct ParametersStruct -{ - - U8x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x8364dd0f, 0xbc7542d0, 0x1a22d2d2, 0x01fc1923, }; - -} // namespace BufferU8x4NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x4 : public NvParameterized::NvParameters, public BufferU8x4NS::ParametersStruct -{ -public: - BufferU8x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x4(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x4NS::checksum); - return BufferU8x4NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x4NS::ParametersStruct& parameters(void) const - { - BufferU8x4* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x4NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x4Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x4::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x4), BufferU8x4::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x4)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x4)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x4::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x4::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x4 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x4*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x4::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x4::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x4::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x4::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x4_h +#define HEADER_BufferU8x4_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x4NS +{ + +struct U8x4_Type; + +struct U8x4_DynamicArray1D_Type +{ + U8x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8x4_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; + uint8_t w; +}; + +struct ParametersStruct +{ + + U8x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x8364dd0f, 0xbc7542d0, 0x1a22d2d2, 0x01fc1923, }; + +} // namespace BufferU8x4NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x4 : public NvParameterized::NvParameters, public BufferU8x4NS::ParametersStruct +{ +public: + BufferU8x4(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x4(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x4NS::checksum); + return BufferU8x4NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x4NS::ParametersStruct& parameters(void) const + { + BufferU8x4* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x4NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x4Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x4::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x4), BufferU8x4::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x4)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x4)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x4::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x4::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x4 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x4*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x4::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x4::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x4::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x4::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/ModuleFrameworkRegistration.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/ModuleFrameworkRegistration.h old mode 100644 new mode 100755 index 3b357bd..4b9ed9a --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/ModuleFrameworkRegistration.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/ModuleFrameworkRegistration.h @@ -1,174 +1,174 @@ -/* - * Copyright (c) 2008-2015, 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. - */ - -#ifndef MODULE_MODULEFRAMEWORKREGISTRATIONH_H -#define MODULE_MODULEFRAMEWORKREGISTRATIONH_H - -#include "PsAllocator.h" -#include "NvRegistrationsForTraitsBase.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PxAssert.h" -#include - -// INCLUDE GENERATED FACTORIES -#include "VertexFormatParameters.h" -#include "VertexBufferParameters.h" -#include "SurfaceBufferParameters.h" -#include "SubmeshParameters.h" -#include "RenderMeshAssetParameters.h" -#include "BufferU8x1.h" -#include "BufferU8x2.h" -#include "BufferU8x3.h" -#include "BufferU8x4.h" -#include "BufferU16x1.h" -#include "BufferU16x2.h" -#include "BufferU16x3.h" -#include "BufferU16x4.h" -#include "BufferU32x1.h" -#include "BufferU32x2.h" -#include "BufferU32x3.h" -#include "BufferU32x4.h" -#include "BufferF32x1.h" -#include "BufferF32x2.h" -#include "BufferF32x3.h" -#include "BufferF32x4.h" - - -// INCLUDE GENERATED CONVERSION - - -namespace nvidia { -namespace apex { - - -class ModuleFrameworkRegistration : public NvParameterized::RegistrationsForTraitsBase -{ -public: - static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleFrameworkRegistration().registerAll(*parameterizedTraits); - } - } - - static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleFrameworkRegistration().unregisterAll(*parameterizedTraits); - } - } - - void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - ::NvParameterized::Factory* factoriesToRegister[] = { -// REGISTER GENERATED FACTORIES - new nvidia::apex::VertexFormatParametersFactory(), - new nvidia::apex::VertexBufferParametersFactory(), - new nvidia::apex::SurfaceBufferParametersFactory(), - new nvidia::apex::SubmeshParametersFactory(), - new nvidia::apex::RenderMeshAssetParametersFactory(), - new nvidia::apex::BufferU8x1Factory(), - new nvidia::apex::BufferU8x2Factory(), - new nvidia::apex::BufferU8x3Factory(), - new nvidia::apex::BufferU8x4Factory(), - new nvidia::apex::BufferU16x1Factory(), - new nvidia::apex::BufferU16x2Factory(), - new nvidia::apex::BufferU16x3Factory(), - new nvidia::apex::BufferU16x4Factory(), - new nvidia::apex::BufferU32x1Factory(), - new nvidia::apex::BufferU32x2Factory(), - new nvidia::apex::BufferU32x3Factory(), - new nvidia::apex::BufferU32x4Factory(), - new nvidia::apex::BufferF32x1Factory(), - new nvidia::apex::BufferF32x2Factory(), - new nvidia::apex::BufferF32x3Factory(), - new nvidia::apex::BufferF32x4Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) - { - parameterizedTraits.registerFactory(*factoriesToRegister[i]); - } - } - - virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// REGISTER GENERATED CONVERSION -PX_UNUSED(parameterizedTraits); - - } - - void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - struct FactoryDesc - { - const char* name; - uint32_t version; - }; - - ::NvParameterized::Factory* factoriesToUnregister[] = { -// UNREGISTER GENERATED FACTORIES - new nvidia::apex::VertexFormatParametersFactory(), - new nvidia::apex::VertexBufferParametersFactory(), - new nvidia::apex::SurfaceBufferParametersFactory(), - new nvidia::apex::SubmeshParametersFactory(), - new nvidia::apex::RenderMeshAssetParametersFactory(), - new nvidia::apex::BufferU8x1Factory(), - new nvidia::apex::BufferU8x2Factory(), - new nvidia::apex::BufferU8x3Factory(), - new nvidia::apex::BufferU8x4Factory(), - new nvidia::apex::BufferU16x1Factory(), - new nvidia::apex::BufferU16x2Factory(), - new nvidia::apex::BufferU16x3Factory(), - new nvidia::apex::BufferU16x4Factory(), - new nvidia::apex::BufferU32x1Factory(), - new nvidia::apex::BufferU32x2Factory(), - new nvidia::apex::BufferU32x3Factory(), - new nvidia::apex::BufferU32x4Factory(), - new nvidia::apex::BufferF32x1Factory(), - new nvidia::apex::BufferF32x2Factory(), - new nvidia::apex::BufferF32x3Factory(), - new nvidia::apex::BufferF32x4Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) - { - ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); - if (!removedFactory) - { - PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); - } - else - { - removedFactory->freeParameterDefinitionTable(¶meterizedTraits); - delete removedFactory; - delete factoriesToUnregister[i]; - } - } - } - - virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// UNREGISTER GENERATED CONVERSION -PX_UNUSED(parameterizedTraits); - - } - -}; - - -} -} //nvidia::apex - -#endif +/* + * Copyright (c) 2008-2015, 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. + */ + +#ifndef MODULE_MODULEFRAMEWORKREGISTRATIONH_H +#define MODULE_MODULEFRAMEWORKREGISTRATIONH_H + +#include "PsAllocator.h" +#include "NvRegistrationsForTraitsBase.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PxAssert.h" +#include + +// INCLUDE GENERATED FACTORIES +#include "VertexFormatParameters.h" +#include "VertexBufferParameters.h" +#include "SurfaceBufferParameters.h" +#include "SubmeshParameters.h" +#include "RenderMeshAssetParameters.h" +#include "BufferU8x1.h" +#include "BufferU8x2.h" +#include "BufferU8x3.h" +#include "BufferU8x4.h" +#include "BufferU16x1.h" +#include "BufferU16x2.h" +#include "BufferU16x3.h" +#include "BufferU16x4.h" +#include "BufferU32x1.h" +#include "BufferU32x2.h" +#include "BufferU32x3.h" +#include "BufferU32x4.h" +#include "BufferF32x1.h" +#include "BufferF32x2.h" +#include "BufferF32x3.h" +#include "BufferF32x4.h" + + +// INCLUDE GENERATED CONVERSION + + +namespace nvidia { +namespace apex { + + +class ModuleFrameworkRegistration : public NvParameterized::RegistrationsForTraitsBase +{ +public: + static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleFrameworkRegistration().registerAll(*parameterizedTraits); + } + } + + static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleFrameworkRegistration().unregisterAll(*parameterizedTraits); + } + } + + void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + ::NvParameterized::Factory* factoriesToRegister[] = { +// REGISTER GENERATED FACTORIES + new nvidia::apex::VertexFormatParametersFactory(), + new nvidia::apex::VertexBufferParametersFactory(), + new nvidia::apex::SurfaceBufferParametersFactory(), + new nvidia::apex::SubmeshParametersFactory(), + new nvidia::apex::RenderMeshAssetParametersFactory(), + new nvidia::apex::BufferU8x1Factory(), + new nvidia::apex::BufferU8x2Factory(), + new nvidia::apex::BufferU8x3Factory(), + new nvidia::apex::BufferU8x4Factory(), + new nvidia::apex::BufferU16x1Factory(), + new nvidia::apex::BufferU16x2Factory(), + new nvidia::apex::BufferU16x3Factory(), + new nvidia::apex::BufferU16x4Factory(), + new nvidia::apex::BufferU32x1Factory(), + new nvidia::apex::BufferU32x2Factory(), + new nvidia::apex::BufferU32x3Factory(), + new nvidia::apex::BufferU32x4Factory(), + new nvidia::apex::BufferF32x1Factory(), + new nvidia::apex::BufferF32x2Factory(), + new nvidia::apex::BufferF32x3Factory(), + new nvidia::apex::BufferF32x4Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) + { + parameterizedTraits.registerFactory(*factoriesToRegister[i]); + } + } + + virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// REGISTER GENERATED CONVERSION +PX_UNUSED(parameterizedTraits); + + } + + void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + struct FactoryDesc + { + const char* name; + uint32_t version; + }; + + ::NvParameterized::Factory* factoriesToUnregister[] = { +// UNREGISTER GENERATED FACTORIES + new nvidia::apex::VertexFormatParametersFactory(), + new nvidia::apex::VertexBufferParametersFactory(), + new nvidia::apex::SurfaceBufferParametersFactory(), + new nvidia::apex::SubmeshParametersFactory(), + new nvidia::apex::RenderMeshAssetParametersFactory(), + new nvidia::apex::BufferU8x1Factory(), + new nvidia::apex::BufferU8x2Factory(), + new nvidia::apex::BufferU8x3Factory(), + new nvidia::apex::BufferU8x4Factory(), + new nvidia::apex::BufferU16x1Factory(), + new nvidia::apex::BufferU16x2Factory(), + new nvidia::apex::BufferU16x3Factory(), + new nvidia::apex::BufferU16x4Factory(), + new nvidia::apex::BufferU32x1Factory(), + new nvidia::apex::BufferU32x2Factory(), + new nvidia::apex::BufferU32x3Factory(), + new nvidia::apex::BufferU32x4Factory(), + new nvidia::apex::BufferF32x1Factory(), + new nvidia::apex::BufferF32x2Factory(), + new nvidia::apex::BufferF32x3Factory(), + new nvidia::apex::BufferF32x4Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) + { + ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); + if (!removedFactory) + { + PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); + } + else + { + removedFactory->freeParameterDefinitionTable(¶meterizedTraits); + delete removedFactory; + delete factoriesToUnregister[i]; + } + } + } + + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// UNREGISTER GENERATED CONVERSION +PX_UNUSED(parameterizedTraits); + + } + +}; + + +} +} //nvidia::apex + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/RenderMeshAssetParameters.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/RenderMeshAssetParameters.h old mode 100644 new mode 100755 index 9ba6e57..7dd17e7 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/RenderMeshAssetParameters.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/RenderMeshAssetParameters.h @@ -1,260 +1,260 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_RenderMeshAssetParameters_h -#define HEADER_RenderMeshAssetParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace RenderMeshAssetParametersNS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BOUNDS3_DynamicArray1D_Type -{ - physx::PxBounds3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type submeshes; - STRING_DynamicArray1D_Type materialNames; - BOUNDS3_DynamicArray1D_Type partBounds; - uint32_t textureUVOrigin; - uint32_t boneCount; - bool deleteStaticBuffersAfterUse; - bool isReferenced; - -}; - -static const uint32_t checksum[] = { 0x119d6f62, 0x8d1ff03d, 0x19864d20, 0x93421fd0, }; - -} // namespace RenderMeshAssetParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class RenderMeshAssetParameters : public NvParameterized::NvParameters, public RenderMeshAssetParametersNS::ParametersStruct -{ -public: - RenderMeshAssetParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~RenderMeshAssetParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("RenderMeshAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(RenderMeshAssetParametersNS::checksum); - return RenderMeshAssetParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const RenderMeshAssetParametersNS::ParametersStruct& parameters(void) const - { - RenderMeshAssetParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - RenderMeshAssetParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class RenderMeshAssetParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - RenderMeshAssetParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(RenderMeshAssetParameters), RenderMeshAssetParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, RenderMeshAssetParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(RenderMeshAssetParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, RenderMeshAssetParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, RenderMeshAssetParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, RenderMeshAssetParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of RenderMeshAssetParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (RenderMeshAssetParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (RenderMeshAssetParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (RenderMeshAssetParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (RenderMeshAssetParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (RenderMeshAssetParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_RenderMeshAssetParameters_h +#define HEADER_RenderMeshAssetParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace RenderMeshAssetParametersNS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BOUNDS3_DynamicArray1D_Type +{ + physx::PxBounds3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type submeshes; + STRING_DynamicArray1D_Type materialNames; + BOUNDS3_DynamicArray1D_Type partBounds; + uint32_t textureUVOrigin; + uint32_t boneCount; + bool deleteStaticBuffersAfterUse; + bool isReferenced; + +}; + +static const uint32_t checksum[] = { 0x119d6f62, 0x8d1ff03d, 0x19864d20, 0x93421fd0, }; + +} // namespace RenderMeshAssetParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class RenderMeshAssetParameters : public NvParameterized::NvParameters, public RenderMeshAssetParametersNS::ParametersStruct +{ +public: + RenderMeshAssetParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~RenderMeshAssetParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("RenderMeshAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(RenderMeshAssetParametersNS::checksum); + return RenderMeshAssetParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const RenderMeshAssetParametersNS::ParametersStruct& parameters(void) const + { + RenderMeshAssetParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + RenderMeshAssetParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class RenderMeshAssetParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + RenderMeshAssetParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(RenderMeshAssetParameters), RenderMeshAssetParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, RenderMeshAssetParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(RenderMeshAssetParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, RenderMeshAssetParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, RenderMeshAssetParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, RenderMeshAssetParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of RenderMeshAssetParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (RenderMeshAssetParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (RenderMeshAssetParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (RenderMeshAssetParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (RenderMeshAssetParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (RenderMeshAssetParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SubmeshParameters.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SubmeshParameters.h old mode 100644 new mode 100755 index 2515e46..7b0d5ee --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SubmeshParameters.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SubmeshParameters.h @@ -1,242 +1,242 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SubmeshParameters_h -#define HEADER_SubmeshParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SubmeshParametersNS -{ - - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - NvParameterized::Interface* vertexBuffer; - U32_DynamicArray1D_Type indexBuffer; - U32_DynamicArray1D_Type vertexPartition; - U32_DynamicArray1D_Type indexPartition; - U32_DynamicArray1D_Type smoothingGroups; - -}; - -static const uint32_t checksum[] = { 0xb2b4f308, 0x5f4b8da6, 0x4d45daeb, 0xbfc7d9b0, }; - -} // namespace SubmeshParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SubmeshParameters : public NvParameterized::NvParameters, public SubmeshParametersNS::ParametersStruct -{ -public: - SubmeshParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SubmeshParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SubmeshParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SubmeshParametersNS::checksum); - return SubmeshParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SubmeshParametersNS::ParametersStruct& parameters(void) const - { - SubmeshParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SubmeshParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SubmeshParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SubmeshParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SubmeshParameters), SubmeshParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SubmeshParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SubmeshParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SubmeshParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SubmeshParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SubmeshParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SubmeshParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SubmeshParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (SubmeshParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SubmeshParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SubmeshParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SubmeshParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SubmeshParameters_h +#define HEADER_SubmeshParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SubmeshParametersNS +{ + + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + NvParameterized::Interface* vertexBuffer; + U32_DynamicArray1D_Type indexBuffer; + U32_DynamicArray1D_Type vertexPartition; + U32_DynamicArray1D_Type indexPartition; + U32_DynamicArray1D_Type smoothingGroups; + +}; + +static const uint32_t checksum[] = { 0xb2b4f308, 0x5f4b8da6, 0x4d45daeb, 0xbfc7d9b0, }; + +} // namespace SubmeshParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SubmeshParameters : public NvParameterized::NvParameters, public SubmeshParametersNS::ParametersStruct +{ +public: + SubmeshParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SubmeshParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SubmeshParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SubmeshParametersNS::checksum); + return SubmeshParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SubmeshParametersNS::ParametersStruct& parameters(void) const + { + SubmeshParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SubmeshParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SubmeshParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SubmeshParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SubmeshParameters), SubmeshParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SubmeshParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SubmeshParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SubmeshParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SubmeshParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SubmeshParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SubmeshParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SubmeshParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (SubmeshParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SubmeshParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SubmeshParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SubmeshParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SurfaceBufferParameters.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SurfaceBufferParameters.h old mode 100644 new mode 100755 index ec574fd..26a16d7 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SurfaceBufferParameters.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/SurfaceBufferParameters.h @@ -1,233 +1,233 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceBufferParameters_h -#define HEADER_SurfaceBufferParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceBufferParametersNS -{ - - - -struct ParametersStruct -{ - - uint32_t width; - uint32_t height; - uint32_t surfaceFormat; - NvParameterized::Interface* buffer; - -}; - -static const uint32_t checksum[] = { 0x8c5efe70, 0x9563a3a7, 0x2a52ffa7, 0x43e1a4fb, }; - -} // namespace SurfaceBufferParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceBufferParameters : public NvParameterized::NvParameters, public SurfaceBufferParametersNS::ParametersStruct -{ -public: - SurfaceBufferParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceBufferParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceBufferParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceBufferParametersNS::checksum); - return SurfaceBufferParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceBufferParametersNS::ParametersStruct& parameters(void) const - { - SurfaceBufferParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceBufferParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceBufferParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceBufferParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceBufferParameters), SurfaceBufferParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceBufferParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceBufferParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceBufferParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceBufferParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceBufferParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceBufferParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceBufferParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceBufferParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceBufferParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceBufferParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceBufferParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceBufferParameters_h +#define HEADER_SurfaceBufferParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceBufferParametersNS +{ + + + +struct ParametersStruct +{ + + uint32_t width; + uint32_t height; + uint32_t surfaceFormat; + NvParameterized::Interface* buffer; + +}; + +static const uint32_t checksum[] = { 0x8c5efe70, 0x9563a3a7, 0x2a52ffa7, 0x43e1a4fb, }; + +} // namespace SurfaceBufferParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceBufferParameters : public NvParameterized::NvParameters, public SurfaceBufferParametersNS::ParametersStruct +{ +public: + SurfaceBufferParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceBufferParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceBufferParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceBufferParametersNS::checksum); + return SurfaceBufferParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceBufferParametersNS::ParametersStruct& parameters(void) const + { + SurfaceBufferParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceBufferParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceBufferParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceBufferParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceBufferParameters), SurfaceBufferParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceBufferParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceBufferParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceBufferParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceBufferParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceBufferParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceBufferParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceBufferParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceBufferParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceBufferParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceBufferParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceBufferParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexBufferParameters.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexBufferParameters.h old mode 100644 new mode 100755 index 6e4b3a1..de36f16 --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexBufferParameters.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexBufferParameters.h @@ -1,240 +1,240 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_VertexBufferParameters_h -#define HEADER_VertexBufferParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace VertexBufferParametersNS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - uint32_t vertexCount; - NvParameterized::Interface* vertexFormat; - REF_DynamicArray1D_Type buffers; - -}; - -static const uint32_t checksum[] = { 0x14ae7314, 0xe50741cb, 0x15eb480c, 0x63f6c571, }; - -} // namespace VertexBufferParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class VertexBufferParameters : public NvParameterized::NvParameters, public VertexBufferParametersNS::ParametersStruct -{ -public: - VertexBufferParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~VertexBufferParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("VertexBufferParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(VertexBufferParametersNS::checksum); - return VertexBufferParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const VertexBufferParametersNS::ParametersStruct& parameters(void) const - { - VertexBufferParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - VertexBufferParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class VertexBufferParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - VertexBufferParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(VertexBufferParameters), VertexBufferParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, VertexBufferParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(VertexBufferParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, VertexBufferParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, VertexBufferParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, VertexBufferParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of VertexBufferParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (VertexBufferParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (VertexBufferParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (VertexBufferParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (VertexBufferParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (VertexBufferParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_VertexBufferParameters_h +#define HEADER_VertexBufferParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace VertexBufferParametersNS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + uint32_t vertexCount; + NvParameterized::Interface* vertexFormat; + REF_DynamicArray1D_Type buffers; + +}; + +static const uint32_t checksum[] = { 0x14ae7314, 0xe50741cb, 0x15eb480c, 0x63f6c571, }; + +} // namespace VertexBufferParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class VertexBufferParameters : public NvParameterized::NvParameters, public VertexBufferParametersNS::ParametersStruct +{ +public: + VertexBufferParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~VertexBufferParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("VertexBufferParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(VertexBufferParametersNS::checksum); + return VertexBufferParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const VertexBufferParametersNS::ParametersStruct& parameters(void) const + { + VertexBufferParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + VertexBufferParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class VertexBufferParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + VertexBufferParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(VertexBufferParameters), VertexBufferParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, VertexBufferParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(VertexBufferParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, VertexBufferParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, VertexBufferParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, VertexBufferParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of VertexBufferParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (VertexBufferParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (VertexBufferParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (VertexBufferParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (VertexBufferParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (VertexBufferParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexFormatParameters.h b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexFormatParameters.h old mode 100644 new mode 100755 index a9eaed1..c64174c --- a/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexFormatParameters.h +++ b/sdk/extensions/import/apexmodules/modules/framework/include/autogen/VertexFormatParameters.h @@ -1,250 +1,250 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_VertexFormatParameters_h -#define HEADER_VertexFormatParameters_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace apex -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace VertexFormatParametersNS -{ - -struct BufferFormat_Type; - -struct BufferFormat_DynamicArray1D_Type -{ - BufferFormat_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BufferFormat_Type -{ - NvParameterized::DummyStringStruct name; - int32_t semantic; - uint32_t id; - uint32_t format; - uint32_t access; - bool serialize; -}; - -struct ParametersStruct -{ - - uint32_t winding; - bool hasSeparateBoneBuffer; - BufferFormat_DynamicArray1D_Type bufferFormats; - -}; - -static const uint32_t checksum[] = { 0xa7c1ed95, 0x570ed2b1, 0x55717659, 0x9951d139, }; - -} // namespace VertexFormatParametersNS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class VertexFormatParameters : public NvParameterized::NvParameters, public VertexFormatParametersNS::ParametersStruct -{ -public: - VertexFormatParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~VertexFormatParameters(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("VertexFormatParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(VertexFormatParametersNS::checksum); - return VertexFormatParametersNS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const VertexFormatParametersNS::ParametersStruct& parameters(void) const - { - VertexFormatParameters* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - VertexFormatParametersNS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class VertexFormatParametersFactory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - VertexFormatParameters::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(VertexFormatParameters), VertexFormatParameters::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, VertexFormatParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(VertexFormatParameters)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, VertexFormatParameters)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, VertexFormatParameters::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, VertexFormatParameters::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of VertexFormatParameters here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (VertexFormatParameters*)bufObj; - } - - virtual const char* getClassName() - { - return (VertexFormatParameters::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (VertexFormatParameters::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (VertexFormatParameters::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (VertexFormatParameters::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace apex -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_VertexFormatParameters_h +#define HEADER_VertexFormatParameters_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace apex +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace VertexFormatParametersNS +{ + +struct BufferFormat_Type; + +struct BufferFormat_DynamicArray1D_Type +{ + BufferFormat_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BufferFormat_Type +{ + NvParameterized::DummyStringStruct name; + int32_t semantic; + uint32_t id; + uint32_t format; + uint32_t access; + bool serialize; +}; + +struct ParametersStruct +{ + + uint32_t winding; + bool hasSeparateBoneBuffer; + BufferFormat_DynamicArray1D_Type bufferFormats; + +}; + +static const uint32_t checksum[] = { 0xa7c1ed95, 0x570ed2b1, 0x55717659, 0x9951d139, }; + +} // namespace VertexFormatParametersNS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class VertexFormatParameters : public NvParameterized::NvParameters, public VertexFormatParametersNS::ParametersStruct +{ +public: + VertexFormatParameters(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~VertexFormatParameters(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("VertexFormatParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(VertexFormatParametersNS::checksum); + return VertexFormatParametersNS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const VertexFormatParametersNS::ParametersStruct& parameters(void) const + { + VertexFormatParameters* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + VertexFormatParametersNS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class VertexFormatParametersFactory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + VertexFormatParameters::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(VertexFormatParameters), VertexFormatParameters::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, VertexFormatParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(VertexFormatParameters)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, VertexFormatParameters)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, VertexFormatParameters::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, VertexFormatParameters::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of VertexFormatParameters here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (VertexFormatParameters*)bufObj; + } + + virtual const char* getClassName() + { + return (VertexFormatParameters::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (VertexFormatParameters::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (VertexFormatParameters::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (VertexFormatParameters::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace apex +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x1.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x1.cpp old mode 100644 new mode 100755 index 37cac9c..ca19666 --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x1.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferF32x1NS; - -const char* const BufferF32x1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // data[] -}; - - -bool BufferF32x1::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x1::mBuiltFlagMutex; - -BufferF32x1::BufferF32x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x1::~BufferF32x1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x1::getParameterDefinitionTree(void) const -{ - BufferF32x1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferF32x1::initStrings(void) -{ -} - -void BufferF32x1::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(float); - data.arraySizes[0] = 0; -} - -void BufferF32x1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x1::initReferences(void) -{ -} - -void BufferF32x1::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x1::freeStrings(void) -{ -} - -void BufferF32x1::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferF32x1NS; + +const char* const BufferF32x1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // data[] +}; + + +bool BufferF32x1::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x1::mBuiltFlagMutex; + +BufferF32x1::BufferF32x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x1::~BufferF32x1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x1::getParameterDefinitionTree(void) const +{ + BufferF32x1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferF32x1::initStrings(void) +{ +} + +void BufferF32x1::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(float); + data.arraySizes[0] = 0; +} + +void BufferF32x1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x1::initReferences(void) +{ +} + +void BufferF32x1::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x1::freeStrings(void) +{ +} + +void BufferF32x1::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x2.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x2.cpp old mode 100644 new mode 100755 index 369c657..bd32814 --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x2.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x2.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferF32x2NS; - -const char* const BufferF32x2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(F32x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferF32x2::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x2::mBuiltFlagMutex; - -BufferF32x2::BufferF32x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x2::~BufferF32x2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x2::getParameterDefinitionTree(void) const -{ - BufferF32x2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "F32x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferF32x2::initStrings(void) -{ -} - -void BufferF32x2::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(F32x2_Type); - data.arraySizes[0] = 0; -} - -void BufferF32x2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x2::initReferences(void) -{ -} - -void BufferF32x2::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x2::freeStrings(void) -{ -} - -void BufferF32x2::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferF32x2NS; + +const char* const BufferF32x2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(F32x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferF32x2::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x2::mBuiltFlagMutex; + +BufferF32x2::BufferF32x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x2::~BufferF32x2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x2::getParameterDefinitionTree(void) const +{ + BufferF32x2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "F32x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferF32x2::initStrings(void) +{ +} + +void BufferF32x2::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(F32x2_Type); + data.arraySizes[0] = 0; +} + +void BufferF32x2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x2::initReferences(void) +{ +} + +void BufferF32x2::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x2::freeStrings(void) +{ +} + +void BufferF32x2::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x3.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x3.cpp old mode 100644 new mode 100755 index 59695a9..15b847f --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x3.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x3.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferF32x3NS; - -const char* const BufferF32x3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // data[] -}; - - -bool BufferF32x3::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x3::mBuiltFlagMutex; - -BufferF32x3::BufferF32x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x3::~BufferF32x3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x3::getParameterDefinitionTree(void) const -{ - BufferF32x3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferF32x3::initStrings(void) -{ -} - -void BufferF32x3::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(physx::PxVec3); - data.arraySizes[0] = 0; -} - -void BufferF32x3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x3::initReferences(void) -{ -} - -void BufferF32x3::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x3::freeStrings(void) -{ -} - -void BufferF32x3::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferF32x3NS; + +const char* const BufferF32x3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // data[] +}; + + +bool BufferF32x3::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x3::mBuiltFlagMutex; + +BufferF32x3::BufferF32x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x3::~BufferF32x3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x3::getParameterDefinitionTree(void) const +{ + BufferF32x3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferF32x3::initStrings(void) +{ +} + +void BufferF32x3::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(physx::PxVec3); + data.arraySizes[0] = 0; +} + +void BufferF32x3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x3::initReferences(void) +{ +} + +void BufferF32x3::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x3::freeStrings(void) +{ +} + +void BufferF32x3::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x4.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x4.cpp old mode 100644 new mode 100755 index f402d9d..70c720d --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x4.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferF32x4.cpp @@ -1,453 +1,453 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x4.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferF32x4NS; - -const char* const BufferF32x4Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(F32x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferF32x4::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x4::mBuiltFlagMutex; - -BufferF32x4::BufferF32x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x4FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x4::~BufferF32x4() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x4::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x4(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x4::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x4::getParameterDefinitionTree(void) const -{ - BufferF32x4* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x4::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x4::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x4::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - ParamDefTable[1].setAlignment(16); - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "F32x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - ParamDefTable[2].setAlignment(16); - ParamDefTable[2].setPadding(16); - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - ParamDefTable[3].setAlignment(16); - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferF32x4::initStrings(void) -{ -} - -void BufferF32x4::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(F32x4_Type); - data.arraySizes[0] = 0; -} - -void BufferF32x4::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x4::initReferences(void) -{ -} - -void BufferF32x4::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x4::freeStrings(void) -{ -} - -void BufferF32x4::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x4.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferF32x4NS; + +const char* const BufferF32x4Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(F32x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferF32x4::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x4::mBuiltFlagMutex; + +BufferF32x4::BufferF32x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x4FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x4::~BufferF32x4() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x4::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x4(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x4::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x4::getParameterDefinitionTree(void) const +{ + BufferF32x4* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x4::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x4::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x4::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + ParamDefTable[1].setAlignment(16); + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "F32x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + ParamDefTable[2].setAlignment(16); + ParamDefTable[2].setPadding(16); + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + ParamDefTable[3].setAlignment(16); + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferF32x4::initStrings(void) +{ +} + +void BufferF32x4::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(F32x4_Type); + data.arraySizes[0] = 0; +} + +void BufferF32x4::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x4::initReferences(void) +{ +} + +void BufferF32x4::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x4::freeStrings(void) +{ +} + +void BufferF32x4::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x1.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x1.cpp old mode 100644 new mode 100755 index 0971653..78b55be --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x1.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU16x1NS; - -const char* const BufferU16x1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_U16, false, 1 * sizeof(uint16_t), NULL, 0 }, // data[] -}; - - -bool BufferU16x1::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x1::mBuiltFlagMutex; - -BufferU16x1::BufferU16x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x1::~BufferU16x1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x1::getParameterDefinitionTree(void) const -{ - BufferU16x1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferU16x1::initStrings(void) -{ -} - -void BufferU16x1::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(uint16_t); - data.arraySizes[0] = 0; -} - -void BufferU16x1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x1::initReferences(void) -{ -} - -void BufferU16x1::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x1::freeStrings(void) -{ -} - -void BufferU16x1::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU16x1NS; + +const char* const BufferU16x1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_U16, false, 1 * sizeof(uint16_t), NULL, 0 }, // data[] +}; + + +bool BufferU16x1::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x1::mBuiltFlagMutex; + +BufferU16x1::BufferU16x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x1::~BufferU16x1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x1::getParameterDefinitionTree(void) const +{ + BufferU16x1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferU16x1::initStrings(void) +{ +} + +void BufferU16x1::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(uint16_t); + data.arraySizes[0] = 0; +} + +void BufferU16x1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x1::initReferences(void) +{ +} + +void BufferU16x1::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x1::freeStrings(void) +{ +} + +void BufferU16x1::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x2.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x2.cpp old mode 100644 new mode 100755 index 07c7cd7..9cb54bd --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x2.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x2.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU16x2NS; - -const char* const BufferU16x2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U16x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferU16x2::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x2::mBuiltFlagMutex; - -BufferU16x2::BufferU16x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x2::~BufferU16x2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x2::getParameterDefinitionTree(void) const -{ - BufferU16x2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U16x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferU16x2::initStrings(void) -{ -} - -void BufferU16x2::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U16x2_Type); - data.arraySizes[0] = 0; -} - -void BufferU16x2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x2::initReferences(void) -{ -} - -void BufferU16x2::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x2::freeStrings(void) -{ -} - -void BufferU16x2::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU16x2NS; + +const char* const BufferU16x2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U16x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferU16x2::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x2::mBuiltFlagMutex; + +BufferU16x2::BufferU16x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x2::~BufferU16x2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x2::getParameterDefinitionTree(void) const +{ + BufferU16x2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U16x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferU16x2::initStrings(void) +{ +} + +void BufferU16x2::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U16x2_Type); + data.arraySizes[0] = 0; +} + +void BufferU16x2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x2::initReferences(void) +{ +} + +void BufferU16x2::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x2::freeStrings(void) +{ +} + +void BufferU16x2::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x3.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x3.cpp old mode 100644 new mode 100755 index 99dc1bd..c32d08f --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x3.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x3.cpp @@ -1,425 +1,425 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU16x3NS; - -const char* const BufferU16x3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U16x3_Type), CHILDREN(2), 3 }, // data[] - { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->z), NULL, 0 }, // data[].z -}; - - -bool BufferU16x3::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x3::mBuiltFlagMutex; - -BufferU16x3::BufferU16x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x3::~BufferU16x3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x3::getParameterDefinitionTree(void) const -{ - BufferU16x3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U16x3", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - - ParamDefTable[2].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void BufferU16x3::initStrings(void) -{ -} - -void BufferU16x3::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U16x3_Type); - data.arraySizes[0] = 0; -} - -void BufferU16x3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x3::initReferences(void) -{ -} - -void BufferU16x3::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x3::freeStrings(void) -{ -} - -void BufferU16x3::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU16x3NS; + +const char* const BufferU16x3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U16x3_Type), CHILDREN(2), 3 }, // data[] + { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->z), NULL, 0 }, // data[].z +}; + + +bool BufferU16x3::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x3::mBuiltFlagMutex; + +BufferU16x3::BufferU16x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x3::~BufferU16x3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x3::getParameterDefinitionTree(void) const +{ + BufferU16x3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U16x3", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + + ParamDefTable[2].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void BufferU16x3::initStrings(void) +{ +} + +void BufferU16x3::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U16x3_Type); + data.arraySizes[0] = 0; +} + +void BufferU16x3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x3::initReferences(void) +{ +} + +void BufferU16x3::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x3::freeStrings(void) +{ +} + +void BufferU16x3::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x4.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x4.cpp old mode 100644 new mode 100755 index d2cbc4a..0ca585f --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x4.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU16x4.cpp @@ -1,449 +1,449 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x4.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU16x4NS; - -const char* const BufferU16x4Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U16x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferU16x4::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x4::mBuiltFlagMutex; - -BufferU16x4::BufferU16x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x4FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x4::~BufferU16x4() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x4::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x4(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x4::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x4::getParameterDefinitionTree(void) const -{ - BufferU16x4* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x4::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x4::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x4::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U16x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferU16x4::initStrings(void) -{ -} - -void BufferU16x4::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U16x4_Type); - data.arraySizes[0] = 0; -} - -void BufferU16x4::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x4::initReferences(void) -{ -} - -void BufferU16x4::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x4::freeStrings(void) -{ -} - -void BufferU16x4::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x4.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU16x4NS; + +const char* const BufferU16x4Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U16x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferU16x4::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x4::mBuiltFlagMutex; + +BufferU16x4::BufferU16x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x4FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x4::~BufferU16x4() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x4::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x4(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x4::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x4::getParameterDefinitionTree(void) const +{ + BufferU16x4* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x4::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x4::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x4::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U16x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferU16x4::initStrings(void) +{ +} + +void BufferU16x4::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U16x4_Type); + data.arraySizes[0] = 0; +} + +void BufferU16x4::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x4::initReferences(void) +{ +} + +void BufferU16x4::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x4::freeStrings(void) +{ +} + +void BufferU16x4::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x1.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x1.cpp old mode 100644 new mode 100755 index f559e0b..8744f5c --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x1.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU32x1NS; - -const char* const BufferU32x1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // data[] -}; - - -bool BufferU32x1::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x1::mBuiltFlagMutex; - -BufferU32x1::BufferU32x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x1::~BufferU32x1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x1::getParameterDefinitionTree(void) const -{ - BufferU32x1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferU32x1::initStrings(void) -{ -} - -void BufferU32x1::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(uint32_t); - data.arraySizes[0] = 0; -} - -void BufferU32x1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x1::initReferences(void) -{ -} - -void BufferU32x1::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x1::freeStrings(void) -{ -} - -void BufferU32x1::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU32x1NS; + +const char* const BufferU32x1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // data[] +}; + + +bool BufferU32x1::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x1::mBuiltFlagMutex; + +BufferU32x1::BufferU32x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x1::~BufferU32x1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x1::getParameterDefinitionTree(void) const +{ + BufferU32x1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferU32x1::initStrings(void) +{ +} + +void BufferU32x1::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(uint32_t); + data.arraySizes[0] = 0; +} + +void BufferU32x1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x1::initReferences(void) +{ +} + +void BufferU32x1::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x1::freeStrings(void) +{ +} + +void BufferU32x1::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x2.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x2.cpp old mode 100644 new mode 100755 index c2f491e..c78953f --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x2.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x2.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU32x2NS; - -const char* const BufferU32x2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U32x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferU32x2::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x2::mBuiltFlagMutex; - -BufferU32x2::BufferU32x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x2::~BufferU32x2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x2::getParameterDefinitionTree(void) const -{ - BufferU32x2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U32x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferU32x2::initStrings(void) -{ -} - -void BufferU32x2::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U32x2_Type); - data.arraySizes[0] = 0; -} - -void BufferU32x2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x2::initReferences(void) -{ -} - -void BufferU32x2::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x2::freeStrings(void) -{ -} - -void BufferU32x2::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU32x2NS; + +const char* const BufferU32x2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U32x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferU32x2::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x2::mBuiltFlagMutex; + +BufferU32x2::BufferU32x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x2::~BufferU32x2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x2::getParameterDefinitionTree(void) const +{ + BufferU32x2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U32x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferU32x2::initStrings(void) +{ +} + +void BufferU32x2::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U32x2_Type); + data.arraySizes[0] = 0; +} + +void BufferU32x2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x2::initReferences(void) +{ +} + +void BufferU32x2::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x2::freeStrings(void) +{ +} + +void BufferU32x2::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x3.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x3.cpp old mode 100644 new mode 100755 index c6a474f..42acc48 --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x3.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x3.cpp @@ -1,425 +1,425 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU32x3NS; - -const char* const BufferU32x3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U32x3_Type), CHILDREN(2), 3 }, // data[] - { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->z), NULL, 0 }, // data[].z -}; - - -bool BufferU32x3::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x3::mBuiltFlagMutex; - -BufferU32x3::BufferU32x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x3::~BufferU32x3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x3::getParameterDefinitionTree(void) const -{ - BufferU32x3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U32x3", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - - ParamDefTable[2].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void BufferU32x3::initStrings(void) -{ -} - -void BufferU32x3::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U32x3_Type); - data.arraySizes[0] = 0; -} - -void BufferU32x3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x3::initReferences(void) -{ -} - -void BufferU32x3::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x3::freeStrings(void) -{ -} - -void BufferU32x3::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU32x3NS; + +const char* const BufferU32x3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U32x3_Type), CHILDREN(2), 3 }, // data[] + { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->z), NULL, 0 }, // data[].z +}; + + +bool BufferU32x3::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x3::mBuiltFlagMutex; + +BufferU32x3::BufferU32x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x3::~BufferU32x3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x3::getParameterDefinitionTree(void) const +{ + BufferU32x3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U32x3", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + + ParamDefTable[2].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void BufferU32x3::initStrings(void) +{ +} + +void BufferU32x3::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U32x3_Type); + data.arraySizes[0] = 0; +} + +void BufferU32x3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x3::initReferences(void) +{ +} + +void BufferU32x3::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x3::freeStrings(void) +{ +} + +void BufferU32x3::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x4.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x4.cpp old mode 100644 new mode 100755 index 1851f6e..58de28f --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x4.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU32x4.cpp @@ -1,449 +1,449 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x4.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU32x4NS; - -const char* const BufferU32x4Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U32x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferU32x4::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x4::mBuiltFlagMutex; - -BufferU32x4::BufferU32x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x4FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x4::~BufferU32x4() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x4::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x4(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x4::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x4::getParameterDefinitionTree(void) const -{ - BufferU32x4* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x4::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x4::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x4::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U32x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferU32x4::initStrings(void) -{ -} - -void BufferU32x4::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U32x4_Type); - data.arraySizes[0] = 0; -} - -void BufferU32x4::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x4::initReferences(void) -{ -} - -void BufferU32x4::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x4::freeStrings(void) -{ -} - -void BufferU32x4::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x4.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU32x4NS; + +const char* const BufferU32x4Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U32x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferU32x4::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x4::mBuiltFlagMutex; + +BufferU32x4::BufferU32x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x4FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x4::~BufferU32x4() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x4::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x4(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x4::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x4::getParameterDefinitionTree(void) const +{ + BufferU32x4* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x4::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x4::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x4::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U32x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferU32x4::initStrings(void) +{ +} + +void BufferU32x4::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U32x4_Type); + data.arraySizes[0] = 0; +} + +void BufferU32x4::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x4::initReferences(void) +{ +} + +void BufferU32x4::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x4::freeStrings(void) +{ +} + +void BufferU32x4::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x1.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x1.cpp old mode 100644 new mode 100755 index 06f9b45..023eb77 --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x1.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU8x1NS; - -const char* const BufferU8x1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // data[] -}; - - -bool BufferU8x1::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x1::mBuiltFlagMutex; - -BufferU8x1::BufferU8x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x1::~BufferU8x1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x1::getParameterDefinitionTree(void) const -{ - BufferU8x1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferU8x1::initStrings(void) -{ -} - -void BufferU8x1::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(uint8_t); - data.arraySizes[0] = 0; -} - -void BufferU8x1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x1::initReferences(void) -{ -} - -void BufferU8x1::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x1::freeStrings(void) -{ -} - -void BufferU8x1::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU8x1NS; + +const char* const BufferU8x1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // data[] +}; + + +bool BufferU8x1::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x1::mBuiltFlagMutex; + +BufferU8x1::BufferU8x1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x1::~BufferU8x1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x1::getParameterDefinitionTree(void) const +{ + BufferU8x1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferU8x1::initStrings(void) +{ +} + +void BufferU8x1::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(uint8_t); + data.arraySizes[0] = 0; +} + +void BufferU8x1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x1::initReferences(void) +{ +} + +void BufferU8x1::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x1::freeStrings(void) +{ +} + +void BufferU8x1::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x2.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x2.cpp old mode 100644 new mode 100755 index 6c644c1..ee7baba --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x2.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x2.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x2.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU8x2NS; - -const char* const BufferU8x2Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U8x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferU8x2::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x2::mBuiltFlagMutex; - -BufferU8x2::BufferU8x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x2FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x2::~BufferU8x2() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x2::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x2(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x2::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x2::getParameterDefinitionTree(void) const -{ - BufferU8x2* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x2::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x2::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x2::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U8x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferU8x2::initStrings(void) -{ -} - -void BufferU8x2::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U8x2_Type); - data.arraySizes[0] = 0; -} - -void BufferU8x2::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x2::initReferences(void) -{ -} - -void BufferU8x2::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x2::freeStrings(void) -{ -} - -void BufferU8x2::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x2.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU8x2NS; + +const char* const BufferU8x2Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U8x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferU8x2::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x2::mBuiltFlagMutex; + +BufferU8x2::BufferU8x2(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x2FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x2::~BufferU8x2() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x2::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x2(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x2::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x2::getParameterDefinitionTree(void) const +{ + BufferU8x2* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x2::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x2::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x2::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x2::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x2::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U8x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferU8x2::initStrings(void) +{ +} + +void BufferU8x2::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U8x2_Type); + data.arraySizes[0] = 0; +} + +void BufferU8x2::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x2::initReferences(void) +{ +} + +void BufferU8x2::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x2::freeStrings(void) +{ +} + +void BufferU8x2::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x3.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x3.cpp old mode 100644 new mode 100755 index 61635cd..1067491 --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x3.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x3.cpp @@ -1,425 +1,425 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x3.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU8x3NS; - -const char* const BufferU8x3Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U8x3_Type), CHILDREN(2), 3 }, // data[] - { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->z), NULL, 0 }, // data[].z -}; - - -bool BufferU8x3::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x3::mBuiltFlagMutex; - -BufferU8x3::BufferU8x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x3FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x3::~BufferU8x3() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x3::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x3(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x3::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x3::getParameterDefinitionTree(void) const -{ - BufferU8x3* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x3::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x3::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x3::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U8x3", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - - ParamDefTable[2].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void BufferU8x3::initStrings(void) -{ -} - -void BufferU8x3::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U8x3_Type); - data.arraySizes[0] = 0; -} - -void BufferU8x3::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x3::initReferences(void) -{ -} - -void BufferU8x3::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x3::freeStrings(void) -{ -} - -void BufferU8x3::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x3.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU8x3NS; + +const char* const BufferU8x3Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U8x3_Type), CHILDREN(2), 3 }, // data[] + { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->z), NULL, 0 }, // data[].z +}; + + +bool BufferU8x3::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x3::mBuiltFlagMutex; + +BufferU8x3::BufferU8x3(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x3FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x3::~BufferU8x3() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x3::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x3(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x3::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x3::getParameterDefinitionTree(void) const +{ + BufferU8x3* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x3::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x3::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x3::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x3::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x3::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U8x3", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + + ParamDefTable[2].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void BufferU8x3::initStrings(void) +{ +} + +void BufferU8x3::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U8x3_Type); + data.arraySizes[0] = 0; +} + +void BufferU8x3::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x3::initReferences(void) +{ +} + +void BufferU8x3::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x3::freeStrings(void) +{ +} + +void BufferU8x3::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x4.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x4.cpp old mode 100644 new mode 100755 index 9b3937d..3a8f83b --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x4.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/BufferU8x4.cpp @@ -1,449 +1,449 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x4.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace BufferU8x4NS; - -const char* const BufferU8x4Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U8x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferU8x4::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x4::mBuiltFlagMutex; - -BufferU8x4::BufferU8x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x4FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x4::~BufferU8x4() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x4::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x4(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x4::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x4::getParameterDefinitionTree(void) const -{ - BufferU8x4* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x4::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x4::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x4::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U8x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferU8x4::initStrings(void) -{ -} - -void BufferU8x4::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U8x4_Type); - data.arraySizes[0] = 0; -} - -void BufferU8x4::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x4::initReferences(void) -{ -} - -void BufferU8x4::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x4::freeStrings(void) -{ -} - -void BufferU8x4::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x4.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace BufferU8x4NS; + +const char* const BufferU8x4Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U8x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferU8x4::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x4::mBuiltFlagMutex; + +BufferU8x4::BufferU8x4(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x4FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x4::~BufferU8x4() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x4::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x4(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x4::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x4::getParameterDefinitionTree(void) const +{ + BufferU8x4* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x4::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x4::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x4::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x4::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x4::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U8x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferU8x4::initStrings(void) +{ +} + +void BufferU8x4::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U8x4_Type); + data.arraySizes[0] = 0; +} + +void BufferU8x4::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x4::initReferences(void) +{ +} + +void BufferU8x4::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x4::freeStrings(void) +{ +} + +void BufferU8x4::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/RenderMeshAssetParameters.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/RenderMeshAssetParameters.cpp old mode 100644 new mode 100755 index 4dbb6f8..3f54add --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/RenderMeshAssetParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/RenderMeshAssetParameters.cpp @@ -1,621 +1,621 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "RenderMeshAssetParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace RenderMeshAssetParametersNS; - -const char* const RenderMeshAssetParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 11; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 5, 7, 8, 9, 10, 2, 4, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshes), CHILDREN(7), 1 }, // submeshes - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // submeshes[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->materialNames), CHILDREN(8), 1 }, // materialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // materialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->partBounds), CHILDREN(9), 1 }, // partBounds - { TYPE_BOUNDS3, false, 1 * sizeof(physx::PxBounds3), NULL, 0 }, // partBounds[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->textureUVOrigin), NULL, 0 }, // textureUVOrigin - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->boneCount), NULL, 0 }, // boneCount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteStaticBuffersAfterUse), NULL, 0 }, // deleteStaticBuffersAfterUse - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isReferenced), NULL, 0 }, // isReferenced -}; - - -bool RenderMeshAssetParameters::mBuiltFlag = false; -NvParameterized::MutexType RenderMeshAssetParameters::mBuiltFlagMutex; - -RenderMeshAssetParameters::RenderMeshAssetParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &RenderMeshAssetParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -RenderMeshAssetParameters::~RenderMeshAssetParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void RenderMeshAssetParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~RenderMeshAssetParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* RenderMeshAssetParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* RenderMeshAssetParameters::getParameterDefinitionTree(void) const -{ - RenderMeshAssetParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType RenderMeshAssetParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType RenderMeshAssetParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void RenderMeshAssetParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - submeshes (not an array of structs) */ -/* [0] - materialNames (not an array of structs) */ - -void RenderMeshAssetParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void RenderMeshAssetParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshes" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("submeshes", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); - HintTable[2].init("shortDescription", "Array of submeshes", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SubmeshParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshes[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("submeshes", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); - HintTable[2].init("shortDescription", "Array of submeshes", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SubmeshParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="materialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("materialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); - HintTable[1].init("shortDescription", "Array of material names", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="materialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("materialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); - HintTable[1].init("shortDescription", "Array of material names", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="partBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("partBounds", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); - HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="partBounds[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("partBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); - HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="textureUVOrigin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("textureUVOrigin", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The texture origin convention to use for this mesh. See TextureUVOrigin.", true); - HintTable[1].init("shortDescription", "Texture origin convention", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="boneCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("boneCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of mesh-skinning bones. For destructible assets, this is the same as the number of parts.", true); - HintTable[1].init("shortDescription", "The number of mesh-skinning bones", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="deleteStaticBuffersAfterUse" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("deleteStaticBuffersAfterUse", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); - HintTable[1].init("shortDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="isReferenced" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("isReferenced", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Is the render mesh asset referenced in other assets", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(7); - Children[4] = PDEF_PTR(8); - Children[5] = PDEF_PTR(9); - Children[6] = PDEF_PTR(10); - - ParamDefTable[0].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=1, longName="submeshes" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="materialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="partBounds" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void RenderMeshAssetParameters::initStrings(void) -{ -} - -void RenderMeshAssetParameters::initDynamicArrays(void) -{ - submeshes.buf = NULL; - submeshes.isAllocated = true; - submeshes.elementSize = sizeof(NvParameterized::Interface*); - submeshes.arraySizes[0] = 0; - materialNames.buf = NULL; - materialNames.isAllocated = true; - materialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - materialNames.arraySizes[0] = 0; - partBounds.buf = NULL; - partBounds.isAllocated = true; - partBounds.elementSize = sizeof(physx::PxBounds3); - partBounds.arraySizes[0] = 0; -} - -void RenderMeshAssetParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - textureUVOrigin = uint32_t(0); - boneCount = uint32_t(0); - deleteStaticBuffersAfterUse = bool(false); - isReferenced = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void RenderMeshAssetParameters::initReferences(void) -{ -} - -void RenderMeshAssetParameters::freeDynamicArrays(void) -{ - if (submeshes.isAllocated && submeshes.buf) - { - mParameterizedTraits->free(submeshes.buf); - } - if (materialNames.isAllocated && materialNames.buf) - { - mParameterizedTraits->free(materialNames.buf); - } - if (partBounds.isAllocated && partBounds.buf) - { - mParameterizedTraits->free(partBounds.buf); - } -} - -void RenderMeshAssetParameters::freeStrings(void) -{ - - for (int i = 0; i < materialNames.arraySizes[0]; ++i) - { - if (materialNames.buf[i].isAllocated && materialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)materialNames.buf[i].buf); - } - } -} - -void RenderMeshAssetParameters::freeReferences(void) -{ - - for (int i = 0; i < submeshes.arraySizes[0]; ++i) - { - if (submeshes.buf[i]) - { - submeshes.buf[i]->destroy(); - } - } -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "RenderMeshAssetParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace RenderMeshAssetParametersNS; + +const char* const RenderMeshAssetParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 11; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 5, 7, 8, 9, 10, 2, 4, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshes), CHILDREN(7), 1 }, // submeshes + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // submeshes[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->materialNames), CHILDREN(8), 1 }, // materialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // materialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->partBounds), CHILDREN(9), 1 }, // partBounds + { TYPE_BOUNDS3, false, 1 * sizeof(physx::PxBounds3), NULL, 0 }, // partBounds[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->textureUVOrigin), NULL, 0 }, // textureUVOrigin + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->boneCount), NULL, 0 }, // boneCount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteStaticBuffersAfterUse), NULL, 0 }, // deleteStaticBuffersAfterUse + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isReferenced), NULL, 0 }, // isReferenced +}; + + +bool RenderMeshAssetParameters::mBuiltFlag = false; +NvParameterized::MutexType RenderMeshAssetParameters::mBuiltFlagMutex; + +RenderMeshAssetParameters::RenderMeshAssetParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &RenderMeshAssetParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +RenderMeshAssetParameters::~RenderMeshAssetParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void RenderMeshAssetParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~RenderMeshAssetParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* RenderMeshAssetParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* RenderMeshAssetParameters::getParameterDefinitionTree(void) const +{ + RenderMeshAssetParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType RenderMeshAssetParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType RenderMeshAssetParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void RenderMeshAssetParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - submeshes (not an array of structs) */ +/* [0] - materialNames (not an array of structs) */ + +void RenderMeshAssetParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void RenderMeshAssetParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshes" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("submeshes", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); + HintTable[2].init("shortDescription", "Array of submeshes", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SubmeshParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshes[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("submeshes", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); + HintTable[2].init("shortDescription", "Array of submeshes", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SubmeshParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="materialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("materialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); + HintTable[1].init("shortDescription", "Array of material names", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="materialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("materialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); + HintTable[1].init("shortDescription", "Array of material names", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="partBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("partBounds", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); + HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="partBounds[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("partBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); + HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="textureUVOrigin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("textureUVOrigin", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The texture origin convention to use for this mesh. See TextureUVOrigin.", true); + HintTable[1].init("shortDescription", "Texture origin convention", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="boneCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("boneCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of mesh-skinning bones. For destructible assets, this is the same as the number of parts.", true); + HintTable[1].init("shortDescription", "The number of mesh-skinning bones", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="deleteStaticBuffersAfterUse" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("deleteStaticBuffersAfterUse", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); + HintTable[1].init("shortDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="isReferenced" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("isReferenced", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Is the render mesh asset referenced in other assets", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(7); + Children[4] = PDEF_PTR(8); + Children[5] = PDEF_PTR(9); + Children[6] = PDEF_PTR(10); + + ParamDefTable[0].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=1, longName="submeshes" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="materialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="partBounds" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void RenderMeshAssetParameters::initStrings(void) +{ +} + +void RenderMeshAssetParameters::initDynamicArrays(void) +{ + submeshes.buf = NULL; + submeshes.isAllocated = true; + submeshes.elementSize = sizeof(NvParameterized::Interface*); + submeshes.arraySizes[0] = 0; + materialNames.buf = NULL; + materialNames.isAllocated = true; + materialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + materialNames.arraySizes[0] = 0; + partBounds.buf = NULL; + partBounds.isAllocated = true; + partBounds.elementSize = sizeof(physx::PxBounds3); + partBounds.arraySizes[0] = 0; +} + +void RenderMeshAssetParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + textureUVOrigin = uint32_t(0); + boneCount = uint32_t(0); + deleteStaticBuffersAfterUse = bool(false); + isReferenced = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void RenderMeshAssetParameters::initReferences(void) +{ +} + +void RenderMeshAssetParameters::freeDynamicArrays(void) +{ + if (submeshes.isAllocated && submeshes.buf) + { + mParameterizedTraits->free(submeshes.buf); + } + if (materialNames.isAllocated && materialNames.buf) + { + mParameterizedTraits->free(materialNames.buf); + } + if (partBounds.isAllocated && partBounds.buf) + { + mParameterizedTraits->free(partBounds.buf); + } +} + +void RenderMeshAssetParameters::freeStrings(void) +{ + + for (int i = 0; i < materialNames.arraySizes[0]; ++i) + { + if (materialNames.buf[i].isAllocated && materialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)materialNames.buf[i].buf); + } + } +} + +void RenderMeshAssetParameters::freeReferences(void) +{ + + for (int i = 0; i < submeshes.arraySizes[0]; ++i) + { + if (submeshes.buf[i]) + { + submeshes.buf[i]->destroy(); + } + } +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SubmeshParameters.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SubmeshParameters.cpp old mode 100644 new mode 100755 index 70b1ce1..d3960fc --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SubmeshParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SubmeshParameters.cpp @@ -1,595 +1,595 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SubmeshParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace SubmeshParametersNS; - -const char* const SubmeshParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 10; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 4, 6, 8, 3, 5, 7, 9, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexBuffer), NULL, 0 }, // vertexBuffer - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexBuffer), CHILDREN(5), 1 }, // indexBuffer - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexBuffer[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexPartition), CHILDREN(6), 1 }, // vertexPartition - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexPartition[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexPartition), CHILDREN(7), 1 }, // indexPartition - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexPartition[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->smoothingGroups), CHILDREN(8), 1 }, // smoothingGroups - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // smoothingGroups[] -}; - - -bool SubmeshParameters::mBuiltFlag = false; -NvParameterized::MutexType SubmeshParameters::mBuiltFlagMutex; - -SubmeshParameters::SubmeshParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SubmeshParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SubmeshParameters::~SubmeshParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SubmeshParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SubmeshParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SubmeshParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SubmeshParameters::getParameterDefinitionTree(void) const -{ - SubmeshParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SubmeshParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SubmeshParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SubmeshParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void SubmeshParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SubmeshParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertexBuffer", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a vertex buffer and an index buffer (see indexBuffer). The vertices for\ndifferent mesh parts are stored in contiguous subsets of the whole vertex buffer.\nThe vertexPartition array holds the offsets into the vertexBuffer for each part.\n", true); - HintTable[2].init("shortDescription", "The vertex buffer for this submesh", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "VertexBufferParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="indexBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("indexBuffer", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); - HintTable[2].init("shortDescription", "The index buffer for this submesh", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="indexBuffer[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("indexBuffer", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); - HintTable[2].init("shortDescription", "The index buffer for this submesh", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexPartition" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("vertexPartition", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="vertexPartition[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("vertexPartition", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="indexPartition" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("indexPartition", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="indexPartition[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("indexPartition", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="smoothingGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("smoothingGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); - HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="smoothingGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("smoothingGroups", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); - HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(4); - Children[3] = PDEF_PTR(6); - Children[4] = PDEF_PTR(8); - - ParamDefTable[0].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=2, longName="indexBuffer" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(3); - - ParamDefTable[2].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="vertexPartition" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="indexPartition" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(7); - - ParamDefTable[6].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=8, longName="smoothingGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(9); - - ParamDefTable[8].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SubmeshParameters::initStrings(void) -{ -} - -void SubmeshParameters::initDynamicArrays(void) -{ - indexBuffer.buf = NULL; - indexBuffer.isAllocated = true; - indexBuffer.elementSize = sizeof(uint32_t); - indexBuffer.arraySizes[0] = 0; - vertexPartition.buf = NULL; - vertexPartition.isAllocated = true; - vertexPartition.elementSize = sizeof(uint32_t); - vertexPartition.arraySizes[0] = 0; - indexPartition.buf = NULL; - indexPartition.isAllocated = true; - indexPartition.elementSize = sizeof(uint32_t); - indexPartition.arraySizes[0] = 0; - smoothingGroups.buf = NULL; - smoothingGroups.isAllocated = true; - smoothingGroups.elementSize = sizeof(uint32_t); - smoothingGroups.arraySizes[0] = 0; -} - -void SubmeshParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SubmeshParameters::initReferences(void) -{ - vertexBuffer = NULL; - -} - -void SubmeshParameters::freeDynamicArrays(void) -{ - if (indexBuffer.isAllocated && indexBuffer.buf) - { - mParameterizedTraits->free(indexBuffer.buf); - } - if (vertexPartition.isAllocated && vertexPartition.buf) - { - mParameterizedTraits->free(vertexPartition.buf); - } - if (indexPartition.isAllocated && indexPartition.buf) - { - mParameterizedTraits->free(indexPartition.buf); - } - if (smoothingGroups.isAllocated && smoothingGroups.buf) - { - mParameterizedTraits->free(smoothingGroups.buf); - } -} - -void SubmeshParameters::freeStrings(void) -{ -} - -void SubmeshParameters::freeReferences(void) -{ - if (vertexBuffer) - { - vertexBuffer->destroy(); - } - -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SubmeshParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace SubmeshParametersNS; + +const char* const SubmeshParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 10; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 4, 6, 8, 3, 5, 7, 9, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexBuffer), NULL, 0 }, // vertexBuffer + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexBuffer), CHILDREN(5), 1 }, // indexBuffer + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexBuffer[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexPartition), CHILDREN(6), 1 }, // vertexPartition + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexPartition[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexPartition), CHILDREN(7), 1 }, // indexPartition + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexPartition[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->smoothingGroups), CHILDREN(8), 1 }, // smoothingGroups + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // smoothingGroups[] +}; + + +bool SubmeshParameters::mBuiltFlag = false; +NvParameterized::MutexType SubmeshParameters::mBuiltFlagMutex; + +SubmeshParameters::SubmeshParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SubmeshParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SubmeshParameters::~SubmeshParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SubmeshParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SubmeshParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SubmeshParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SubmeshParameters::getParameterDefinitionTree(void) const +{ + SubmeshParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SubmeshParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SubmeshParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SubmeshParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void SubmeshParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SubmeshParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertexBuffer", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a vertex buffer and an index buffer (see indexBuffer). The vertices for\ndifferent mesh parts are stored in contiguous subsets of the whole vertex buffer.\nThe vertexPartition array holds the offsets into the vertexBuffer for each part.\n", true); + HintTable[2].init("shortDescription", "The vertex buffer for this submesh", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "VertexBufferParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="indexBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("indexBuffer", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); + HintTable[2].init("shortDescription", "The index buffer for this submesh", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="indexBuffer[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("indexBuffer", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); + HintTable[2].init("shortDescription", "The index buffer for this submesh", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexPartition" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("vertexPartition", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="vertexPartition[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("vertexPartition", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="indexPartition" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("indexPartition", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="indexPartition[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("indexPartition", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="smoothingGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("smoothingGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); + HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="smoothingGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("smoothingGroups", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); + HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(4); + Children[3] = PDEF_PTR(6); + Children[4] = PDEF_PTR(8); + + ParamDefTable[0].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=2, longName="indexBuffer" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(3); + + ParamDefTable[2].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="vertexPartition" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="indexPartition" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(7); + + ParamDefTable[6].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=8, longName="smoothingGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(9); + + ParamDefTable[8].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SubmeshParameters::initStrings(void) +{ +} + +void SubmeshParameters::initDynamicArrays(void) +{ + indexBuffer.buf = NULL; + indexBuffer.isAllocated = true; + indexBuffer.elementSize = sizeof(uint32_t); + indexBuffer.arraySizes[0] = 0; + vertexPartition.buf = NULL; + vertexPartition.isAllocated = true; + vertexPartition.elementSize = sizeof(uint32_t); + vertexPartition.arraySizes[0] = 0; + indexPartition.buf = NULL; + indexPartition.isAllocated = true; + indexPartition.elementSize = sizeof(uint32_t); + indexPartition.arraySizes[0] = 0; + smoothingGroups.buf = NULL; + smoothingGroups.isAllocated = true; + smoothingGroups.elementSize = sizeof(uint32_t); + smoothingGroups.arraySizes[0] = 0; +} + +void SubmeshParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SubmeshParameters::initReferences(void) +{ + vertexBuffer = NULL; + +} + +void SubmeshParameters::freeDynamicArrays(void) +{ + if (indexBuffer.isAllocated && indexBuffer.buf) + { + mParameterizedTraits->free(indexBuffer.buf); + } + if (vertexPartition.isAllocated && vertexPartition.buf) + { + mParameterizedTraits->free(vertexPartition.buf); + } + if (indexPartition.isAllocated && indexPartition.buf) + { + mParameterizedTraits->free(indexPartition.buf); + } + if (smoothingGroups.isAllocated && smoothingGroups.buf) + { + mParameterizedTraits->free(smoothingGroups.buf); + } +} + +void SubmeshParameters::freeStrings(void) +{ +} + +void SubmeshParameters::freeReferences(void) +{ + if (vertexBuffer) + { + vertexBuffer->destroy(); + } + +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SurfaceBufferParameters.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SurfaceBufferParameters.cpp old mode 100644 new mode 100755 index 1adab62..4d9dd58 --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SurfaceBufferParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/SurfaceBufferParameters.cpp @@ -1,404 +1,404 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceBufferParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace SurfaceBufferParametersNS; - -const char* const SurfaceBufferParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 4 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->width), NULL, 0 }, // width - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->height), NULL, 0 }, // height - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->surfaceFormat), NULL, 0 }, // surfaceFormat - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->buffer), NULL, 0 }, // buffer -}; - - -bool SurfaceBufferParameters::mBuiltFlag = false; -NvParameterized::MutexType SurfaceBufferParameters::mBuiltFlagMutex; - -SurfaceBufferParameters::SurfaceBufferParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceBufferParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceBufferParameters::~SurfaceBufferParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceBufferParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceBufferParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceBufferParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceBufferParameters::getParameterDefinitionTree(void) const -{ - SurfaceBufferParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceBufferParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceBufferParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceBufferParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void SurfaceBufferParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceBufferParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="width" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("width", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of point in U-dimension", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="height" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("height", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of point in V-dimension", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="surfaceFormat" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("surfaceFormat", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("shortDescription", "Attributes of the vertex buffer", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="buffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("buffer", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the buffer data according to the description in the SurfaceFormat", true); - HintTable[2].init("shortDescription", "The data buffer", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - - ParamDefTable[0].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void SurfaceBufferParameters::initStrings(void) -{ -} - -void SurfaceBufferParameters::initDynamicArrays(void) -{ -} - -void SurfaceBufferParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - width = uint32_t(0); - height = uint32_t(0); - surfaceFormat = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceBufferParameters::initReferences(void) -{ - buffer = NULL; - -} - -void SurfaceBufferParameters::freeDynamicArrays(void) -{ -} - -void SurfaceBufferParameters::freeStrings(void) -{ -} - -void SurfaceBufferParameters::freeReferences(void) -{ - if (buffer) - { - buffer->destroy(); - } - -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceBufferParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace SurfaceBufferParametersNS; + +const char* const SurfaceBufferParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 4 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->width), NULL, 0 }, // width + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->height), NULL, 0 }, // height + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->surfaceFormat), NULL, 0 }, // surfaceFormat + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->buffer), NULL, 0 }, // buffer +}; + + +bool SurfaceBufferParameters::mBuiltFlag = false; +NvParameterized::MutexType SurfaceBufferParameters::mBuiltFlagMutex; + +SurfaceBufferParameters::SurfaceBufferParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceBufferParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceBufferParameters::~SurfaceBufferParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceBufferParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceBufferParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceBufferParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceBufferParameters::getParameterDefinitionTree(void) const +{ + SurfaceBufferParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceBufferParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceBufferParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceBufferParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void SurfaceBufferParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceBufferParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="width" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("width", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of point in U-dimension", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="height" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("height", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of point in V-dimension", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="surfaceFormat" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("surfaceFormat", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("shortDescription", "Attributes of the vertex buffer", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="buffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("buffer", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the buffer data according to the description in the SurfaceFormat", true); + HintTable[2].init("shortDescription", "The data buffer", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + + ParamDefTable[0].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void SurfaceBufferParameters::initStrings(void) +{ +} + +void SurfaceBufferParameters::initDynamicArrays(void) +{ +} + +void SurfaceBufferParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + width = uint32_t(0); + height = uint32_t(0); + surfaceFormat = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceBufferParameters::initReferences(void) +{ + buffer = NULL; + +} + +void SurfaceBufferParameters::freeDynamicArrays(void) +{ +} + +void SurfaceBufferParameters::freeStrings(void) +{ +} + +void SurfaceBufferParameters::freeReferences(void) +{ + if (buffer) + { + buffer->destroy(); + } + +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexBufferParameters.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexBufferParameters.cpp old mode 100644 new mode 100755 index dc21e9d..207245e --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexBufferParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexBufferParameters.cpp @@ -1,446 +1,446 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "VertexBufferParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace VertexBufferParametersNS; - -const char* const VertexBufferParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->vertexCount), NULL, 0 }, // vertexCount - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexFormat), NULL, 0 }, // vertexFormat - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->buffers), CHILDREN(3), 1 }, // buffers - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // buffers[] -}; - - -bool VertexBufferParameters::mBuiltFlag = false; -NvParameterized::MutexType VertexBufferParameters::mBuiltFlagMutex; - -VertexBufferParameters::VertexBufferParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &VertexBufferParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -VertexBufferParameters::~VertexBufferParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void VertexBufferParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~VertexBufferParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* VertexBufferParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* VertexBufferParameters::getParameterDefinitionTree(void) const -{ - VertexBufferParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType VertexBufferParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType VertexBufferParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void VertexBufferParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - buffers (not an array of structs) */ - -void VertexBufferParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void VertexBufferParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertexCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of vertices in the verrtex buffer. All vertex data channels (positions, normals, etc.) will contain this many items.", true); - HintTable[1].init("shortDescription", "Number of vertices", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="vertexFormat" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("vertexFormat", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This describes the data channels which exist per vertex, the vertex winding order, custom buffers, etc. See VertexFormatParameters.", true); - HintTable[2].init("shortDescription", "Attributes of the vertex buffer", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "VertexFormatParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="buffers" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("buffers", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); - HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[3].setRefVariantVals((const char**)RefVariantVals, 16); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="buffers[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("buffers", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); - HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=3, longName="buffers" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void VertexBufferParameters::initStrings(void) -{ -} - -void VertexBufferParameters::initDynamicArrays(void) -{ - buffers.buf = NULL; - buffers.isAllocated = true; - buffers.elementSize = sizeof(NvParameterized::Interface*); - buffers.arraySizes[0] = 0; -} - -void VertexBufferParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - vertexCount = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void VertexBufferParameters::initReferences(void) -{ - vertexFormat = NULL; - -} - -void VertexBufferParameters::freeDynamicArrays(void) -{ - if (buffers.isAllocated && buffers.buf) - { - mParameterizedTraits->free(buffers.buf); - } -} - -void VertexBufferParameters::freeStrings(void) -{ -} - -void VertexBufferParameters::freeReferences(void) -{ - if (vertexFormat) - { - vertexFormat->destroy(); - } - - - for (int i = 0; i < buffers.arraySizes[0]; ++i) - { - if (buffers.buf[i]) - { - buffers.buf[i]->destroy(); - } - } -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "VertexBufferParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace VertexBufferParametersNS; + +const char* const VertexBufferParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->vertexCount), NULL, 0 }, // vertexCount + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexFormat), NULL, 0 }, // vertexFormat + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->buffers), CHILDREN(3), 1 }, // buffers + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // buffers[] +}; + + +bool VertexBufferParameters::mBuiltFlag = false; +NvParameterized::MutexType VertexBufferParameters::mBuiltFlagMutex; + +VertexBufferParameters::VertexBufferParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &VertexBufferParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +VertexBufferParameters::~VertexBufferParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void VertexBufferParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~VertexBufferParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* VertexBufferParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* VertexBufferParameters::getParameterDefinitionTree(void) const +{ + VertexBufferParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType VertexBufferParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType VertexBufferParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void VertexBufferParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - buffers (not an array of structs) */ + +void VertexBufferParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void VertexBufferParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertexCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of vertices in the verrtex buffer. All vertex data channels (positions, normals, etc.) will contain this many items.", true); + HintTable[1].init("shortDescription", "Number of vertices", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="vertexFormat" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("vertexFormat", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This describes the data channels which exist per vertex, the vertex winding order, custom buffers, etc. See VertexFormatParameters.", true); + HintTable[2].init("shortDescription", "Attributes of the vertex buffer", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "VertexFormatParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="buffers" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("buffers", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); + HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[3].setRefVariantVals((const char**)RefVariantVals, 16); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="buffers[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("buffers", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); + HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=3, longName="buffers" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void VertexBufferParameters::initStrings(void) +{ +} + +void VertexBufferParameters::initDynamicArrays(void) +{ + buffers.buf = NULL; + buffers.isAllocated = true; + buffers.elementSize = sizeof(NvParameterized::Interface*); + buffers.arraySizes[0] = 0; +} + +void VertexBufferParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + vertexCount = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void VertexBufferParameters::initReferences(void) +{ + vertexFormat = NULL; + +} + +void VertexBufferParameters::freeDynamicArrays(void) +{ + if (buffers.isAllocated && buffers.buf) + { + mParameterizedTraits->free(buffers.buf); + } +} + +void VertexBufferParameters::freeStrings(void) +{ +} + +void VertexBufferParameters::freeReferences(void) +{ + if (vertexFormat) + { + vertexFormat->destroy(); + } + + + for (int i = 0; i < buffers.arraySizes[0]; ++i) + { + if (buffers.buf[i]) + { + buffers.buf[i]->destroy(); + } + } +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexFormatParameters.cpp b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexFormatParameters.cpp old mode 100644 new mode 100755 index 5f70a85..d6c6712 --- a/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexFormatParameters.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework/src/autogen/VertexFormatParameters.cpp @@ -1,569 +1,569 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "VertexFormatParameters.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace apex -{ - -using namespace VertexFormatParametersNS; - -const char* const VertexFormatParametersFactory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 11; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->winding), NULL, 0 }, // winding - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->hasSeparateBoneBuffer), NULL, 0 }, // hasSeparateBoneBuffer - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bufferFormats), CHILDREN(3), 1 }, // bufferFormats - { TYPE_STRUCT, false, 1 * sizeof(BufferFormat_Type), CHILDREN(4), 6 }, // bufferFormats[] - { TYPE_STRING, false, (size_t)(&((BufferFormat_Type*)0)->name), NULL, 0 }, // bufferFormats[].name - { TYPE_I32, false, (size_t)(&((BufferFormat_Type*)0)->semantic), NULL, 0 }, // bufferFormats[].semantic - { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->id), NULL, 0 }, // bufferFormats[].id - { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->format), NULL, 0 }, // bufferFormats[].format - { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->access), NULL, 0 }, // bufferFormats[].access - { TYPE_BOOL, false, (size_t)(&((BufferFormat_Type*)0)->serialize), NULL, 0 }, // bufferFormats[].serialize -}; - - -bool VertexFormatParameters::mBuiltFlag = false; -NvParameterized::MutexType VertexFormatParameters::mBuiltFlagMutex; - -VertexFormatParameters::VertexFormatParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &VertexFormatParametersFactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -VertexFormatParameters::~VertexFormatParameters() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void VertexFormatParameters::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~VertexFormatParameters(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* VertexFormatParameters::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* VertexFormatParameters::getParameterDefinitionTree(void) const -{ - VertexFormatParameters* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType VertexFormatParameters::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType VertexFormatParameters::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void VertexFormatParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - bufferFormats.name */ - -void VertexFormatParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void VertexFormatParameters::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="winding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("winding", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This value defines which vertex winding orders will be rendered. See RenderCullMode.", true); - HintTable[1].init("shortDescription", "Vertex orders to be rendered", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="hasSeparateBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("hasSeparateBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not there exists a separate bone buffer.", true); - HintTable[1].init("shortDescription", "Whether or not there exists a separate bone buffer", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bufferFormats" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bufferFormats", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); - HintTable[1].init("shortDescription", "Format of all buffers.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bufferFormats[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bufferFormats", TYPE_STRUCT, "BufferFormat", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); - HintTable[1].init("shortDescription", "Format of all buffers.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="bufferFormats[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name by which this buffer is referenced, for custom semantics. For standard semantics, VertexFormat::getSemanticName() is used", true); - HintTable[1].init("shortDescription", "Name by which this buffer is referenced", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="bufferFormats[].semantic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("semantic", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This buffer's semantic. If it's a custom buffer, it will be RenderVertexSemantic::CUSTOM.", true); - HintTable[1].init("shortDescription", "This buffer's semantic.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="bufferFormats[].id" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("id", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This buffer's id. See VertexFormat::getSemanticID and VertexFormat::getID.", true); - HintTable[1].init("shortDescription", "This buffer's id.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="bufferFormats[].format" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("format", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The format of this buffer. Must be one of the RenderDataFormat::Enum values.", true); - HintTable[1].init("shortDescription", "The format of this buffer", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="bufferFormats[].access" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("access", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The access type for this buffer. Must be one of the VertexDataAccess::Enum values.", true); - HintTable[1].init("shortDescription", "The access type for this buffer", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="bufferFormats[].serialize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("serialize", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is only needed if this buffer needs to be rendered, clothing custom buffer MAX_DISTANCE for example doesn't need it.", true); - HintTable[1].init("shortDescription", "Serialize this buffer", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=3, longName="bufferFormats" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="bufferFormats[]" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(5); - Children[1] = PDEF_PTR(6); - Children[2] = PDEF_PTR(7); - Children[3] = PDEF_PTR(8); - Children[4] = PDEF_PTR(9); - Children[5] = PDEF_PTR(10); - - ParamDefTable[4].setChildren(Children, 6); - } - - mBuiltFlag = true; - -} -void VertexFormatParameters::initStrings(void) -{ -} - -void VertexFormatParameters::initDynamicArrays(void) -{ - bufferFormats.buf = NULL; - bufferFormats.isAllocated = true; - bufferFormats.elementSize = sizeof(BufferFormat_Type); - bufferFormats.arraySizes[0] = 0; -} - -void VertexFormatParameters::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - winding = uint32_t(0); - hasSeparateBoneBuffer = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void VertexFormatParameters::initReferences(void) -{ -} - -void VertexFormatParameters::freeDynamicArrays(void) -{ - if (bufferFormats.isAllocated && bufferFormats.buf) - { - mParameterizedTraits->free(bufferFormats.buf); - } -} - -void VertexFormatParameters::freeStrings(void) -{ - - for (int i = 0; i < bufferFormats.arraySizes[0]; ++i) - { - if (bufferFormats.buf[i].name.isAllocated && bufferFormats.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)bufferFormats.buf[i].name.buf); - } - } -} - -void VertexFormatParameters::freeReferences(void) -{ -} - -} // namespace apex -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "VertexFormatParameters.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace apex +{ + +using namespace VertexFormatParametersNS; + +const char* const VertexFormatParametersFactory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 11; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->winding), NULL, 0 }, // winding + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->hasSeparateBoneBuffer), NULL, 0 }, // hasSeparateBoneBuffer + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bufferFormats), CHILDREN(3), 1 }, // bufferFormats + { TYPE_STRUCT, false, 1 * sizeof(BufferFormat_Type), CHILDREN(4), 6 }, // bufferFormats[] + { TYPE_STRING, false, (size_t)(&((BufferFormat_Type*)0)->name), NULL, 0 }, // bufferFormats[].name + { TYPE_I32, false, (size_t)(&((BufferFormat_Type*)0)->semantic), NULL, 0 }, // bufferFormats[].semantic + { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->id), NULL, 0 }, // bufferFormats[].id + { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->format), NULL, 0 }, // bufferFormats[].format + { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->access), NULL, 0 }, // bufferFormats[].access + { TYPE_BOOL, false, (size_t)(&((BufferFormat_Type*)0)->serialize), NULL, 0 }, // bufferFormats[].serialize +}; + + +bool VertexFormatParameters::mBuiltFlag = false; +NvParameterized::MutexType VertexFormatParameters::mBuiltFlagMutex; + +VertexFormatParameters::VertexFormatParameters(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &VertexFormatParametersFactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +VertexFormatParameters::~VertexFormatParameters() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void VertexFormatParameters::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~VertexFormatParameters(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* VertexFormatParameters::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* VertexFormatParameters::getParameterDefinitionTree(void) const +{ + VertexFormatParameters* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType VertexFormatParameters::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType VertexFormatParameters::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void VertexFormatParameters::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - bufferFormats.name */ + +void VertexFormatParameters::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void VertexFormatParameters::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="winding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("winding", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This value defines which vertex winding orders will be rendered. See RenderCullMode.", true); + HintTable[1].init("shortDescription", "Vertex orders to be rendered", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="hasSeparateBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("hasSeparateBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not there exists a separate bone buffer.", true); + HintTable[1].init("shortDescription", "Whether or not there exists a separate bone buffer", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bufferFormats" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bufferFormats", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); + HintTable[1].init("shortDescription", "Format of all buffers.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bufferFormats[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bufferFormats", TYPE_STRUCT, "BufferFormat", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); + HintTable[1].init("shortDescription", "Format of all buffers.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="bufferFormats[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name by which this buffer is referenced, for custom semantics. For standard semantics, VertexFormat::getSemanticName() is used", true); + HintTable[1].init("shortDescription", "Name by which this buffer is referenced", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="bufferFormats[].semantic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("semantic", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This buffer's semantic. If it's a custom buffer, it will be RenderVertexSemantic::CUSTOM.", true); + HintTable[1].init("shortDescription", "This buffer's semantic.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="bufferFormats[].id" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("id", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This buffer's id. See VertexFormat::getSemanticID and VertexFormat::getID.", true); + HintTable[1].init("shortDescription", "This buffer's id.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="bufferFormats[].format" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("format", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The format of this buffer. Must be one of the RenderDataFormat::Enum values.", true); + HintTable[1].init("shortDescription", "The format of this buffer", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="bufferFormats[].access" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("access", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The access type for this buffer. Must be one of the VertexDataAccess::Enum values.", true); + HintTable[1].init("shortDescription", "The access type for this buffer", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="bufferFormats[].serialize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("serialize", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is only needed if this buffer needs to be rendered, clothing custom buffer MAX_DISTANCE for example doesn't need it.", true); + HintTable[1].init("shortDescription", "Serialize this buffer", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=3, longName="bufferFormats" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="bufferFormats[]" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(5); + Children[1] = PDEF_PTR(6); + Children[2] = PDEF_PTR(7); + Children[3] = PDEF_PTR(8); + Children[4] = PDEF_PTR(9); + Children[5] = PDEF_PTR(10); + + ParamDefTable[4].setChildren(Children, 6); + } + + mBuiltFlag = true; + +} +void VertexFormatParameters::initStrings(void) +{ +} + +void VertexFormatParameters::initDynamicArrays(void) +{ + bufferFormats.buf = NULL; + bufferFormats.isAllocated = true; + bufferFormats.elementSize = sizeof(BufferFormat_Type); + bufferFormats.arraySizes[0] = 0; +} + +void VertexFormatParameters::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + winding = uint32_t(0); + hasSeparateBoneBuffer = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void VertexFormatParameters::initReferences(void) +{ +} + +void VertexFormatParameters::freeDynamicArrays(void) +{ + if (bufferFormats.isAllocated && bufferFormats.buf) + { + mParameterizedTraits->free(bufferFormats.buf); + } +} + +void VertexFormatParameters::freeStrings(void) +{ + + for (int i = 0; i < bufferFormats.arraySizes[0]; ++i) + { + if (bufferFormats.buf[i].name.isAllocated && bufferFormats.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)bufferFormats.buf[i].name.buf); + } + } +} + +void VertexFormatParameters::freeReferences(void) +{ +} + +} // namespace apex +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionBufferF32x4_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionBufferF32x4_0p0_0p1.h old mode 100644 new mode 100755 index 315f642..2dd12fb --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionBufferF32x4_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionBufferF32x4_0p0_0p1.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONBUFFERF32X4_0P0_0P1H_H -#define MODULE_CONVERSIONBUFFERF32X4_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "BufferF32x4_0p0.h" -#include "BufferF32x4_0p1.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionBufferF32x4_0p0_0p1Parent; - -class ConversionBufferF32x4_0p0_0p1: public ConversionBufferF32x4_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionBufferF32x4_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionBufferF32x4_0p0_0p1)(t) : 0; - } - -protected: - ConversionBufferF32x4_0p0_0p1(NvParameterized::Traits* t) : ConversionBufferF32x4_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONBUFFERF32X4_0P0_0P1H_H +#define MODULE_CONVERSIONBUFFERF32X4_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "BufferF32x4_0p0.h" +#include "BufferF32x4_0p1.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionBufferF32x4_0p0_0p1Parent; + +class ConversionBufferF32x4_0p0_0p1: public ConversionBufferF32x4_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionBufferF32x4_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionBufferF32x4_0p0_0p1)(t) : 0; + } + +protected: + ConversionBufferF32x4_0p0_0p1(NvParameterized::Traits* t) : ConversionBufferF32x4_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionSubmeshParameters_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionSubmeshParameters_0p0_0p1.h old mode 100644 new mode 100755 index 0114ba6..9f08e92 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionSubmeshParameters_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionSubmeshParameters_0p0_0p1.h @@ -1,80 +1,80 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONSUBMESHPARAMETERS_0P0_0P1H_H -#define MODULE_CONVERSIONSUBMESHPARAMETERS_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "SubmeshParameters_0p0.h" -#include "SubmeshParameters_0p1.h" - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionSubmeshParameters_0p0_0p1Parent; - -class ConversionSubmeshParameters_0p0_0p1: public ConversionSubmeshParameters_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionSubmeshParameters_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionSubmeshParameters_0p0_0p1)(t) : 0; - } - -protected: - ConversionSubmeshParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionSubmeshParameters_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char*)longName, (uint32_t)preferredVersion } - - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONSUBMESHPARAMETERS_0P0_0P1H_H +#define MODULE_CONVERSIONSUBMESHPARAMETERS_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "SubmeshParameters_0p0.h" +#include "SubmeshParameters_0p1.h" + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionSubmeshParameters_0p0_0p1Parent; + +class ConversionSubmeshParameters_0p0_0p1: public ConversionSubmeshParameters_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionSubmeshParameters_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionSubmeshParameters_0p0_0p1)(t) : 0; + } + +protected: + ConversionSubmeshParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionSubmeshParameters_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char*)longName, (uint32_t)preferredVersion } + + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionVertexBufferParameters_0p0_0p1.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionVertexBufferParameters_0p0_0p1.h old mode 100644 new mode 100755 index 0179ace..5b94974 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionVertexBufferParameters_0p0_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/ConversionVertexBufferParameters_0p0_0p1.h @@ -1,190 +1,190 @@ -/* - * Copyright (c) 2008-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. - */ - - -#ifndef MODULE_CONVERSIONVERTEXBUFFERPARAMETERS_0P0_0P1H_H -#define MODULE_CONVERSIONVERTEXBUFFERPARAMETERS_0P0_0P1H_H - -#include "NvParamConversionTemplate.h" -#include "VertexBufferParameters_0p0.h" -#include "VertexBufferParameters_0p1.h" - -#include "VertexFormatParameters.h" -#include "ApexCommonStructs.h" - -#include -#include - -namespace nvidia { -namespace apex { -namespace legacy { - - -typedef NvParameterized::ParamConversionTemplate - ConversionVertexBufferParameters_0p0_0p1Parent; - -class ConversionVertexBufferParameters_0p0_0p1: public ConversionVertexBufferParameters_0p0_0p1Parent -{ -public: - static NvParameterized::Conversion* Create(NvParameterized::Traits* t) - { - void* buf = t->alloc(sizeof(ConversionVertexBufferParameters_0p0_0p1)); - return buf ? PX_PLACEMENT_NEW(buf, ConversionVertexBufferParameters_0p0_0p1)(t) : 0; - } - -protected: - ConversionVertexBufferParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionVertexBufferParameters_0p0_0p1Parent(t) {} - - const NvParameterized::PrefVer* getPreferredVersions() const - { - static NvParameterized::PrefVer prefVers[] = - { - //TODO: - // Add your preferred versions for included references here. - // Entry format is - // { (const char *)longName, (uint32_t)preferredVersion } - - { "vertexFormat", 0 }, - { 0, 0 } // Terminator (do not remove!) - }; - - return prefVers; - } - - bool convert() - { - //TODO: - // Write custom conversion code here using mNewData and mLegacyData members. - // - // Note that - // - mNewData has already been initialized with default values - // - same-named/same-typed members have already been copied - // from mLegacyData to mNewData - // - included references were moved to mNewData - // (and updated to preferred versions according to getPreferredVersions) - // - // For more info see the versioning wiki. - - - - // if one of these fails it means that they have been upgraded. Then the proper (_0p0.h) files need to be included - // and the types also need the _0p0 suffix. Then it should work again. - PX_COMPILE_TIME_ASSERT(VertexFormatParameters::ClassVersion == 0); - PX_COMPILE_TIME_ASSERT(BufferF32x1::ClassVersion == 0); - PX_COMPILE_TIME_ASSERT(BufferU16x1::ClassVersion == 0); - - - VertexFormatParameters* format = static_cast(mNewData->vertexFormat); - - int32_t boneWeightID = -1; - int32_t boneIndexID = -1; - uint32_t numBoneWeights = 0; - uint32_t numBoneIndices = 0; - - for (uint32_t formatID = 0; formatID < (uint32_t)format->bufferFormats.arraySizes[0]; formatID++) - { - const uint32_t semantic = (uint32_t)format->bufferFormats.buf[formatID].semantic; - if (semantic == RenderVertexSemantic::BONE_INDEX) - { - boneIndexID = (int32_t)formatID; - switch (format->bufferFormats.buf[formatID].format) - { - case RenderDataFormat::USHORT1: - numBoneIndices = 1; - break; - case RenderDataFormat::USHORT2: - numBoneIndices = 2; - break; - case RenderDataFormat::USHORT3: - numBoneIndices = 3; - break; - case RenderDataFormat::USHORT4: - numBoneIndices = 4; - break; - } - } - else if (semantic == RenderVertexSemantic::BONE_WEIGHT) - { - boneWeightID = (int32_t)formatID; - switch (format->bufferFormats.buf[formatID].format) - { - case RenderDataFormat::FLOAT1: - numBoneWeights = 1; - break; - case RenderDataFormat::FLOAT2: - numBoneWeights = 2; - break; - case RenderDataFormat::FLOAT3: - numBoneWeights = 3; - break; - case RenderDataFormat::FLOAT4: - numBoneWeights = 4; - break; - } - } - } - - - // sort bone weights - if (numBoneIndices > 1 && numBoneWeights == numBoneIndices) - { - float* boneWeightBuffer = static_cast(mNewData->buffers.buf[boneWeightID])->data.buf; - uint16_t* boneIndexBuffer = static_cast(mNewData->buffers.buf[boneIndexID])->data.buf; - - for (uint32_t vi = 0; vi < mNewData->vertexCount; vi++) - { - float* verifyWeights = boneWeightBuffer + vi * numBoneWeights; - uint16_t* verifyIndices = boneIndexBuffer + vi * numBoneWeights; - - float sum = 0.0f; - for (uint32_t j = 0; j < numBoneWeights; j++) - { - sum += verifyWeights[j]; - } - - if (physx::PxAbs(1 - sum) > 0.001) - { - if (sum > 0.0f) - { - for (uint32_t j = 0; j < numBoneWeights; j++) - { - verifyWeights[j] /= sum; - } - } - } - - // PH: bubble sort, don't kill me for this - for (uint32_t j = 1; j < numBoneWeights; j++) - { - for (uint32_t k = 1; k < numBoneWeights; k++) - { - if (verifyWeights[k - 1] < verifyWeights[k]) - { - std::swap(verifyWeights[k - 1], verifyWeights[k]); - std::swap(verifyIndices[k - 1], verifyIndices[k]); - } - } - } - } - } - - return true; - } -}; - - -} -} -} //nvidia::apex::legacy - -#endif +/* + * Copyright (c) 2008-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. + */ + + +#ifndef MODULE_CONVERSIONVERTEXBUFFERPARAMETERS_0P0_0P1H_H +#define MODULE_CONVERSIONVERTEXBUFFERPARAMETERS_0P0_0P1H_H + +#include "NvParamConversionTemplate.h" +#include "VertexBufferParameters_0p0.h" +#include "VertexBufferParameters_0p1.h" + +#include "VertexFormatParameters.h" +#include "ApexCommonStructs.h" + +#include +#include + +namespace nvidia { +namespace apex { +namespace legacy { + + +typedef NvParameterized::ParamConversionTemplate + ConversionVertexBufferParameters_0p0_0p1Parent; + +class ConversionVertexBufferParameters_0p0_0p1: public ConversionVertexBufferParameters_0p0_0p1Parent +{ +public: + static NvParameterized::Conversion* Create(NvParameterized::Traits* t) + { + void* buf = t->alloc(sizeof(ConversionVertexBufferParameters_0p0_0p1)); + return buf ? PX_PLACEMENT_NEW(buf, ConversionVertexBufferParameters_0p0_0p1)(t) : 0; + } + +protected: + ConversionVertexBufferParameters_0p0_0p1(NvParameterized::Traits* t) : ConversionVertexBufferParameters_0p0_0p1Parent(t) {} + + const NvParameterized::PrefVer* getPreferredVersions() const + { + static NvParameterized::PrefVer prefVers[] = + { + //TODO: + // Add your preferred versions for included references here. + // Entry format is + // { (const char *)longName, (uint32_t)preferredVersion } + + { "vertexFormat", 0 }, + { 0, 0 } // Terminator (do not remove!) + }; + + return prefVers; + } + + bool convert() + { + //TODO: + // Write custom conversion code here using mNewData and mLegacyData members. + // + // Note that + // - mNewData has already been initialized with default values + // - same-named/same-typed members have already been copied + // from mLegacyData to mNewData + // - included references were moved to mNewData + // (and updated to preferred versions according to getPreferredVersions) + // + // For more info see the versioning wiki. + + + + // if one of these fails it means that they have been upgraded. Then the proper (_0p0.h) files need to be included + // and the types also need the _0p0 suffix. Then it should work again. + PX_COMPILE_TIME_ASSERT(VertexFormatParameters::ClassVersion == 0); + PX_COMPILE_TIME_ASSERT(BufferF32x1::ClassVersion == 0); + PX_COMPILE_TIME_ASSERT(BufferU16x1::ClassVersion == 0); + + + VertexFormatParameters* format = static_cast(mNewData->vertexFormat); + + int32_t boneWeightID = -1; + int32_t boneIndexID = -1; + uint32_t numBoneWeights = 0; + uint32_t numBoneIndices = 0; + + for (uint32_t formatID = 0; formatID < (uint32_t)format->bufferFormats.arraySizes[0]; formatID++) + { + const uint32_t semantic = (uint32_t)format->bufferFormats.buf[formatID].semantic; + if (semantic == RenderVertexSemantic::BONE_INDEX) + { + boneIndexID = (int32_t)formatID; + switch (format->bufferFormats.buf[formatID].format) + { + case RenderDataFormat::USHORT1: + numBoneIndices = 1; + break; + case RenderDataFormat::USHORT2: + numBoneIndices = 2; + break; + case RenderDataFormat::USHORT3: + numBoneIndices = 3; + break; + case RenderDataFormat::USHORT4: + numBoneIndices = 4; + break; + } + } + else if (semantic == RenderVertexSemantic::BONE_WEIGHT) + { + boneWeightID = (int32_t)formatID; + switch (format->bufferFormats.buf[formatID].format) + { + case RenderDataFormat::FLOAT1: + numBoneWeights = 1; + break; + case RenderDataFormat::FLOAT2: + numBoneWeights = 2; + break; + case RenderDataFormat::FLOAT3: + numBoneWeights = 3; + break; + case RenderDataFormat::FLOAT4: + numBoneWeights = 4; + break; + } + } + } + + + // sort bone weights + if (numBoneIndices > 1 && numBoneWeights == numBoneIndices) + { + float* boneWeightBuffer = static_cast(mNewData->buffers.buf[boneWeightID])->data.buf; + uint16_t* boneIndexBuffer = static_cast(mNewData->buffers.buf[boneIndexID])->data.buf; + + for (uint32_t vi = 0; vi < mNewData->vertexCount; vi++) + { + float* verifyWeights = boneWeightBuffer + vi * numBoneWeights; + uint16_t* verifyIndices = boneIndexBuffer + vi * numBoneWeights; + + float sum = 0.0f; + for (uint32_t j = 0; j < numBoneWeights; j++) + { + sum += verifyWeights[j]; + } + + if (physx::PxAbs(1 - sum) > 0.001) + { + if (sum > 0.0f) + { + for (uint32_t j = 0; j < numBoneWeights; j++) + { + verifyWeights[j] /= sum; + } + } + } + + // PH: bubble sort, don't kill me for this + for (uint32_t j = 1; j < numBoneWeights; j++) + { + for (uint32_t k = 1; k < numBoneWeights; k++) + { + if (verifyWeights[k - 1] < verifyWeights[k]) + { + std::swap(verifyWeights[k - 1], verifyWeights[k]); + std::swap(verifyIndices[k - 1], verifyIndices[k]); + } + } + } + } + } + + return true; + } +}; + + +} +} +} //nvidia::apex::legacy + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x1_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x1_0p0.h old mode 100644 new mode 100755 index 69bf2c9..736c0fd --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x1_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x1_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x1_0p0_h -#define HEADER_BufferF32x1_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x1_0p0NS -{ - - -struct F32_DynamicArray1D_Type -{ - float* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - F32_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xcdd104f7, 0x061ac76e, 0xc255d951, 0x1e7cffef, }; - -} // namespace BufferF32x1_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x1_0p0 : public NvParameterized::NvParameters, public BufferF32x1_0p0NS::ParametersStruct -{ -public: - BufferF32x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x1_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x1_0p0NS::checksum); - return BufferF32x1_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x1_0p0NS::ParametersStruct& parameters(void) const - { - BufferF32x1_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x1_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x1_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x1_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x1_0p0), BufferF32x1_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x1_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x1_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x1_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x1_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x1_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x1_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x1_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x1_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x1_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x1_0p0_h +#define HEADER_BufferF32x1_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x1_0p0NS +{ + + +struct F32_DynamicArray1D_Type +{ + float* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + F32_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xcdd104f7, 0x061ac76e, 0xc255d951, 0x1e7cffef, }; + +} // namespace BufferF32x1_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x1_0p0 : public NvParameterized::NvParameters, public BufferF32x1_0p0NS::ParametersStruct +{ +public: + BufferF32x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x1_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x1_0p0NS::checksum); + return BufferF32x1_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x1_0p0NS::ParametersStruct& parameters(void) const + { + BufferF32x1_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x1_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x1_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x1_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x1_0p0), BufferF32x1_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x1_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x1_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x1_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x1_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x1_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x1_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x1_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x1_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x1_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x1_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x2_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x2_0p0.h old mode 100644 new mode 100755 index 86a32ac..b5bed08 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x2_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x2_0p0.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x2_0p0_h -#define HEADER_BufferF32x2_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x2_0p0NS -{ - -struct F32x2_Type; - -struct F32x2_DynamicArray1D_Type -{ - F32x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x2_Type -{ - float x; - float y; -}; - -struct ParametersStruct -{ - - F32x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x788349ee, 0x95c560e2, 0x9633945e, 0x8cc784a0, }; - -} // namespace BufferF32x2_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x2_0p0 : public NvParameterized::NvParameters, public BufferF32x2_0p0NS::ParametersStruct -{ -public: - BufferF32x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x2_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x2_0p0NS::checksum); - return BufferF32x2_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x2_0p0NS::ParametersStruct& parameters(void) const - { - BufferF32x2_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x2_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x2_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x2_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x2_0p0), BufferF32x2_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x2_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x2_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x2_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x2_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x2_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x2_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x2_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x2_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x2_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x2_0p0_h +#define HEADER_BufferF32x2_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x2_0p0NS +{ + +struct F32x2_Type; + +struct F32x2_DynamicArray1D_Type +{ + F32x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x2_Type +{ + float x; + float y; +}; + +struct ParametersStruct +{ + + F32x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x788349ee, 0x95c560e2, 0x9633945e, 0x8cc784a0, }; + +} // namespace BufferF32x2_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x2_0p0 : public NvParameterized::NvParameters, public BufferF32x2_0p0NS::ParametersStruct +{ +public: + BufferF32x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x2_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x2_0p0NS::checksum); + return BufferF32x2_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x2_0p0NS::ParametersStruct& parameters(void) const + { + BufferF32x2_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x2_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x2_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x2_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x2_0p0), BufferF32x2_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x2_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x2_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x2_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x2_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x2_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x2_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x2_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x2_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x2_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x2_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x3_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x3_0p0.h old mode 100644 new mode 100755 index 85e4da5..8c5ceb1 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x3_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x3_0p0.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x3_0p0_h -#define HEADER_BufferF32x3_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x3_0p0NS -{ - -struct F32x3_Type; - -struct VEC3_DynamicArray1D_Type -{ - physx::PxVec3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x3_Type -{ - float x; - float y; - float z; -}; - -struct ParametersStruct -{ - - VEC3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x458b554a, 0x7ed3e930, 0x0299ff33, 0x9d69c11b, }; - -} // namespace BufferF32x3_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x3_0p0 : public NvParameterized::NvParameters, public BufferF32x3_0p0NS::ParametersStruct -{ -public: - BufferF32x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x3_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x3_0p0NS::checksum); - return BufferF32x3_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x3_0p0NS::ParametersStruct& parameters(void) const - { - BufferF32x3_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x3_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x3_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x3_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x3_0p0), BufferF32x3_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x3_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x3_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x3_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x3_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x3_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x3_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x3_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x3_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x3_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x3_0p0_h +#define HEADER_BufferF32x3_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x3_0p0NS +{ + +struct F32x3_Type; + +struct VEC3_DynamicArray1D_Type +{ + physx::PxVec3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x3_Type +{ + float x; + float y; + float z; +}; + +struct ParametersStruct +{ + + VEC3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x458b554a, 0x7ed3e930, 0x0299ff33, 0x9d69c11b, }; + +} // namespace BufferF32x3_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x3_0p0 : public NvParameterized::NvParameters, public BufferF32x3_0p0NS::ParametersStruct +{ +public: + BufferF32x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x3_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x3_0p0NS::checksum); + return BufferF32x3_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x3_0p0NS::ParametersStruct& parameters(void) const + { + BufferF32x3_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x3_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x3_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x3_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x3_0p0), BufferF32x3_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x3_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x3_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x3_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x3_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x3_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x3_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x3_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x3_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x3_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x3_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p0.h old mode 100644 new mode 100755 index 44eec25..5d55365 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p0.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x4_0p0_h -#define HEADER_BufferF32x4_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x4_0p0NS -{ - -struct F32x4_Type; - -struct F32x4_DynamicArray1D_Type -{ - F32x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x4_Type -{ - float x; - float y; - float z; - float w; -}; - -struct ParametersStruct -{ - - F32x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x012d3904, 0x3cb30964, 0xb8d324aa, 0x2a5b2583, }; - -} // namespace BufferF32x4_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x4_0p0 : public NvParameterized::NvParameters, public BufferF32x4_0p0NS::ParametersStruct -{ -public: - BufferF32x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x4_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x4_0p0NS::checksum); - return BufferF32x4_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x4_0p0NS::ParametersStruct& parameters(void) const - { - BufferF32x4_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x4_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x4_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x4_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x4_0p0), BufferF32x4_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x4_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x4_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x4_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x4_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x4_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x4_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x4_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x4_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x4_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x4_0p0_h +#define HEADER_BufferF32x4_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x4_0p0NS +{ + +struct F32x4_Type; + +struct F32x4_DynamicArray1D_Type +{ + F32x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x4_Type +{ + float x; + float y; + float z; + float w; +}; + +struct ParametersStruct +{ + + F32x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x012d3904, 0x3cb30964, 0xb8d324aa, 0x2a5b2583, }; + +} // namespace BufferF32x4_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x4_0p0 : public NvParameterized::NvParameters, public BufferF32x4_0p0NS::ParametersStruct +{ +public: + BufferF32x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x4_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x4_0p0NS::checksum); + return BufferF32x4_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x4_0p0NS::ParametersStruct& parameters(void) const + { + BufferF32x4_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x4_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x4_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x4_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x4_0p0), BufferF32x4_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x4_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x4_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x4_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x4_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x4_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x4_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x4_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x4_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x4_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p1.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p1.h old mode 100644 new mode 100755 index 14e0d5f..b465152 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferF32x4_0p1.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferF32x4_0p1_h -#define HEADER_BufferF32x4_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferF32x4_0p1NS -{ - -struct F32x4_Type; - -struct F32x4_DynamicArray1D_Type -{ - F32x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct F32x4_Type -{ - PX_ALIGN(16, float x); - float y; - float z; - float w; -}; - -struct ParametersStruct -{ - - F32x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x80321851, 0xa99e95a1, 0xd26ec9a8, 0x14206b37, }; - -} // namespace BufferF32x4_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferF32x4_0p1 : public NvParameterized::NvParameters, public BufferF32x4_0p1NS::ParametersStruct -{ -public: - BufferF32x4_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferF32x4_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferF32x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferF32x4_0p1NS::checksum); - return BufferF32x4_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferF32x4_0p1NS::ParametersStruct& parameters(void) const - { - BufferF32x4_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferF32x4_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferF32x4_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferF32x4_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferF32x4_0p1), BufferF32x4_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferF32x4_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferF32x4_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x4_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferF32x4_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferF32x4_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferF32x4_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferF32x4_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferF32x4_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferF32x4_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferF32x4_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferF32x4_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferF32x4_0p1_h +#define HEADER_BufferF32x4_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferF32x4_0p1NS +{ + +struct F32x4_Type; + +struct F32x4_DynamicArray1D_Type +{ + F32x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct F32x4_Type +{ + PX_ALIGN(16, float x); + float y; + float z; + float w; +}; + +struct ParametersStruct +{ + + F32x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x80321851, 0xa99e95a1, 0xd26ec9a8, 0x14206b37, }; + +} // namespace BufferF32x4_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferF32x4_0p1 : public NvParameterized::NvParameters, public BufferF32x4_0p1NS::ParametersStruct +{ +public: + BufferF32x4_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferF32x4_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferF32x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferF32x4_0p1NS::checksum); + return BufferF32x4_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferF32x4_0p1NS::ParametersStruct& parameters(void) const + { + BufferF32x4_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferF32x4_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferF32x4_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferF32x4_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferF32x4_0p1), BufferF32x4_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferF32x4_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferF32x4_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferF32x4_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferF32x4_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferF32x4_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferF32x4_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferF32x4_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferF32x4_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferF32x4_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferF32x4_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferF32x4_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferF32x4_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x1_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x1_0p0.h old mode 100644 new mode 100755 index bdee96e..fe5aeff --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x1_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x1_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x1_0p0_h -#define HEADER_BufferU16x1_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x1_0p0NS -{ - - -struct U16_DynamicArray1D_Type -{ - uint16_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U16_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x3c20aee2, 0x4e6abe8c, 0x8c1e5625, 0x7cabf8fc, }; - -} // namespace BufferU16x1_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x1_0p0 : public NvParameterized::NvParameters, public BufferU16x1_0p0NS::ParametersStruct -{ -public: - BufferU16x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x1_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x1_0p0NS::checksum); - return BufferU16x1_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x1_0p0NS::ParametersStruct& parameters(void) const - { - BufferU16x1_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x1_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x1_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x1_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x1_0p0), BufferU16x1_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x1_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x1_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x1_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x1_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x1_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x1_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x1_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x1_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x1_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x1_0p0_h +#define HEADER_BufferU16x1_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x1_0p0NS +{ + + +struct U16_DynamicArray1D_Type +{ + uint16_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U16_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x3c20aee2, 0x4e6abe8c, 0x8c1e5625, 0x7cabf8fc, }; + +} // namespace BufferU16x1_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x1_0p0 : public NvParameterized::NvParameters, public BufferU16x1_0p0NS::ParametersStruct +{ +public: + BufferU16x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x1_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x1_0p0NS::checksum); + return BufferU16x1_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x1_0p0NS::ParametersStruct& parameters(void) const + { + BufferU16x1_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x1_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x1_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x1_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x1_0p0), BufferU16x1_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x1_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x1_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x1_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x1_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x1_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x1_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x1_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x1_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x1_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x1_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x2_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x2_0p0.h old mode 100644 new mode 100755 index 4ff237e..c3b705c --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x2_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x2_0p0.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x2_0p0_h -#define HEADER_BufferU16x2_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x2_0p0NS -{ - -struct U16x2_Type; - -struct U16x2_DynamicArray1D_Type -{ - U16x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U16x2_Type -{ - uint16_t x; - uint16_t y; -}; - -struct ParametersStruct -{ - - U16x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x35087bb2, 0x98bdb0fd, 0x22e601f6, 0x79ba85e9, }; - -} // namespace BufferU16x2_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x2_0p0 : public NvParameterized::NvParameters, public BufferU16x2_0p0NS::ParametersStruct -{ -public: - BufferU16x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x2_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x2_0p0NS::checksum); - return BufferU16x2_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x2_0p0NS::ParametersStruct& parameters(void) const - { - BufferU16x2_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x2_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x2_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x2_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x2_0p0), BufferU16x2_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x2_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x2_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x2_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x2_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x2_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x2_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x2_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x2_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x2_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x2_0p0_h +#define HEADER_BufferU16x2_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x2_0p0NS +{ + +struct U16x2_Type; + +struct U16x2_DynamicArray1D_Type +{ + U16x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U16x2_Type +{ + uint16_t x; + uint16_t y; +}; + +struct ParametersStruct +{ + + U16x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x35087bb2, 0x98bdb0fd, 0x22e601f6, 0x79ba85e9, }; + +} // namespace BufferU16x2_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x2_0p0 : public NvParameterized::NvParameters, public BufferU16x2_0p0NS::ParametersStruct +{ +public: + BufferU16x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x2_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x2_0p0NS::checksum); + return BufferU16x2_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x2_0p0NS::ParametersStruct& parameters(void) const + { + BufferU16x2_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x2_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x2_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x2_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x2_0p0), BufferU16x2_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x2_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x2_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x2_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x2_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x2_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x2_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x2_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x2_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x2_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x2_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x3_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x3_0p0.h old mode 100644 new mode 100755 index baae046..3134def --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x3_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x3_0p0.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x3_0p0_h -#define HEADER_BufferU16x3_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x3_0p0NS -{ - -struct U16x3_Type; - -struct U16x3_DynamicArray1D_Type -{ - U16x3_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U16x3_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; -}; - -struct ParametersStruct -{ - - U16x3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x904a928f, 0x9f3f0b91, 0x29168b39, 0x31638e80, }; - -} // namespace BufferU16x3_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x3_0p0 : public NvParameterized::NvParameters, public BufferU16x3_0p0NS::ParametersStruct -{ -public: - BufferU16x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x3_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x3_0p0NS::checksum); - return BufferU16x3_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x3_0p0NS::ParametersStruct& parameters(void) const - { - BufferU16x3_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x3_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x3_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x3_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x3_0p0), BufferU16x3_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x3_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x3_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x3_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x3_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x3_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x3_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x3_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x3_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x3_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x3_0p0_h +#define HEADER_BufferU16x3_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x3_0p0NS +{ + +struct U16x3_Type; + +struct U16x3_DynamicArray1D_Type +{ + U16x3_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U16x3_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; +}; + +struct ParametersStruct +{ + + U16x3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x904a928f, 0x9f3f0b91, 0x29168b39, 0x31638e80, }; + +} // namespace BufferU16x3_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x3_0p0 : public NvParameterized::NvParameters, public BufferU16x3_0p0NS::ParametersStruct +{ +public: + BufferU16x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x3_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x3_0p0NS::checksum); + return BufferU16x3_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x3_0p0NS::ParametersStruct& parameters(void) const + { + BufferU16x3_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x3_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x3_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x3_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x3_0p0), BufferU16x3_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x3_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x3_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x3_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x3_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x3_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x3_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x3_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x3_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x3_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x3_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x4_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x4_0p0.h old mode 100644 new mode 100755 index 40b5abc..9a40b60 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x4_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU16x4_0p0.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU16x4_0p0_h -#define HEADER_BufferU16x4_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU16x4_0p0NS -{ - -struct U16x4_Type; - -struct U16x4_DynamicArray1D_Type -{ - U16x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U16x4_Type -{ - uint16_t x; - uint16_t y; - uint16_t z; - uint16_t w; -}; - -struct ParametersStruct -{ - - U16x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x17ce6b83, 0x32ba98aa, 0xd03f98f6, 0x26918369, }; - -} // namespace BufferU16x4_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU16x4_0p0 : public NvParameterized::NvParameters, public BufferU16x4_0p0NS::ParametersStruct -{ -public: - BufferU16x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU16x4_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU16x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU16x4_0p0NS::checksum); - return BufferU16x4_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU16x4_0p0NS::ParametersStruct& parameters(void) const - { - BufferU16x4_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU16x4_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU16x4_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU16x4_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU16x4_0p0), BufferU16x4_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU16x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU16x4_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x4_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU16x4_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU16x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU16x4_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU16x4_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU16x4_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU16x4_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU16x4_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU16x4_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU16x4_0p0_h +#define HEADER_BufferU16x4_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU16x4_0p0NS +{ + +struct U16x4_Type; + +struct U16x4_DynamicArray1D_Type +{ + U16x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U16x4_Type +{ + uint16_t x; + uint16_t y; + uint16_t z; + uint16_t w; +}; + +struct ParametersStruct +{ + + U16x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x17ce6b83, 0x32ba98aa, 0xd03f98f6, 0x26918369, }; + +} // namespace BufferU16x4_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU16x4_0p0 : public NvParameterized::NvParameters, public BufferU16x4_0p0NS::ParametersStruct +{ +public: + BufferU16x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU16x4_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU16x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU16x4_0p0NS::checksum); + return BufferU16x4_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU16x4_0p0NS::ParametersStruct& parameters(void) const + { + BufferU16x4_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU16x4_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU16x4_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU16x4_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU16x4_0p0), BufferU16x4_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU16x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU16x4_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU16x4_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU16x4_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU16x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU16x4_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU16x4_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU16x4_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU16x4_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU16x4_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU16x4_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU16x4_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x1_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x1_0p0.h old mode 100644 new mode 100755 index 7f2a884..280b804 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x1_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x1_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x1_0p0_h -#define HEADER_BufferU32x1_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x1_0p0NS -{ - - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U32_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xaea8bce2, 0x233c95f7, 0xdaa9d0d3, 0x43951dbe, }; - -} // namespace BufferU32x1_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x1_0p0 : public NvParameterized::NvParameters, public BufferU32x1_0p0NS::ParametersStruct -{ -public: - BufferU32x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x1_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x1_0p0NS::checksum); - return BufferU32x1_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x1_0p0NS::ParametersStruct& parameters(void) const - { - BufferU32x1_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x1_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x1_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x1_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x1_0p0), BufferU32x1_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x1_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x1_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x1_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x1_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x1_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x1_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x1_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x1_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x1_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x1_0p0_h +#define HEADER_BufferU32x1_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x1_0p0NS +{ + + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U32_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xaea8bce2, 0x233c95f7, 0xdaa9d0d3, 0x43951dbe, }; + +} // namespace BufferU32x1_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x1_0p0 : public NvParameterized::NvParameters, public BufferU32x1_0p0NS::ParametersStruct +{ +public: + BufferU32x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x1_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x1_0p0NS::checksum); + return BufferU32x1_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x1_0p0NS::ParametersStruct& parameters(void) const + { + BufferU32x1_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x1_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x1_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x1_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x1_0p0), BufferU32x1_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x1_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x1_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x1_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x1_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x1_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x1_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x1_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x1_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x1_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x1_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x2_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x2_0p0.h old mode 100644 new mode 100755 index 3ba5202..9132d63 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x2_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x2_0p0.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x2_0p0_h -#define HEADER_BufferU32x2_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x2_0p0NS -{ - -struct U32x2_Type; - -struct U32x2_DynamicArray1D_Type -{ - U32x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32x2_Type -{ - uint32_t x; - uint32_t y; -}; - -struct ParametersStruct -{ - - U32x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x8f8dc3d4, 0x45e914f5, 0xe6432284, 0xf7487471, }; - -} // namespace BufferU32x2_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x2_0p0 : public NvParameterized::NvParameters, public BufferU32x2_0p0NS::ParametersStruct -{ -public: - BufferU32x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x2_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x2_0p0NS::checksum); - return BufferU32x2_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x2_0p0NS::ParametersStruct& parameters(void) const - { - BufferU32x2_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x2_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x2_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x2_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x2_0p0), BufferU32x2_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x2_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x2_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x2_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x2_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x2_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x2_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x2_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x2_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x2_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x2_0p0_h +#define HEADER_BufferU32x2_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x2_0p0NS +{ + +struct U32x2_Type; + +struct U32x2_DynamicArray1D_Type +{ + U32x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32x2_Type +{ + uint32_t x; + uint32_t y; +}; + +struct ParametersStruct +{ + + U32x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x8f8dc3d4, 0x45e914f5, 0xe6432284, 0xf7487471, }; + +} // namespace BufferU32x2_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x2_0p0 : public NvParameterized::NvParameters, public BufferU32x2_0p0NS::ParametersStruct +{ +public: + BufferU32x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x2_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x2_0p0NS::checksum); + return BufferU32x2_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x2_0p0NS::ParametersStruct& parameters(void) const + { + BufferU32x2_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x2_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x2_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x2_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x2_0p0), BufferU32x2_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x2_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x2_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x2_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x2_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x2_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x2_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x2_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x2_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x2_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x2_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x3_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x3_0p0.h old mode 100644 new mode 100755 index 6fcd22c..49c1f3d --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x3_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x3_0p0.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x3_0p0_h -#define HEADER_BufferU32x3_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x3_0p0NS -{ - -struct U32x3_Type; - -struct U32x3_DynamicArray1D_Type -{ - U32x3_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32x3_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; -}; - -struct ParametersStruct -{ - - U32x3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xc0b737db, 0x1cae35c4, 0xe957acc9, 0x68cb2306, }; - -} // namespace BufferU32x3_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x3_0p0 : public NvParameterized::NvParameters, public BufferU32x3_0p0NS::ParametersStruct -{ -public: - BufferU32x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x3_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x3_0p0NS::checksum); - return BufferU32x3_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x3_0p0NS::ParametersStruct& parameters(void) const - { - BufferU32x3_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x3_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x3_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x3_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x3_0p0), BufferU32x3_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x3_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x3_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x3_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x3_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x3_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x3_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x3_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x3_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x3_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x3_0p0_h +#define HEADER_BufferU32x3_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x3_0p0NS +{ + +struct U32x3_Type; + +struct U32x3_DynamicArray1D_Type +{ + U32x3_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32x3_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; +}; + +struct ParametersStruct +{ + + U32x3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xc0b737db, 0x1cae35c4, 0xe957acc9, 0x68cb2306, }; + +} // namespace BufferU32x3_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x3_0p0 : public NvParameterized::NvParameters, public BufferU32x3_0p0NS::ParametersStruct +{ +public: + BufferU32x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x3_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x3_0p0NS::checksum); + return BufferU32x3_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x3_0p0NS::ParametersStruct& parameters(void) const + { + BufferU32x3_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x3_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x3_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x3_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x3_0p0), BufferU32x3_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x3_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x3_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x3_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x3_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x3_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x3_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x3_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x3_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x3_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x3_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x4_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x4_0p0.h old mode 100644 new mode 100755 index 82ee260..8a16017 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x4_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU32x4_0p0.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU32x4_0p0_h -#define HEADER_BufferU32x4_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU32x4_0p0NS -{ - -struct U32x4_Type; - -struct U32x4_DynamicArray1D_Type -{ - U32x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U32x4_Type -{ - uint32_t x; - uint32_t y; - uint32_t z; - uint32_t w; -}; - -struct ParametersStruct -{ - - U32x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x8e5349d3, 0xbf3dae15, 0x22c57bb9, 0x7c602608, }; - -} // namespace BufferU32x4_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU32x4_0p0 : public NvParameterized::NvParameters, public BufferU32x4_0p0NS::ParametersStruct -{ -public: - BufferU32x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU32x4_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU32x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU32x4_0p0NS::checksum); - return BufferU32x4_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU32x4_0p0NS::ParametersStruct& parameters(void) const - { - BufferU32x4_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU32x4_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU32x4_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU32x4_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU32x4_0p0), BufferU32x4_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU32x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU32x4_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x4_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU32x4_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU32x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU32x4_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU32x4_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU32x4_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU32x4_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU32x4_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU32x4_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU32x4_0p0_h +#define HEADER_BufferU32x4_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU32x4_0p0NS +{ + +struct U32x4_Type; + +struct U32x4_DynamicArray1D_Type +{ + U32x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U32x4_Type +{ + uint32_t x; + uint32_t y; + uint32_t z; + uint32_t w; +}; + +struct ParametersStruct +{ + + U32x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x8e5349d3, 0xbf3dae15, 0x22c57bb9, 0x7c602608, }; + +} // namespace BufferU32x4_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU32x4_0p0 : public NvParameterized::NvParameters, public BufferU32x4_0p0NS::ParametersStruct +{ +public: + BufferU32x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU32x4_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU32x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU32x4_0p0NS::checksum); + return BufferU32x4_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU32x4_0p0NS::ParametersStruct& parameters(void) const + { + BufferU32x4_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU32x4_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU32x4_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU32x4_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU32x4_0p0), BufferU32x4_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU32x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU32x4_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU32x4_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU32x4_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU32x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU32x4_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU32x4_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU32x4_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU32x4_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU32x4_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU32x4_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU32x4_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x1_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x1_0p0.h old mode 100644 new mode 100755 index 33f8e8e..07768ba --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x1_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x1_0p0.h @@ -1,238 +1,238 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x1_0p0_h -#define HEADER_BufferU8x1_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x1_0p0NS -{ - - -struct U8_DynamicArray1D_Type -{ - uint8_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - U8_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x9c4137b9, 0x1fe24c98, 0xae580b55, 0x7e908e02, }; - -} // namespace BufferU8x1_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x1_0p0 : public NvParameterized::NvParameters, public BufferU8x1_0p0NS::ParametersStruct -{ -public: - BufferU8x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x1_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x1"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x1_0p0NS::checksum); - return BufferU8x1_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x1_0p0NS::ParametersStruct& parameters(void) const - { - BufferU8x1_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x1_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x1_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x1_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x1_0p0), BufferU8x1_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x1_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x1_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x1_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x1_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x1_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x1_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x1_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x1_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x1_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x1_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x1_0p0_h +#define HEADER_BufferU8x1_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x1_0p0NS +{ + + +struct U8_DynamicArray1D_Type +{ + uint8_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + U8_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x9c4137b9, 0x1fe24c98, 0xae580b55, 0x7e908e02, }; + +} // namespace BufferU8x1_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x1_0p0 : public NvParameterized::NvParameters, public BufferU8x1_0p0NS::ParametersStruct +{ +public: + BufferU8x1_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x1_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x1"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x1_0p0NS::checksum); + return BufferU8x1_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x1_0p0NS::ParametersStruct& parameters(void) const + { + BufferU8x1_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x1_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x1_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x1_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x1_0p0), BufferU8x1_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x1_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x1_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x1_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x1_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x1_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x1_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x1_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x1_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x1_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x1_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x1_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x2_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x2_0p0.h old mode 100644 new mode 100755 index 20e7554..1030ac0 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x2_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x2_0p0.h @@ -1,244 +1,244 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x2_0p0_h -#define HEADER_BufferU8x2_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x2_0p0NS -{ - -struct U8x2_Type; - -struct U8x2_DynamicArray1D_Type -{ - U8x2_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8x2_Type -{ - uint8_t x; - uint8_t y; -}; - -struct ParametersStruct -{ - - U8x2_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x9857276c, 0xc24be4d6, 0x1aee732c, 0xf8979343, }; - -} // namespace BufferU8x2_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x2_0p0 : public NvParameterized::NvParameters, public BufferU8x2_0p0NS::ParametersStruct -{ -public: - BufferU8x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x2_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x2"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x2_0p0NS::checksum); - return BufferU8x2_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x2_0p0NS::ParametersStruct& parameters(void) const - { - BufferU8x2_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x2_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x2_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x2_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x2_0p0), BufferU8x2_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x2_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x2_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x2_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x2_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x2_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x2_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x2_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x2_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x2_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x2_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x2_0p0_h +#define HEADER_BufferU8x2_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x2_0p0NS +{ + +struct U8x2_Type; + +struct U8x2_DynamicArray1D_Type +{ + U8x2_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8x2_Type +{ + uint8_t x; + uint8_t y; +}; + +struct ParametersStruct +{ + + U8x2_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x9857276c, 0xc24be4d6, 0x1aee732c, 0xf8979343, }; + +} // namespace BufferU8x2_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x2_0p0 : public NvParameterized::NvParameters, public BufferU8x2_0p0NS::ParametersStruct +{ +public: + BufferU8x2_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x2_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x2"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x2_0p0NS::checksum); + return BufferU8x2_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x2_0p0NS::ParametersStruct& parameters(void) const + { + BufferU8x2_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x2_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x2_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x2_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x2_0p0), BufferU8x2_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x2_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x2_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x2_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x2_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x2_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x2_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x2_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x2_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x2_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x2_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x2_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x3_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x3_0p0.h old mode 100644 new mode 100755 index 711af93..2fed573 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x3_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x3_0p0.h @@ -1,245 +1,245 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x3_0p0_h -#define HEADER_BufferU8x3_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x3_0p0NS -{ - -struct U8x3_Type; - -struct U8x3_DynamicArray1D_Type -{ - U8x3_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8x3_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; -}; - -struct ParametersStruct -{ - - U8x3_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0xf5cdaf40, 0x1d38c18b, 0x85082025, 0x4cefb88a, }; - -} // namespace BufferU8x3_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x3_0p0 : public NvParameterized::NvParameters, public BufferU8x3_0p0NS::ParametersStruct -{ -public: - BufferU8x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x3_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x3"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x3_0p0NS::checksum); - return BufferU8x3_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x3_0p0NS::ParametersStruct& parameters(void) const - { - BufferU8x3_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x3_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x3_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x3_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x3_0p0), BufferU8x3_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x3_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x3_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x3_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x3_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x3_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x3_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x3_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x3_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x3_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x3_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x3_0p0_h +#define HEADER_BufferU8x3_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x3_0p0NS +{ + +struct U8x3_Type; + +struct U8x3_DynamicArray1D_Type +{ + U8x3_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8x3_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; +}; + +struct ParametersStruct +{ + + U8x3_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0xf5cdaf40, 0x1d38c18b, 0x85082025, 0x4cefb88a, }; + +} // namespace BufferU8x3_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x3_0p0 : public NvParameterized::NvParameters, public BufferU8x3_0p0NS::ParametersStruct +{ +public: + BufferU8x3_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x3_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x3"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x3_0p0NS::checksum); + return BufferU8x3_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x3_0p0NS::ParametersStruct& parameters(void) const + { + BufferU8x3_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x3_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x3_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x3_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x3_0p0), BufferU8x3_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x3_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x3_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x3_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x3_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x3_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x3_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x3_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x3_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x3_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x3_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x3_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x4_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x4_0p0.h old mode 100644 new mode 100755 index 00d24c7..98bbe6a --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x4_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/BufferU8x4_0p0.h @@ -1,246 +1,246 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_BufferU8x4_0p0_h -#define HEADER_BufferU8x4_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace BufferU8x4_0p0NS -{ - -struct U8x4_Type; - -struct U8x4_DynamicArray1D_Type -{ - U8x4_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct U8x4_Type -{ - uint8_t x; - uint8_t y; - uint8_t z; - uint8_t w; -}; - -struct ParametersStruct -{ - - U8x4_DynamicArray1D_Type data; - -}; - -static const uint32_t checksum[] = { 0x8364dd0f, 0xbc7542d0, 0x1a22d2d2, 0x01fc1923, }; - -} // namespace BufferU8x4_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class BufferU8x4_0p0 : public NvParameterized::NvParameters, public BufferU8x4_0p0NS::ParametersStruct -{ -public: - BufferU8x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~BufferU8x4_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("BufferU8x4"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(BufferU8x4_0p0NS::checksum); - return BufferU8x4_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const BufferU8x4_0p0NS::ParametersStruct& parameters(void) const - { - BufferU8x4_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - BufferU8x4_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class BufferU8x4_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - BufferU8x4_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(BufferU8x4_0p0), BufferU8x4_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, BufferU8x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(BufferU8x4_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x4_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, BufferU8x4_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, BufferU8x4_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of BufferU8x4_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (BufferU8x4_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (BufferU8x4_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (BufferU8x4_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (BufferU8x4_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (BufferU8x4_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_BufferU8x4_0p0_h +#define HEADER_BufferU8x4_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace BufferU8x4_0p0NS +{ + +struct U8x4_Type; + +struct U8x4_DynamicArray1D_Type +{ + U8x4_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct U8x4_Type +{ + uint8_t x; + uint8_t y; + uint8_t z; + uint8_t w; +}; + +struct ParametersStruct +{ + + U8x4_DynamicArray1D_Type data; + +}; + +static const uint32_t checksum[] = { 0x8364dd0f, 0xbc7542d0, 0x1a22d2d2, 0x01fc1923, }; + +} // namespace BufferU8x4_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class BufferU8x4_0p0 : public NvParameterized::NvParameters, public BufferU8x4_0p0NS::ParametersStruct +{ +public: + BufferU8x4_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~BufferU8x4_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("BufferU8x4"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(BufferU8x4_0p0NS::checksum); + return BufferU8x4_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const BufferU8x4_0p0NS::ParametersStruct& parameters(void) const + { + BufferU8x4_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + BufferU8x4_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class BufferU8x4_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + BufferU8x4_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(BufferU8x4_0p0), BufferU8x4_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, BufferU8x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(BufferU8x4_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, BufferU8x4_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, BufferU8x4_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, BufferU8x4_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class BufferU8x4_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of BufferU8x4_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (BufferU8x4_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (BufferU8x4_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (BufferU8x4_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (BufferU8x4_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (BufferU8x4_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/ModuleFrameworkLegacyRegistration.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/ModuleFrameworkLegacyRegistration.h old mode 100644 new mode 100755 index 365053c..4ab6d68 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/ModuleFrameworkLegacyRegistration.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/ModuleFrameworkLegacyRegistration.h @@ -1,192 +1,192 @@ -/* - * Copyright (c) 2008-2015, 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. - */ - -#ifndef MODULE_MODULEFRAMEWORKLEGACYREGISTRATIONH_H -#define MODULE_MODULEFRAMEWORKLEGACYREGISTRATIONH_H - -#include "PsAllocator.h" -#include "NvRegistrationsForTraitsBase.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "PxAssert.h" -#include - -// INCLUDE GENERATED FACTORIES -#include "BufferF32x4_0p0.h" -#include "SubmeshParameters_0p0.h" -#include "VertexBufferParameters_0p0.h" -#include "VertexFormatParameters_0p0.h" -#include "VertexBufferParameters_0p1.h" -#include "SurfaceBufferParameters_0p1.h" -#include "SubmeshParameters_0p1.h" -#include "RenderMeshAssetParameters_0p0.h" -#include "BufferU8x1_0p0.h" -#include "BufferU8x2_0p0.h" -#include "BufferU8x3_0p0.h" -#include "BufferU8x4_0p0.h" -#include "BufferU16x1_0p0.h" -#include "BufferU16x2_0p0.h" -#include "BufferU16x3_0p0.h" -#include "BufferU16x4_0p0.h" -#include "BufferU32x1_0p0.h" -#include "BufferU32x2_0p0.h" -#include "BufferU32x3_0p0.h" -#include "BufferU32x4_0p0.h" -#include "BufferF32x1_0p0.h" -#include "BufferF32x2_0p0.h" -#include "BufferF32x3_0p0.h" -#include "BufferF32x4_0p1.h" - - -// INCLUDE GENERATED CONVERSION -#include "ConversionBufferF32x4_0p0_0p1.h" -#include "ConversionSubmeshParameters_0p0_0p1.h" -#include "ConversionVertexBufferParameters_0p0_0p1.h" - - -// global namespace - -class ModuleFrameworkLegacyRegistration : public NvParameterized::RegistrationsForTraitsBase -{ -public: - static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleFrameworkLegacyRegistration().registerAll(*parameterizedTraits); - } - } - - static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) - { - if (parameterizedTraits) - { - ModuleFrameworkLegacyRegistration().unregisterAll(*parameterizedTraits); - } - } - - void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - ::NvParameterized::Factory* factoriesToRegister[] = { -// REGISTER GENERATED FACTORIES - new nvidia::parameterized::BufferF32x4_0p0Factory(), - new nvidia::parameterized::SubmeshParameters_0p0Factory(), - new nvidia::parameterized::VertexBufferParameters_0p0Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) - { - parameterizedTraits.registerFactory(*factoriesToRegister[i]); - } - } - - virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// REGISTER GENERATED CONVERSION - { - typedef nvidia::apex::legacy::ConversionBufferF32x4_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionSubmeshParameters_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - { - typedef nvidia::apex::legacy::ConversionVertexBufferParameters_0p0_0p1 ConverterToRegister; - parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), - ConverterToRegister::TOldClass::ClassVersion, - ConverterToRegister::TNewClass::ClassVersion, - *(ConverterToRegister::Create(¶meterizedTraits))); - } - - } - - void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) - { - struct FactoryDesc - { - const char* name; - uint32_t version; - }; - - ::NvParameterized::Factory* factoriesToUnregister[] = { -// UNREGISTER GENERATED FACTORIES - new nvidia::parameterized::BufferF32x4_0p0Factory(), - new nvidia::parameterized::SubmeshParameters_0p0Factory(), - new nvidia::parameterized::VertexBufferParameters_0p0Factory(), - - }; - - for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) - { - ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); - if (!removedFactory) - { - PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); - } - else - { - removedFactory->freeParameterDefinitionTable(¶meterizedTraits); - delete removedFactory; - delete factoriesToUnregister[i]; - } - } - } - - virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) - { -// UNREGISTER GENERATED CONVERSION - { - typedef nvidia::apex::legacy::ConversionBufferF32x4_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionSubmeshParameters_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - { - typedef nvidia::apex::legacy::ConversionVertexBufferParameters_0p0_0p1 ConverterToUnregister; - ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), - ConverterToUnregister::TOldClass::ClassVersion, - ConverterToUnregister::TNewClass::ClassVersion); - if (removedConv) { - removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE - } else { - // assert("Conversion was not found"); - } - } - - } - -}; - -// global namespace - -#endif +/* + * Copyright (c) 2008-2015, 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. + */ + +#ifndef MODULE_MODULEFRAMEWORKLEGACYREGISTRATIONH_H +#define MODULE_MODULEFRAMEWORKLEGACYREGISTRATIONH_H + +#include "PsAllocator.h" +#include "NvRegistrationsForTraitsBase.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "PxAssert.h" +#include + +// INCLUDE GENERATED FACTORIES +#include "BufferF32x4_0p0.h" +#include "SubmeshParameters_0p0.h" +#include "VertexBufferParameters_0p0.h" +#include "VertexFormatParameters_0p0.h" +#include "VertexBufferParameters_0p1.h" +#include "SurfaceBufferParameters_0p1.h" +#include "SubmeshParameters_0p1.h" +#include "RenderMeshAssetParameters_0p0.h" +#include "BufferU8x1_0p0.h" +#include "BufferU8x2_0p0.h" +#include "BufferU8x3_0p0.h" +#include "BufferU8x4_0p0.h" +#include "BufferU16x1_0p0.h" +#include "BufferU16x2_0p0.h" +#include "BufferU16x3_0p0.h" +#include "BufferU16x4_0p0.h" +#include "BufferU32x1_0p0.h" +#include "BufferU32x2_0p0.h" +#include "BufferU32x3_0p0.h" +#include "BufferU32x4_0p0.h" +#include "BufferF32x1_0p0.h" +#include "BufferF32x2_0p0.h" +#include "BufferF32x3_0p0.h" +#include "BufferF32x4_0p1.h" + + +// INCLUDE GENERATED CONVERSION +#include "ConversionBufferF32x4_0p0_0p1.h" +#include "ConversionSubmeshParameters_0p0_0p1.h" +#include "ConversionVertexBufferParameters_0p0_0p1.h" + + +// global namespace + +class ModuleFrameworkLegacyRegistration : public NvParameterized::RegistrationsForTraitsBase +{ +public: + static void invokeRegistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleFrameworkLegacyRegistration().registerAll(*parameterizedTraits); + } + } + + static void invokeUnregistration(NvParameterized::Traits* parameterizedTraits) + { + if (parameterizedTraits) + { + ModuleFrameworkLegacyRegistration().unregisterAll(*parameterizedTraits); + } + } + + void registerAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + ::NvParameterized::Factory* factoriesToRegister[] = { +// REGISTER GENERATED FACTORIES + new nvidia::parameterized::BufferF32x4_0p0Factory(), + new nvidia::parameterized::SubmeshParameters_0p0Factory(), + new nvidia::parameterized::VertexBufferParameters_0p0Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToRegister)/sizeof(factoriesToRegister[0]); ++i) + { + parameterizedTraits.registerFactory(*factoriesToRegister[i]); + } + } + + virtual void registerAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// REGISTER GENERATED CONVERSION + { + typedef nvidia::apex::legacy::ConversionBufferF32x4_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionSubmeshParameters_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + { + typedef nvidia::apex::legacy::ConversionVertexBufferParameters_0p0_0p1 ConverterToRegister; + parameterizedTraits.registerConversion(ConverterToRegister::TOldClass::staticClassName(), + ConverterToRegister::TOldClass::ClassVersion, + ConverterToRegister::TNewClass::ClassVersion, + *(ConverterToRegister::Create(¶meterizedTraits))); + } + + } + + void unregisterAvailableFactories(NvParameterized::Traits& parameterizedTraits) + { + struct FactoryDesc + { + const char* name; + uint32_t version; + }; + + ::NvParameterized::Factory* factoriesToUnregister[] = { +// UNREGISTER GENERATED FACTORIES + new nvidia::parameterized::BufferF32x4_0p0Factory(), + new nvidia::parameterized::SubmeshParameters_0p0Factory(), + new nvidia::parameterized::VertexBufferParameters_0p0Factory(), + + }; + + for (size_t i = 0; i < sizeof(factoriesToUnregister)/sizeof(factoriesToUnregister[0]); ++i) + { + ::NvParameterized::Factory* removedFactory = parameterizedTraits.removeFactory(factoriesToUnregister[i]->getClassName(), factoriesToUnregister[i]->getVersion()); + if (!removedFactory) + { + PX_ASSERT_WITH_MESSAGE(0, "Factory can not be removed!"); + } + else + { + removedFactory->freeParameterDefinitionTable(¶meterizedTraits); + delete removedFactory; + delete factoriesToUnregister[i]; + } + } + } + + virtual void unregisterAvailableConverters(NvParameterized::Traits& parameterizedTraits) + { +// UNREGISTER GENERATED CONVERSION + { + typedef nvidia::apex::legacy::ConversionBufferF32x4_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionSubmeshParameters_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + { + typedef nvidia::apex::legacy::ConversionVertexBufferParameters_0p0_0p1 ConverterToUnregister; + ::NvParameterized::Conversion* removedConv = parameterizedTraits.removeConversion(ConverterToUnregister::TOldClass::staticClassName(), + ConverterToUnregister::TOldClass::ClassVersion, + ConverterToUnregister::TNewClass::ClassVersion); + if (removedConv) { + removedConv->~Conversion(); parameterizedTraits.free(removedConv); // PLACEMENT DELETE + } else { + // assert("Conversion was not found"); + } + } + + } + +}; + +// global namespace + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/RenderMeshAssetParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/RenderMeshAssetParameters_0p0.h old mode 100644 new mode 100755 index 78fb237..e43da08 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/RenderMeshAssetParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/RenderMeshAssetParameters_0p0.h @@ -1,260 +1,260 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_RenderMeshAssetParameters_0p0_h -#define HEADER_RenderMeshAssetParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace RenderMeshAssetParameters_0p0NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct STRING_DynamicArray1D_Type -{ - NvParameterized::DummyStringStruct* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BOUNDS3_DynamicArray1D_Type -{ - physx::PxBounds3* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - REF_DynamicArray1D_Type submeshes; - STRING_DynamicArray1D_Type materialNames; - BOUNDS3_DynamicArray1D_Type partBounds; - uint32_t textureUVOrigin; - uint32_t boneCount; - bool deleteStaticBuffersAfterUse; - bool isReferenced; - -}; - -static const uint32_t checksum[] = { 0x119d6f62, 0x8d1ff03d, 0x19864d20, 0x93421fd0, }; - -} // namespace RenderMeshAssetParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class RenderMeshAssetParameters_0p0 : public NvParameterized::NvParameters, public RenderMeshAssetParameters_0p0NS::ParametersStruct -{ -public: - RenderMeshAssetParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~RenderMeshAssetParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("RenderMeshAssetParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(RenderMeshAssetParameters_0p0NS::checksum); - return RenderMeshAssetParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const RenderMeshAssetParameters_0p0NS::ParametersStruct& parameters(void) const - { - RenderMeshAssetParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - RenderMeshAssetParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class RenderMeshAssetParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - RenderMeshAssetParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(RenderMeshAssetParameters_0p0), RenderMeshAssetParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, RenderMeshAssetParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(RenderMeshAssetParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, RenderMeshAssetParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, RenderMeshAssetParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, RenderMeshAssetParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of RenderMeshAssetParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (RenderMeshAssetParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (RenderMeshAssetParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (RenderMeshAssetParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (RenderMeshAssetParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (RenderMeshAssetParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_RenderMeshAssetParameters_0p0_h +#define HEADER_RenderMeshAssetParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace RenderMeshAssetParameters_0p0NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct STRING_DynamicArray1D_Type +{ + NvParameterized::DummyStringStruct* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BOUNDS3_DynamicArray1D_Type +{ + physx::PxBounds3* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + REF_DynamicArray1D_Type submeshes; + STRING_DynamicArray1D_Type materialNames; + BOUNDS3_DynamicArray1D_Type partBounds; + uint32_t textureUVOrigin; + uint32_t boneCount; + bool deleteStaticBuffersAfterUse; + bool isReferenced; + +}; + +static const uint32_t checksum[] = { 0x119d6f62, 0x8d1ff03d, 0x19864d20, 0x93421fd0, }; + +} // namespace RenderMeshAssetParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class RenderMeshAssetParameters_0p0 : public NvParameterized::NvParameters, public RenderMeshAssetParameters_0p0NS::ParametersStruct +{ +public: + RenderMeshAssetParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~RenderMeshAssetParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("RenderMeshAssetParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(RenderMeshAssetParameters_0p0NS::checksum); + return RenderMeshAssetParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const RenderMeshAssetParameters_0p0NS::ParametersStruct& parameters(void) const + { + RenderMeshAssetParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + RenderMeshAssetParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class RenderMeshAssetParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + RenderMeshAssetParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(RenderMeshAssetParameters_0p0), RenderMeshAssetParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, RenderMeshAssetParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(RenderMeshAssetParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, RenderMeshAssetParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, RenderMeshAssetParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, RenderMeshAssetParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class RenderMeshAssetParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of RenderMeshAssetParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (RenderMeshAssetParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (RenderMeshAssetParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (RenderMeshAssetParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (RenderMeshAssetParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (RenderMeshAssetParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p0.h old mode 100644 new mode 100755 index b1d2a25..47d5794 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p0.h @@ -1,241 +1,241 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SubmeshParameters_0p0_h -#define HEADER_SubmeshParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SubmeshParameters_0p0NS -{ - - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - NvParameterized::Interface* vertexBuffer; - U32_DynamicArray1D_Type indexBuffer; - U32_DynamicArray1D_Type vertexPartition; - U32_DynamicArray1D_Type indexPartition; - -}; - -static const uint32_t checksum[] = { 0x67cd8f04, 0xc7809f1f, 0xd4c743b2, 0xea3b5308, }; - -} // namespace SubmeshParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SubmeshParameters_0p0 : public NvParameterized::NvParameters, public SubmeshParameters_0p0NS::ParametersStruct -{ -public: - SubmeshParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SubmeshParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SubmeshParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SubmeshParameters_0p0NS::checksum); - return SubmeshParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SubmeshParameters_0p0NS::ParametersStruct& parameters(void) const - { - SubmeshParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SubmeshParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SubmeshParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SubmeshParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SubmeshParameters_0p0), SubmeshParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SubmeshParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SubmeshParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SubmeshParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SubmeshParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SubmeshParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SubmeshParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SubmeshParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (SubmeshParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SubmeshParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SubmeshParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SubmeshParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SubmeshParameters_0p0_h +#define HEADER_SubmeshParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SubmeshParameters_0p0NS +{ + + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + NvParameterized::Interface* vertexBuffer; + U32_DynamicArray1D_Type indexBuffer; + U32_DynamicArray1D_Type vertexPartition; + U32_DynamicArray1D_Type indexPartition; + +}; + +static const uint32_t checksum[] = { 0x67cd8f04, 0xc7809f1f, 0xd4c743b2, 0xea3b5308, }; + +} // namespace SubmeshParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SubmeshParameters_0p0 : public NvParameterized::NvParameters, public SubmeshParameters_0p0NS::ParametersStruct +{ +public: + SubmeshParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SubmeshParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SubmeshParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SubmeshParameters_0p0NS::checksum); + return SubmeshParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SubmeshParameters_0p0NS::ParametersStruct& parameters(void) const + { + SubmeshParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SubmeshParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SubmeshParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SubmeshParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SubmeshParameters_0p0), SubmeshParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SubmeshParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SubmeshParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SubmeshParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SubmeshParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SubmeshParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SubmeshParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SubmeshParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (SubmeshParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SubmeshParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SubmeshParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SubmeshParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p1.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p1.h old mode 100644 new mode 100755 index fdbab08..32bd446 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SubmeshParameters_0p1.h @@ -1,242 +1,242 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SubmeshParameters_0p1_h -#define HEADER_SubmeshParameters_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SubmeshParameters_0p1NS -{ - - -struct U32_DynamicArray1D_Type -{ - uint32_t* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - NvParameterized::Interface* vertexBuffer; - U32_DynamicArray1D_Type indexBuffer; - U32_DynamicArray1D_Type vertexPartition; - U32_DynamicArray1D_Type indexPartition; - U32_DynamicArray1D_Type smoothingGroups; - -}; - -static const uint32_t checksum[] = { 0xb2b4f308, 0x5f4b8da6, 0x4d45daeb, 0xbfc7d9b0, }; - -} // namespace SubmeshParameters_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SubmeshParameters_0p1 : public NvParameterized::NvParameters, public SubmeshParameters_0p1NS::ParametersStruct -{ -public: - SubmeshParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SubmeshParameters_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SubmeshParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SubmeshParameters_0p1NS::checksum); - return SubmeshParameters_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SubmeshParameters_0p1NS::ParametersStruct& parameters(void) const - { - SubmeshParameters_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SubmeshParameters_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SubmeshParameters_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SubmeshParameters_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SubmeshParameters_0p1), SubmeshParameters_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SubmeshParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SubmeshParameters_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SubmeshParameters_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SubmeshParameters_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SubmeshParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SubmeshParameters_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SubmeshParameters_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (SubmeshParameters_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SubmeshParameters_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SubmeshParameters_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SubmeshParameters_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SubmeshParameters_0p1_h +#define HEADER_SubmeshParameters_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SubmeshParameters_0p1NS +{ + + +struct U32_DynamicArray1D_Type +{ + uint32_t* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + NvParameterized::Interface* vertexBuffer; + U32_DynamicArray1D_Type indexBuffer; + U32_DynamicArray1D_Type vertexPartition; + U32_DynamicArray1D_Type indexPartition; + U32_DynamicArray1D_Type smoothingGroups; + +}; + +static const uint32_t checksum[] = { 0xb2b4f308, 0x5f4b8da6, 0x4d45daeb, 0xbfc7d9b0, }; + +} // namespace SubmeshParameters_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SubmeshParameters_0p1 : public NvParameterized::NvParameters, public SubmeshParameters_0p1NS::ParametersStruct +{ +public: + SubmeshParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SubmeshParameters_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SubmeshParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SubmeshParameters_0p1NS::checksum); + return SubmeshParameters_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SubmeshParameters_0p1NS::ParametersStruct& parameters(void) const + { + SubmeshParameters_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SubmeshParameters_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SubmeshParameters_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SubmeshParameters_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SubmeshParameters_0p1), SubmeshParameters_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SubmeshParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SubmeshParameters_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SubmeshParameters_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SubmeshParameters_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SubmeshParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SubmeshParameters_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SubmeshParameters_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SubmeshParameters_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (SubmeshParameters_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SubmeshParameters_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SubmeshParameters_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SubmeshParameters_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SurfaceBufferParameters_0p1.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SurfaceBufferParameters_0p1.h old mode 100644 new mode 100755 index a43d5db..40f97df --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SurfaceBufferParameters_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/SurfaceBufferParameters_0p1.h @@ -1,233 +1,233 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_SurfaceBufferParameters_0p1_h -#define HEADER_SurfaceBufferParameters_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace SurfaceBufferParameters_0p1NS -{ - - - -struct ParametersStruct -{ - - uint32_t width; - uint32_t height; - uint32_t surfaceFormat; - NvParameterized::Interface* buffer; - -}; - -static const uint32_t checksum[] = { 0x8c5efe70, 0x9563a3a7, 0x2a52ffa7, 0x43e1a4fb, }; - -} // namespace SurfaceBufferParameters_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class SurfaceBufferParameters_0p1 : public NvParameterized::NvParameters, public SurfaceBufferParameters_0p1NS::ParametersStruct -{ -public: - SurfaceBufferParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~SurfaceBufferParameters_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("SurfaceBufferParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(SurfaceBufferParameters_0p1NS::checksum); - return SurfaceBufferParameters_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const SurfaceBufferParameters_0p1NS::ParametersStruct& parameters(void) const - { - SurfaceBufferParameters_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - SurfaceBufferParameters_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class SurfaceBufferParameters_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - SurfaceBufferParameters_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(SurfaceBufferParameters_0p1), SurfaceBufferParameters_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, SurfaceBufferParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(SurfaceBufferParameters_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceBufferParameters_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, SurfaceBufferParameters_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, SurfaceBufferParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of SurfaceBufferParameters_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (SurfaceBufferParameters_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (SurfaceBufferParameters_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (SurfaceBufferParameters_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (SurfaceBufferParameters_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (SurfaceBufferParameters_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_SurfaceBufferParameters_0p1_h +#define HEADER_SurfaceBufferParameters_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace SurfaceBufferParameters_0p1NS +{ + + + +struct ParametersStruct +{ + + uint32_t width; + uint32_t height; + uint32_t surfaceFormat; + NvParameterized::Interface* buffer; + +}; + +static const uint32_t checksum[] = { 0x8c5efe70, 0x9563a3a7, 0x2a52ffa7, 0x43e1a4fb, }; + +} // namespace SurfaceBufferParameters_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class SurfaceBufferParameters_0p1 : public NvParameterized::NvParameters, public SurfaceBufferParameters_0p1NS::ParametersStruct +{ +public: + SurfaceBufferParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~SurfaceBufferParameters_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("SurfaceBufferParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(SurfaceBufferParameters_0p1NS::checksum); + return SurfaceBufferParameters_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const SurfaceBufferParameters_0p1NS::ParametersStruct& parameters(void) const + { + SurfaceBufferParameters_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + SurfaceBufferParameters_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class SurfaceBufferParameters_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + SurfaceBufferParameters_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(SurfaceBufferParameters_0p1), SurfaceBufferParameters_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, SurfaceBufferParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(SurfaceBufferParameters_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, SurfaceBufferParameters_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, SurfaceBufferParameters_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, SurfaceBufferParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class SurfaceBufferParameters_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of SurfaceBufferParameters_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (SurfaceBufferParameters_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (SurfaceBufferParameters_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (SurfaceBufferParameters_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (SurfaceBufferParameters_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (SurfaceBufferParameters_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p0.h old mode 100644 new mode 100755 index e53b0ba..e28759f --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p0.h @@ -1,240 +1,240 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_VertexBufferParameters_0p0_h -#define HEADER_VertexBufferParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace VertexBufferParameters_0p0NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - uint32_t vertexCount; - NvParameterized::Interface* vertexFormat; - REF_DynamicArray1D_Type buffers; - -}; - -static const uint32_t checksum[] = { 0x4ceee932, 0xa2baf8dc, 0x980290c7, 0xf043b552, }; - -} // namespace VertexBufferParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class VertexBufferParameters_0p0 : public NvParameterized::NvParameters, public VertexBufferParameters_0p0NS::ParametersStruct -{ -public: - VertexBufferParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~VertexBufferParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("VertexBufferParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(VertexBufferParameters_0p0NS::checksum); - return VertexBufferParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const VertexBufferParameters_0p0NS::ParametersStruct& parameters(void) const - { - VertexBufferParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - VertexBufferParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class VertexBufferParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - VertexBufferParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(VertexBufferParameters_0p0), VertexBufferParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, VertexBufferParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(VertexBufferParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, VertexBufferParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, VertexBufferParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, VertexBufferParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of VertexBufferParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (VertexBufferParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (VertexBufferParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (VertexBufferParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (VertexBufferParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (VertexBufferParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_VertexBufferParameters_0p0_h +#define HEADER_VertexBufferParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace VertexBufferParameters_0p0NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + uint32_t vertexCount; + NvParameterized::Interface* vertexFormat; + REF_DynamicArray1D_Type buffers; + +}; + +static const uint32_t checksum[] = { 0x4ceee932, 0xa2baf8dc, 0x980290c7, 0xf043b552, }; + +} // namespace VertexBufferParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class VertexBufferParameters_0p0 : public NvParameterized::NvParameters, public VertexBufferParameters_0p0NS::ParametersStruct +{ +public: + VertexBufferParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~VertexBufferParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("VertexBufferParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(VertexBufferParameters_0p0NS::checksum); + return VertexBufferParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const VertexBufferParameters_0p0NS::ParametersStruct& parameters(void) const + { + VertexBufferParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + VertexBufferParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class VertexBufferParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + VertexBufferParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(VertexBufferParameters_0p0), VertexBufferParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, VertexBufferParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(VertexBufferParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, VertexBufferParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, VertexBufferParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, VertexBufferParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of VertexBufferParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (VertexBufferParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (VertexBufferParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (VertexBufferParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (VertexBufferParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (VertexBufferParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p1.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p1.h old mode 100644 new mode 100755 index 9a6ed56..e0359d7 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p1.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexBufferParameters_0p1.h @@ -1,240 +1,240 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_VertexBufferParameters_0p1_h -#define HEADER_VertexBufferParameters_0p1_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace VertexBufferParameters_0p1NS -{ - - -struct REF_DynamicArray1D_Type -{ - NvParameterized::Interface** buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - - -struct ParametersStruct -{ - - uint32_t vertexCount; - NvParameterized::Interface* vertexFormat; - REF_DynamicArray1D_Type buffers; - -}; - -static const uint32_t checksum[] = { 0x14ae7314, 0xe50741cb, 0x15eb480c, 0x63f6c571, }; - -} // namespace VertexBufferParameters_0p1NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class VertexBufferParameters_0p1 : public NvParameterized::NvParameters, public VertexBufferParameters_0p1NS::ParametersStruct -{ -public: - VertexBufferParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~VertexBufferParameters_0p1(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("VertexBufferParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(VertexBufferParameters_0p1NS::checksum); - return VertexBufferParameters_0p1NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const VertexBufferParameters_0p1NS::ParametersStruct& parameters(void) const - { - VertexBufferParameters_0p1* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - VertexBufferParameters_0p1NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class VertexBufferParameters_0p1Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - VertexBufferParameters_0p1::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(VertexBufferParameters_0p1), VertexBufferParameters_0p1::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, VertexBufferParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p1"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(VertexBufferParameters_0p1)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, VertexBufferParameters_0p1)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, VertexBufferParameters_0p1::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, VertexBufferParameters_0p1::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p1"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of VertexBufferParameters_0p1 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (VertexBufferParameters_0p1*)bufObj; - } - - virtual const char* getClassName() - { - return (VertexBufferParameters_0p1::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (VertexBufferParameters_0p1::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (VertexBufferParameters_0p1::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (VertexBufferParameters_0p1::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_VertexBufferParameters_0p1_h +#define HEADER_VertexBufferParameters_0p1_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace VertexBufferParameters_0p1NS +{ + + +struct REF_DynamicArray1D_Type +{ + NvParameterized::Interface** buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + + +struct ParametersStruct +{ + + uint32_t vertexCount; + NvParameterized::Interface* vertexFormat; + REF_DynamicArray1D_Type buffers; + +}; + +static const uint32_t checksum[] = { 0x14ae7314, 0xe50741cb, 0x15eb480c, 0x63f6c571, }; + +} // namespace VertexBufferParameters_0p1NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class VertexBufferParameters_0p1 : public NvParameterized::NvParameters, public VertexBufferParameters_0p1NS::ParametersStruct +{ +public: + VertexBufferParameters_0p1(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~VertexBufferParameters_0p1(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("VertexBufferParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)1; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(VertexBufferParameters_0p1NS::checksum); + return VertexBufferParameters_0p1NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const VertexBufferParameters_0p1NS::ParametersStruct& parameters(void) const + { + VertexBufferParameters_0p1* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + VertexBufferParameters_0p1NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class VertexBufferParameters_0p1Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + VertexBufferParameters_0p1::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(VertexBufferParameters_0p1), VertexBufferParameters_0p1::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, VertexBufferParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p1"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(VertexBufferParameters_0p1)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, VertexBufferParameters_0p1)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, VertexBufferParameters_0p1::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, VertexBufferParameters_0p1::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexBufferParameters_0p1"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of VertexBufferParameters_0p1 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (VertexBufferParameters_0p1*)bufObj; + } + + virtual const char* getClassName() + { + return (VertexBufferParameters_0p1::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (VertexBufferParameters_0p1::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (VertexBufferParameters_0p1::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (VertexBufferParameters_0p1::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexFormatParameters_0p0.h b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexFormatParameters_0p0.h old mode 100644 new mode 100755 index 6e2058e..2523711 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexFormatParameters_0p0.h +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/include/autogen/VertexFormatParameters_0p0.h @@ -1,250 +1,250 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#ifndef HEADER_VertexFormatParameters_0p0_h -#define HEADER_VertexFormatParameters_0p0_h - -#include "NvParametersTypes.h" - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -#include "nvparameterized/NvParameterized.h" -#include "nvparameterized/NvParameterizedTraits.h" -#include "NvParameters.h" -#include "NvTraitsInternal.h" -#endif - -namespace nvidia -{ -namespace parameterized -{ - -#if PX_VC -#pragma warning(push) -#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) -#endif - -namespace VertexFormatParameters_0p0NS -{ - -struct BufferFormat_Type; - -struct BufferFormat_DynamicArray1D_Type -{ - BufferFormat_Type* buf; - bool isAllocated; - int32_t elementSize; - int32_t arraySizes[1]; -}; - -struct BufferFormat_Type -{ - NvParameterized::DummyStringStruct name; - int32_t semantic; - uint32_t id; - uint32_t format; - uint32_t access; - bool serialize; -}; - -struct ParametersStruct -{ - - uint32_t winding; - bool hasSeparateBoneBuffer; - BufferFormat_DynamicArray1D_Type bufferFormats; - -}; - -static const uint32_t checksum[] = { 0xa7c1ed95, 0x570ed2b1, 0x55717659, 0x9951d139, }; - -} // namespace VertexFormatParameters_0p0NS - -#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS -class VertexFormatParameters_0p0 : public NvParameterized::NvParameters, public VertexFormatParameters_0p0NS::ParametersStruct -{ -public: - VertexFormatParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); - - virtual ~VertexFormatParameters_0p0(); - - virtual void destroy(); - - static const char* staticClassName(void) - { - return("VertexFormatParameters"); - } - - const char* className(void) const - { - return(staticClassName()); - } - - static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; - - static uint32_t staticVersion(void) - { - return ClassVersion; - } - - uint32_t version(void) const - { - return(staticVersion()); - } - - static const uint32_t ClassAlignment = 8; - - static const uint32_t* staticChecksum(uint32_t& bits) - { - bits = 8 * sizeof(VertexFormatParameters_0p0NS::checksum); - return VertexFormatParameters_0p0NS::checksum; - } - - static void freeParameterDefinitionTable(NvParameterized::Traits* traits); - - const uint32_t* checksum(uint32_t& bits) const - { - return staticChecksum(bits); - } - - const VertexFormatParameters_0p0NS::ParametersStruct& parameters(void) const - { - VertexFormatParameters_0p0* tmpThis = const_cast(this); - return *(static_cast(tmpThis)); - } - - VertexFormatParameters_0p0NS::ParametersStruct& parameters(void) - { - return *(static_cast(this)); - } - - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; - virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); - - void initDefaults(void); - -protected: - - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); - virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; - - - virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; - -private: - - void buildTree(void); - void initDynamicArrays(void); - void initStrings(void); - void initReferences(void); - void freeDynamicArrays(void); - void freeStrings(void); - void freeReferences(void); - - static bool mBuiltFlag; - static NvParameterized::MutexType mBuiltFlagMutex; -}; - -class VertexFormatParameters_0p0Factory : public NvParameterized::Factory -{ - static const char* const vptr; - -public: - - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) - { - VertexFormatParameters_0p0::freeParameterDefinitionTable(traits); - } - - virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) - { - // placement new on this class using mParameterizedTraits - - void* newPtr = paramTraits->alloc(sizeof(VertexFormatParameters_0p0), VertexFormatParameters_0p0::ClassAlignment); - if (!NvParameterized::IsAligned(newPtr, VertexFormatParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters_0p0"); - paramTraits->free(newPtr); - return 0; - } - - memset(newPtr, 0, sizeof(VertexFormatParameters_0p0)); // always initialize memory allocated to zero for default values - return NV_PARAM_PLACEMENT_NEW(newPtr, VertexFormatParameters_0p0)(paramTraits); - } - - virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) - { - if (!NvParameterized::IsAligned(bufObj, VertexFormatParameters_0p0::ClassAlignment) - || !NvParameterized::IsAligned(bufStart, VertexFormatParameters_0p0::ClassAlignment)) - { - NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters_0p0"); - return 0; - } - - // Init NvParameters-part - // We used to call empty constructor of VertexFormatParameters_0p0 here - // but it may call default constructors of members and spoil the data - NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); - - // Init vtable (everything else is already initialized) - *(const char**)bufObj = vptr; - - return (VertexFormatParameters_0p0*)bufObj; - } - - virtual const char* getClassName() - { - return (VertexFormatParameters_0p0::staticClassName()); - } - - virtual uint32_t getVersion() - { - return (VertexFormatParameters_0p0::staticVersion()); - } - - virtual uint32_t getAlignment() - { - return (VertexFormatParameters_0p0::ClassAlignment); - } - - virtual const uint32_t* getChecksum(uint32_t& bits) - { - return (VertexFormatParameters_0p0::staticChecksum(bits)); - } -}; -#endif // NV_PARAMETERIZED_ONLY_LAYOUTS - -} // namespace parameterized -} // namespace nvidia - -#if PX_VC -#pragma warning(pop) -#endif - -#endif +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#ifndef HEADER_VertexFormatParameters_0p0_h +#define HEADER_VertexFormatParameters_0p0_h + +#include "NvParametersTypes.h" + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +#include "nvparameterized/NvParameterized.h" +#include "nvparameterized/NvParameterizedTraits.h" +#include "NvParameters.h" +#include "NvTraitsInternal.h" +#endif + +namespace nvidia +{ +namespace parameterized +{ + +#if PX_VC +#pragma warning(push) +#pragma warning(disable: 4324) // structure was padded due to __declspec(align()) +#endif + +namespace VertexFormatParameters_0p0NS +{ + +struct BufferFormat_Type; + +struct BufferFormat_DynamicArray1D_Type +{ + BufferFormat_Type* buf; + bool isAllocated; + int32_t elementSize; + int32_t arraySizes[1]; +}; + +struct BufferFormat_Type +{ + NvParameterized::DummyStringStruct name; + int32_t semantic; + uint32_t id; + uint32_t format; + uint32_t access; + bool serialize; +}; + +struct ParametersStruct +{ + + uint32_t winding; + bool hasSeparateBoneBuffer; + BufferFormat_DynamicArray1D_Type bufferFormats; + +}; + +static const uint32_t checksum[] = { 0xa7c1ed95, 0x570ed2b1, 0x55717659, 0x9951d139, }; + +} // namespace VertexFormatParameters_0p0NS + +#ifndef NV_PARAMETERIZED_ONLY_LAYOUTS +class VertexFormatParameters_0p0 : public NvParameterized::NvParameters, public VertexFormatParameters_0p0NS::ParametersStruct +{ +public: + VertexFormatParameters_0p0(NvParameterized::Traits* traits, void* buf = 0, int32_t* refCount = 0); + + virtual ~VertexFormatParameters_0p0(); + + virtual void destroy(); + + static const char* staticClassName(void) + { + return("VertexFormatParameters"); + } + + const char* className(void) const + { + return(staticClassName()); + } + + static const uint32_t ClassVersion = ((uint32_t)0 << 16) + (uint32_t)0; + + static uint32_t staticVersion(void) + { + return ClassVersion; + } + + uint32_t version(void) const + { + return(staticVersion()); + } + + static const uint32_t ClassAlignment = 8; + + static const uint32_t* staticChecksum(uint32_t& bits) + { + bits = 8 * sizeof(VertexFormatParameters_0p0NS::checksum); + return VertexFormatParameters_0p0NS::checksum; + } + + static void freeParameterDefinitionTable(NvParameterized::Traits* traits); + + const uint32_t* checksum(uint32_t& bits) const + { + return staticChecksum(bits); + } + + const VertexFormatParameters_0p0NS::ParametersStruct& parameters(void) const + { + VertexFormatParameters_0p0* tmpThis = const_cast(this); + return *(static_cast(tmpThis)); + } + + VertexFormatParameters_0p0NS::ParametersStruct& parameters(void) + { + return *(static_cast(this)); + } + + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle) const; + virtual NvParameterized::ErrorType getParameterHandle(const char* long_name, NvParameterized::Handle& handle); + + void initDefaults(void); + +protected: + + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void); + virtual const NvParameterized::DefinitionImpl* getParameterDefinitionTree(void) const; + + + virtual void getVarPtr(const NvParameterized::Handle& handle, void*& ptr, size_t& offset) const; + +private: + + void buildTree(void); + void initDynamicArrays(void); + void initStrings(void); + void initReferences(void); + void freeDynamicArrays(void); + void freeStrings(void); + void freeReferences(void); + + static bool mBuiltFlag; + static NvParameterized::MutexType mBuiltFlagMutex; +}; + +class VertexFormatParameters_0p0Factory : public NvParameterized::Factory +{ + static const char* const vptr; + +public: + + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) + { + VertexFormatParameters_0p0::freeParameterDefinitionTable(traits); + } + + virtual NvParameterized::Interface* create(NvParameterized::Traits* paramTraits) + { + // placement new on this class using mParameterizedTraits + + void* newPtr = paramTraits->alloc(sizeof(VertexFormatParameters_0p0), VertexFormatParameters_0p0::ClassAlignment); + if (!NvParameterized::IsAligned(newPtr, VertexFormatParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters_0p0"); + paramTraits->free(newPtr); + return 0; + } + + memset(newPtr, 0, sizeof(VertexFormatParameters_0p0)); // always initialize memory allocated to zero for default values + return NV_PARAM_PLACEMENT_NEW(newPtr, VertexFormatParameters_0p0)(paramTraits); + } + + virtual NvParameterized::Interface* finish(NvParameterized::Traits* paramTraits, void* bufObj, void* bufStart, int32_t* refCount) + { + if (!NvParameterized::IsAligned(bufObj, VertexFormatParameters_0p0::ClassAlignment) + || !NvParameterized::IsAligned(bufStart, VertexFormatParameters_0p0::ClassAlignment)) + { + NV_PARAM_TRAITS_WARNING(paramTraits, "Unaligned memory allocation for class VertexFormatParameters_0p0"); + return 0; + } + + // Init NvParameters-part + // We used to call empty constructor of VertexFormatParameters_0p0 here + // but it may call default constructors of members and spoil the data + NV_PARAM_PLACEMENT_NEW(bufObj, NvParameterized::NvParameters)(paramTraits, bufStart, refCount); + + // Init vtable (everything else is already initialized) + *(const char**)bufObj = vptr; + + return (VertexFormatParameters_0p0*)bufObj; + } + + virtual const char* getClassName() + { + return (VertexFormatParameters_0p0::staticClassName()); + } + + virtual uint32_t getVersion() + { + return (VertexFormatParameters_0p0::staticVersion()); + } + + virtual uint32_t getAlignment() + { + return (VertexFormatParameters_0p0::ClassAlignment); + } + + virtual const uint32_t* getChecksum(uint32_t& bits) + { + return (VertexFormatParameters_0p0::staticChecksum(bits)); + } +}; +#endif // NV_PARAMETERIZED_ONLY_LAYOUTS + +} // namespace parameterized +} // namespace nvidia + +#if PX_VC +#pragma warning(pop) +#endif + +#endif diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x1_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x1_0p0.cpp old mode 100644 new mode 100755 index d8f019e..eabe072 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x1_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x1_0p0.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x1_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferF32x1_0p0NS; - -const char* const BufferF32x1_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // data[] -}; - - -bool BufferF32x1_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x1_0p0::mBuiltFlagMutex; - -BufferF32x1_0p0::BufferF32x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x1_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x1_0p0::~BufferF32x1_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x1_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x1_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x1_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x1_0p0::getParameterDefinitionTree(void) const -{ - BufferF32x1_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x1_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferF32x1_0p0::initStrings(void) -{ -} - -void BufferF32x1_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(float); - data.arraySizes[0] = 0; -} - -void BufferF32x1_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x1_0p0::initReferences(void) -{ -} - -void BufferF32x1_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x1_0p0::freeStrings(void) -{ -} - -void BufferF32x1_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x1_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferF32x1_0p0NS; + +const char* const BufferF32x1_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_F32, false, 1 * sizeof(float), NULL, 0 }, // data[] +}; + + +bool BufferF32x1_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x1_0p0::mBuiltFlagMutex; + +BufferF32x1_0p0::BufferF32x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x1_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x1_0p0::~BufferF32x1_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x1_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x1_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x1_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x1_0p0::getParameterDefinitionTree(void) const +{ + BufferF32x1_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x1_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferF32x1_0p0::initStrings(void) +{ +} + +void BufferF32x1_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(float); + data.arraySizes[0] = 0; +} + +void BufferF32x1_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x1_0p0::initReferences(void) +{ +} + +void BufferF32x1_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x1_0p0::freeStrings(void) +{ +} + +void BufferF32x1_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x2_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x2_0p0.cpp old mode 100644 new mode 100755 index 161792b..bff52aa --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x2_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x2_0p0.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x2_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferF32x2_0p0NS; - -const char* const BufferF32x2_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(F32x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferF32x2_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x2_0p0::mBuiltFlagMutex; - -BufferF32x2_0p0::BufferF32x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x2_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x2_0p0::~BufferF32x2_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x2_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x2_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x2_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x2_0p0::getParameterDefinitionTree(void) const -{ - BufferF32x2_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x2_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "F32x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferF32x2_0p0::initStrings(void) -{ -} - -void BufferF32x2_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(F32x2_Type); - data.arraySizes[0] = 0; -} - -void BufferF32x2_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x2_0p0::initReferences(void) -{ -} - -void BufferF32x2_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x2_0p0::freeStrings(void) -{ -} - -void BufferF32x2_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x2_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferF32x2_0p0NS; + +const char* const BufferF32x2_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(F32x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_F32, false, (size_t)(&((F32x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferF32x2_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x2_0p0::mBuiltFlagMutex; + +BufferF32x2_0p0::BufferF32x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x2_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x2_0p0::~BufferF32x2_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x2_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x2_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x2_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x2_0p0::getParameterDefinitionTree(void) const +{ + BufferF32x2_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x2_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "F32x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferF32x2_0p0::initStrings(void) +{ +} + +void BufferF32x2_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(F32x2_Type); + data.arraySizes[0] = 0; +} + +void BufferF32x2_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x2_0p0::initReferences(void) +{ +} + +void BufferF32x2_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x2_0p0::freeStrings(void) +{ +} + +void BufferF32x2_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x3_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x3_0p0.cpp old mode 100644 new mode 100755 index f224093..d9296ca --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x3_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x3_0p0.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x3_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferF32x3_0p0NS; - -const char* const BufferF32x3_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // data[] -}; - - -bool BufferF32x3_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x3_0p0::mBuiltFlagMutex; - -BufferF32x3_0p0::BufferF32x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x3_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x3_0p0::~BufferF32x3_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x3_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x3_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x3_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x3_0p0::getParameterDefinitionTree(void) const -{ - BufferF32x3_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x3_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_VEC3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferF32x3_0p0::initStrings(void) -{ -} - -void BufferF32x3_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(physx::PxVec3); - data.arraySizes[0] = 0; -} - -void BufferF32x3_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x3_0p0::initReferences(void) -{ -} - -void BufferF32x3_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x3_0p0::freeStrings(void) -{ -} - -void BufferF32x3_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x3_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferF32x3_0p0NS; + +const char* const BufferF32x3_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_VEC3, false, 1 * sizeof(physx::PxVec3), NULL, 0 }, // data[] +}; + + +bool BufferF32x3_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x3_0p0::mBuiltFlagMutex; + +BufferF32x3_0p0::BufferF32x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x3_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x3_0p0::~BufferF32x3_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x3_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x3_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x3_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x3_0p0::getParameterDefinitionTree(void) const +{ + BufferF32x3_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x3_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_VEC3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferF32x3_0p0::initStrings(void) +{ +} + +void BufferF32x3_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(physx::PxVec3); + data.arraySizes[0] = 0; +} + +void BufferF32x3_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x3_0p0::initReferences(void) +{ +} + +void BufferF32x3_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x3_0p0::freeStrings(void) +{ +} + +void BufferF32x3_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p0.cpp old mode 100644 new mode 100755 index 3d6007c..211e1ee --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p0.cpp @@ -1,409 +1,409 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x4_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferF32x4_0p0NS; - -const char* const BufferF32x4_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(F32x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferF32x4_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x4_0p0::mBuiltFlagMutex; - -BufferF32x4_0p0::BufferF32x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x4_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x4_0p0::~BufferF32x4_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x4_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x4_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x4_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x4_0p0::getParameterDefinitionTree(void) const -{ - BufferF32x4_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x4_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "F32x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_F32, NULL, true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_F32, NULL, true); - - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferF32x4_0p0::initStrings(void) -{ -} - -void BufferF32x4_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(F32x4_Type); - data.arraySizes[0] = 0; -} - -void BufferF32x4_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x4_0p0::initReferences(void) -{ -} - -void BufferF32x4_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x4_0p0::freeStrings(void) -{ -} - -void BufferF32x4_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x4_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferF32x4_0p0NS; + +const char* const BufferF32x4_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(F32x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferF32x4_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x4_0p0::mBuiltFlagMutex; + +BufferF32x4_0p0::BufferF32x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x4_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x4_0p0::~BufferF32x4_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x4_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x4_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x4_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x4_0p0::getParameterDefinitionTree(void) const +{ + BufferF32x4_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x4_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "F32x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_F32, NULL, true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_F32, NULL, true); + + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferF32x4_0p0::initStrings(void) +{ +} + +void BufferF32x4_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(F32x4_Type); + data.arraySizes[0] = 0; +} + +void BufferF32x4_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x4_0p0::initReferences(void) +{ +} + +void BufferF32x4_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x4_0p0::freeStrings(void) +{ +} + +void BufferF32x4_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p1.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p1.cpp old mode 100644 new mode 100755 index 98b6db5..1fbb4ee --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferF32x4_0p1.cpp @@ -1,453 +1,453 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferF32x4_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferF32x4_0p1NS; - -const char* const BufferF32x4_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(F32x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferF32x4_0p1::mBuiltFlag = false; -NvParameterized::MutexType BufferF32x4_0p1::mBuiltFlagMutex; - -BufferF32x4_0p1::BufferF32x4_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferF32x4_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferF32x4_0p1::~BufferF32x4_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferF32x4_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferF32x4_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferF32x4_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferF32x4_0p1::getParameterDefinitionTree(void) const -{ - BufferF32x4_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferF32x4_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferF32x4_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferF32x4_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferF32x4_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferF32x4_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - ParamDefTable[1].setAlignment(16); - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "F32x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - ParamDefTable[2].setAlignment(16); - ParamDefTable[2].setPadding(16); - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - ParamDefTable[3].setAlignment(16); - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_F32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferF32x4_0p1::initStrings(void) -{ -} - -void BufferF32x4_0p1::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(F32x4_Type); - data.arraySizes[0] = 0; -} - -void BufferF32x4_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferF32x4_0p1::initReferences(void) -{ -} - -void BufferF32x4_0p1::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferF32x4_0p1::freeStrings(void) -{ -} - -void BufferF32x4_0p1::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferF32x4_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferF32x4_0p1NS; + +const char* const BufferF32x4_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(F32x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_F32, false, (size_t)(&((F32x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferF32x4_0p1::mBuiltFlag = false; +NvParameterized::MutexType BufferF32x4_0p1::mBuiltFlagMutex; + +BufferF32x4_0p1::BufferF32x4_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferF32x4_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferF32x4_0p1::~BufferF32x4_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferF32x4_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferF32x4_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferF32x4_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferF32x4_0p1::getParameterDefinitionTree(void) const +{ + BufferF32x4_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferF32x4_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferF32x4_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferF32x4_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferF32x4_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferF32x4_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + ParamDefTable[1].setAlignment(16); + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "F32x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for FLOAT4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + ParamDefTable[2].setAlignment(16); + ParamDefTable[2].setPadding(16); + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + ParamDefTable[3].setAlignment(16); + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_F32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferF32x4_0p1::initStrings(void) +{ +} + +void BufferF32x4_0p1::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(F32x4_Type); + data.arraySizes[0] = 0; +} + +void BufferF32x4_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferF32x4_0p1::initReferences(void) +{ +} + +void BufferF32x4_0p1::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferF32x4_0p1::freeStrings(void) +{ +} + +void BufferF32x4_0p1::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x1_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x1_0p0.cpp old mode 100644 new mode 100755 index 898ab72..58d8563 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x1_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x1_0p0.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x1_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU16x1_0p0NS; - -const char* const BufferU16x1_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_U16, false, 1 * sizeof(uint16_t), NULL, 0 }, // data[] -}; - - -bool BufferU16x1_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x1_0p0::mBuiltFlagMutex; - -BufferU16x1_0p0::BufferU16x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x1_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x1_0p0::~BufferU16x1_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x1_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x1_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x1_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x1_0p0::getParameterDefinitionTree(void) const -{ - BufferU16x1_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x1_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x1_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferU16x1_0p0::initStrings(void) -{ -} - -void BufferU16x1_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(uint16_t); - data.arraySizes[0] = 0; -} - -void BufferU16x1_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x1_0p0::initReferences(void) -{ -} - -void BufferU16x1_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x1_0p0::freeStrings(void) -{ -} - -void BufferU16x1_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x1_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU16x1_0p0NS; + +const char* const BufferU16x1_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_U16, false, 1 * sizeof(uint16_t), NULL, 0 }, // data[] +}; + + +bool BufferU16x1_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x1_0p0::mBuiltFlagMutex; + +BufferU16x1_0p0::BufferU16x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x1_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x1_0p0::~BufferU16x1_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x1_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x1_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x1_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x1_0p0::getParameterDefinitionTree(void) const +{ + BufferU16x1_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x1_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x1_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferU16x1_0p0::initStrings(void) +{ +} + +void BufferU16x1_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(uint16_t); + data.arraySizes[0] = 0; +} + +void BufferU16x1_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x1_0p0::initReferences(void) +{ +} + +void BufferU16x1_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x1_0p0::freeStrings(void) +{ +} + +void BufferU16x1_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x2_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x2_0p0.cpp old mode 100644 new mode 100755 index 74d0f2f..2d8fcaa --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x2_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x2_0p0.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x2_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU16x2_0p0NS; - -const char* const BufferU16x2_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U16x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferU16x2_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x2_0p0::mBuiltFlagMutex; - -BufferU16x2_0p0::BufferU16x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x2_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x2_0p0::~BufferU16x2_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x2_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x2_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x2_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x2_0p0::getParameterDefinitionTree(void) const -{ - BufferU16x2_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x2_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x2_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U16x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferU16x2_0p0::initStrings(void) -{ -} - -void BufferU16x2_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U16x2_Type); - data.arraySizes[0] = 0; -} - -void BufferU16x2_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x2_0p0::initReferences(void) -{ -} - -void BufferU16x2_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x2_0p0::freeStrings(void) -{ -} - -void BufferU16x2_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x2_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU16x2_0p0NS; + +const char* const BufferU16x2_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U16x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U16, false, (size_t)(&((U16x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferU16x2_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x2_0p0::mBuiltFlagMutex; + +BufferU16x2_0p0::BufferU16x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x2_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x2_0p0::~BufferU16x2_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x2_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x2_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x2_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x2_0p0::getParameterDefinitionTree(void) const +{ + BufferU16x2_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x2_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x2_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U16x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferU16x2_0p0::initStrings(void) +{ +} + +void BufferU16x2_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U16x2_Type); + data.arraySizes[0] = 0; +} + +void BufferU16x2_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x2_0p0::initReferences(void) +{ +} + +void BufferU16x2_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x2_0p0::freeStrings(void) +{ +} + +void BufferU16x2_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x3_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x3_0p0.cpp old mode 100644 new mode 100755 index 126dfd5..f33dee4 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x3_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x3_0p0.cpp @@ -1,425 +1,425 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x3_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU16x3_0p0NS; - -const char* const BufferU16x3_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U16x3_Type), CHILDREN(2), 3 }, // data[] - { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->z), NULL, 0 }, // data[].z -}; - - -bool BufferU16x3_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x3_0p0::mBuiltFlagMutex; - -BufferU16x3_0p0::BufferU16x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x3_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x3_0p0::~BufferU16x3_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x3_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x3_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x3_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x3_0p0::getParameterDefinitionTree(void) const -{ - BufferU16x3_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x3_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x3_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U16x3", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - - ParamDefTable[2].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void BufferU16x3_0p0::initStrings(void) -{ -} - -void BufferU16x3_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U16x3_Type); - data.arraySizes[0] = 0; -} - -void BufferU16x3_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x3_0p0::initReferences(void) -{ -} - -void BufferU16x3_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x3_0p0::freeStrings(void) -{ -} - -void BufferU16x3_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x3_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU16x3_0p0NS; + +const char* const BufferU16x3_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U16x3_Type), CHILDREN(2), 3 }, // data[] + { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U16, false, (size_t)(&((U16x3_Type*)0)->z), NULL, 0 }, // data[].z +}; + + +bool BufferU16x3_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x3_0p0::mBuiltFlagMutex; + +BufferU16x3_0p0::BufferU16x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x3_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x3_0p0::~BufferU16x3_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x3_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x3_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x3_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x3_0p0::getParameterDefinitionTree(void) const +{ + BufferU16x3_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x3_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x3_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U16x3", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + + ParamDefTable[2].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void BufferU16x3_0p0::initStrings(void) +{ +} + +void BufferU16x3_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U16x3_Type); + data.arraySizes[0] = 0; +} + +void BufferU16x3_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x3_0p0::initReferences(void) +{ +} + +void BufferU16x3_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x3_0p0::freeStrings(void) +{ +} + +void BufferU16x3_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x4_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x4_0p0.cpp old mode 100644 new mode 100755 index 9d2703c..03ca333 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x4_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU16x4_0p0.cpp @@ -1,449 +1,449 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU16x4_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU16x4_0p0NS; - -const char* const BufferU16x4_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U16x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferU16x4_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU16x4_0p0::mBuiltFlagMutex; - -BufferU16x4_0p0::BufferU16x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU16x4_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU16x4_0p0::~BufferU16x4_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU16x4_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU16x4_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU16x4_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU16x4_0p0::getParameterDefinitionTree(void) const -{ - BufferU16x4_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU16x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU16x4_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU16x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU16x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU16x4_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U16x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_U16, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferU16x4_0p0::initStrings(void) -{ -} - -void BufferU16x4_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U16x4_Type); - data.arraySizes[0] = 0; -} - -void BufferU16x4_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU16x4_0p0::initReferences(void) -{ -} - -void BufferU16x4_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU16x4_0p0::freeStrings(void) -{ -} - -void BufferU16x4_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU16x4_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU16x4_0p0NS; + +const char* const BufferU16x4_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U16x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_U16, false, (size_t)(&((U16x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferU16x4_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU16x4_0p0::mBuiltFlagMutex; + +BufferU16x4_0p0::BufferU16x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU16x4_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU16x4_0p0::~BufferU16x4_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU16x4_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU16x4_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU16x4_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU16x4_0p0::getParameterDefinitionTree(void) const +{ + BufferU16x4_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU16x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU16x4_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU16x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU16x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU16x4_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U16x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for SHORT4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_U16, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferU16x4_0p0::initStrings(void) +{ +} + +void BufferU16x4_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U16x4_Type); + data.arraySizes[0] = 0; +} + +void BufferU16x4_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU16x4_0p0::initReferences(void) +{ +} + +void BufferU16x4_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU16x4_0p0::freeStrings(void) +{ +} + +void BufferU16x4_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x1_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x1_0p0.cpp old mode 100644 new mode 100755 index 6da7dca..c54d87b --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x1_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x1_0p0.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x1_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU32x1_0p0NS; - -const char* const BufferU32x1_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // data[] -}; - - -bool BufferU32x1_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x1_0p0::mBuiltFlagMutex; - -BufferU32x1_0p0::BufferU32x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x1_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x1_0p0::~BufferU32x1_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x1_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x1_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x1_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x1_0p0::getParameterDefinitionTree(void) const -{ - BufferU32x1_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x1_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferU32x1_0p0::initStrings(void) -{ -} - -void BufferU32x1_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(uint32_t); - data.arraySizes[0] = 0; -} - -void BufferU32x1_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x1_0p0::initReferences(void) -{ -} - -void BufferU32x1_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x1_0p0::freeStrings(void) -{ -} - -void BufferU32x1_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x1_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU32x1_0p0NS; + +const char* const BufferU32x1_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // data[] +}; + + +bool BufferU32x1_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x1_0p0::mBuiltFlagMutex; + +BufferU32x1_0p0::BufferU32x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x1_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x1_0p0::~BufferU32x1_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x1_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x1_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x1_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x1_0p0::getParameterDefinitionTree(void) const +{ + BufferU32x1_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x1_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x1_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferU32x1_0p0::initStrings(void) +{ +} + +void BufferU32x1_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(uint32_t); + data.arraySizes[0] = 0; +} + +void BufferU32x1_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x1_0p0::initReferences(void) +{ +} + +void BufferU32x1_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x1_0p0::freeStrings(void) +{ +} + +void BufferU32x1_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x2_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x2_0p0.cpp old mode 100644 new mode 100755 index fb507bd..3238384 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x2_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x2_0p0.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x2_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU32x2_0p0NS; - -const char* const BufferU32x2_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U32x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferU32x2_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x2_0p0::mBuiltFlagMutex; - -BufferU32x2_0p0::BufferU32x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x2_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x2_0p0::~BufferU32x2_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x2_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x2_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x2_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x2_0p0::getParameterDefinitionTree(void) const -{ - BufferU32x2_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x2_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U32x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferU32x2_0p0::initStrings(void) -{ -} - -void BufferU32x2_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U32x2_Type); - data.arraySizes[0] = 0; -} - -void BufferU32x2_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x2_0p0::initReferences(void) -{ -} - -void BufferU32x2_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x2_0p0::freeStrings(void) -{ -} - -void BufferU32x2_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x2_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU32x2_0p0NS; + +const char* const BufferU32x2_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U32x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U32, false, (size_t)(&((U32x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferU32x2_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x2_0p0::mBuiltFlagMutex; + +BufferU32x2_0p0::BufferU32x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x2_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x2_0p0::~BufferU32x2_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x2_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x2_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x2_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x2_0p0::getParameterDefinitionTree(void) const +{ + BufferU32x2_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x2_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x2_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U32x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferU32x2_0p0::initStrings(void) +{ +} + +void BufferU32x2_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U32x2_Type); + data.arraySizes[0] = 0; +} + +void BufferU32x2_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x2_0p0::initReferences(void) +{ +} + +void BufferU32x2_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x2_0p0::freeStrings(void) +{ +} + +void BufferU32x2_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x3_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x3_0p0.cpp old mode 100644 new mode 100755 index c6369da..1a54f82 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x3_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x3_0p0.cpp @@ -1,425 +1,425 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x3_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU32x3_0p0NS; - -const char* const BufferU32x3_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U32x3_Type), CHILDREN(2), 3 }, // data[] - { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->z), NULL, 0 }, // data[].z -}; - - -bool BufferU32x3_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x3_0p0::mBuiltFlagMutex; - -BufferU32x3_0p0::BufferU32x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x3_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x3_0p0::~BufferU32x3_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x3_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x3_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x3_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x3_0p0::getParameterDefinitionTree(void) const -{ - BufferU32x3_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x3_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U32x3", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - - ParamDefTable[2].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void BufferU32x3_0p0::initStrings(void) -{ -} - -void BufferU32x3_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U32x3_Type); - data.arraySizes[0] = 0; -} - -void BufferU32x3_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x3_0p0::initReferences(void) -{ -} - -void BufferU32x3_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x3_0p0::freeStrings(void) -{ -} - -void BufferU32x3_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x3_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU32x3_0p0NS; + +const char* const BufferU32x3_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U32x3_Type), CHILDREN(2), 3 }, // data[] + { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U32, false, (size_t)(&((U32x3_Type*)0)->z), NULL, 0 }, // data[].z +}; + + +bool BufferU32x3_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x3_0p0::mBuiltFlagMutex; + +BufferU32x3_0p0::BufferU32x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x3_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x3_0p0::~BufferU32x3_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x3_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x3_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x3_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x3_0p0::getParameterDefinitionTree(void) const +{ + BufferU32x3_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x3_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x3_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U32x3", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + + ParamDefTable[2].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void BufferU32x3_0p0::initStrings(void) +{ +} + +void BufferU32x3_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U32x3_Type); + data.arraySizes[0] = 0; +} + +void BufferU32x3_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x3_0p0::initReferences(void) +{ +} + +void BufferU32x3_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x3_0p0::freeStrings(void) +{ +} + +void BufferU32x3_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x4_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x4_0p0.cpp old mode 100644 new mode 100755 index a825fba..461415e --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x4_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU32x4_0p0.cpp @@ -1,449 +1,449 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU32x4_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU32x4_0p0NS; - -const char* const BufferU32x4_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U32x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferU32x4_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU32x4_0p0::mBuiltFlagMutex; - -BufferU32x4_0p0::BufferU32x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU32x4_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU32x4_0p0::~BufferU32x4_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU32x4_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU32x4_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU32x4_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU32x4_0p0::getParameterDefinitionTree(void) const -{ - BufferU32x4_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU32x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU32x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU32x4_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U32x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for INT4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferU32x4_0p0::initStrings(void) -{ -} - -void BufferU32x4_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U32x4_Type); - data.arraySizes[0] = 0; -} - -void BufferU32x4_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU32x4_0p0::initReferences(void) -{ -} - -void BufferU32x4_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU32x4_0p0::freeStrings(void) -{ -} - -void BufferU32x4_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU32x4_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU32x4_0p0NS; + +const char* const BufferU32x4_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U32x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_U32, false, (size_t)(&((U32x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferU32x4_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU32x4_0p0::mBuiltFlagMutex; + +BufferU32x4_0p0::BufferU32x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU32x4_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU32x4_0p0::~BufferU32x4_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU32x4_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU32x4_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU32x4_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU32x4_0p0::getParameterDefinitionTree(void) const +{ + BufferU32x4_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU32x4_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU32x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU32x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU32x4_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U32x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for INT4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferU32x4_0p0::initStrings(void) +{ +} + +void BufferU32x4_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U32x4_Type); + data.arraySizes[0] = 0; +} + +void BufferU32x4_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU32x4_0p0::initReferences(void) +{ +} + +void BufferU32x4_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU32x4_0p0::freeStrings(void) +{ +} + +void BufferU32x4_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x1_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x1_0p0.cpp old mode 100644 new mode 100755 index 5e55510..45b3139 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x1_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x1_0p0.cpp @@ -1,346 +1,346 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x1_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU8x1_0p0NS; - -const char* const BufferU8x1_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 3; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // data[] -}; - - -bool BufferU8x1_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x1_0p0::mBuiltFlagMutex; - -BufferU8x1_0p0::BufferU8x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x1_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x1_0p0::~BufferU8x1_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x1_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x1_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x1_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x1_0p0::getParameterDefinitionTree(void) const -{ - BufferU8x1_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x1_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x1_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void BufferU8x1_0p0::initStrings(void) -{ -} - -void BufferU8x1_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(uint8_t); - data.arraySizes[0] = 0; -} - -void BufferU8x1_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x1_0p0::initReferences(void) -{ -} - -void BufferU8x1_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x1_0p0::freeStrings(void) -{ -} - -void BufferU8x1_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x1_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU8x1_0p0NS; + +const char* const BufferU8x1_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 3; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_U8, false, 1 * sizeof(uint8_t), NULL, 0 }, // data[] +}; + + +bool BufferU8x1_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x1_0p0::mBuiltFlagMutex; + +BufferU8x1_0p0::BufferU8x1_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x1_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x1_0p0::~BufferU8x1_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x1_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x1_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x1_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x1_0p0::getParameterDefinitionTree(void) const +{ + BufferU8x1_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x1_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x1_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x1_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x1_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x1_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE1 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void BufferU8x1_0p0::initStrings(void) +{ +} + +void BufferU8x1_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(uint8_t); + data.arraySizes[0] = 0; +} + +void BufferU8x1_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x1_0p0::initReferences(void) +{ +} + +void BufferU8x1_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x1_0p0::freeStrings(void) +{ +} + +void BufferU8x1_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x2_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x2_0p0.cpp old mode 100644 new mode 100755 index 0215faf..60fdba5 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x2_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x2_0p0.cpp @@ -1,401 +1,401 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x2_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU8x2_0p0NS; - -const char* const BufferU8x2_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U8x2_Type), CHILDREN(2), 2 }, // data[] - { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->y), NULL, 0 }, // data[].y -}; - - -bool BufferU8x2_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x2_0p0::mBuiltFlagMutex; - -BufferU8x2_0p0::BufferU8x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x2_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x2_0p0::~BufferU8x2_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x2_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x2_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x2_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x2_0p0::getParameterDefinitionTree(void) const -{ - BufferU8x2_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x2_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x2_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U8x2", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[2]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - - ParamDefTable[2].setChildren(Children, 2); - } - - mBuiltFlag = true; - -} -void BufferU8x2_0p0::initStrings(void) -{ -} - -void BufferU8x2_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U8x2_Type); - data.arraySizes[0] = 0; -} - -void BufferU8x2_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x2_0p0::initReferences(void) -{ -} - -void BufferU8x2_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x2_0p0::freeStrings(void) -{ -} - -void BufferU8x2_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x2_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU8x2_0p0NS; + +const char* const BufferU8x2_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U8x2_Type), CHILDREN(2), 2 }, // data[] + { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U8, false, (size_t)(&((U8x2_Type*)0)->y), NULL, 0 }, // data[].y +}; + + +bool BufferU8x2_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x2_0p0::mBuiltFlagMutex; + +BufferU8x2_0p0::BufferU8x2_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x2_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x2_0p0::~BufferU8x2_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x2_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x2_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x2_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x2_0p0::getParameterDefinitionTree(void) const +{ + BufferU8x2_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x2_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x2_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x2_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x2_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x2_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U8x2", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE2 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[2]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + + ParamDefTable[2].setChildren(Children, 2); + } + + mBuiltFlag = true; + +} +void BufferU8x2_0p0::initStrings(void) +{ +} + +void BufferU8x2_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U8x2_Type); + data.arraySizes[0] = 0; +} + +void BufferU8x2_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x2_0p0::initReferences(void) +{ +} + +void BufferU8x2_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x2_0p0::freeStrings(void) +{ +} + +void BufferU8x2_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x3_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x3_0p0.cpp old mode 100644 new mode 100755 index 96f44c3..967d59e --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x3_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x3_0p0.cpp @@ -1,425 +1,425 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x3_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU8x3_0p0NS; - -const char* const BufferU8x3_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 6; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U8x3_Type), CHILDREN(2), 3 }, // data[] - { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->z), NULL, 0 }, // data[].z -}; - - -bool BufferU8x3_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x3_0p0::mBuiltFlagMutex; - -BufferU8x3_0p0::BufferU8x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x3_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x3_0p0::~BufferU8x3_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x3_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x3_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x3_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x3_0p0::getParameterDefinitionTree(void) const -{ - BufferU8x3_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x3_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x3_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U8x3", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - - ParamDefTable[2].setChildren(Children, 3); - } - - mBuiltFlag = true; - -} -void BufferU8x3_0p0::initStrings(void) -{ -} - -void BufferU8x3_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U8x3_Type); - data.arraySizes[0] = 0; -} - -void BufferU8x3_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x3_0p0::initReferences(void) -{ -} - -void BufferU8x3_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x3_0p0::freeStrings(void) -{ -} - -void BufferU8x3_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x3_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU8x3_0p0NS; + +const char* const BufferU8x3_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 6; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U8x3_Type), CHILDREN(2), 3 }, // data[] + { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U8, false, (size_t)(&((U8x3_Type*)0)->z), NULL, 0 }, // data[].z +}; + + +bool BufferU8x3_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x3_0p0::mBuiltFlagMutex; + +BufferU8x3_0p0::BufferU8x3_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x3_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x3_0p0::~BufferU8x3_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x3_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x3_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x3_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x3_0p0::getParameterDefinitionTree(void) const +{ + BufferU8x3_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x3_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x3_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x3_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x3_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x3_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U8x3", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE3 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + + ParamDefTable[2].setChildren(Children, 3); + } + + mBuiltFlag = true; + +} +void BufferU8x3_0p0::initStrings(void) +{ +} + +void BufferU8x3_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U8x3_Type); + data.arraySizes[0] = 0; +} + +void BufferU8x3_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x3_0p0::initReferences(void) +{ +} + +void BufferU8x3_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x3_0p0::freeStrings(void) +{ +} + +void BufferU8x3_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x4_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x4_0p0.cpp old mode 100644 new mode 100755 index 57bb39d..eefc973 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x4_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/BufferU8x4_0p0.cpp @@ -1,449 +1,449 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "BufferU8x4_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace BufferU8x4_0p0NS; - -const char* const BufferU8x4_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 7; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data - { TYPE_STRUCT, false, 1 * sizeof(U8x4_Type), CHILDREN(2), 4 }, // data[] - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->x), NULL, 0 }, // data[].x - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->y), NULL, 0 }, // data[].y - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->z), NULL, 0 }, // data[].z - { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->w), NULL, 0 }, // data[].w -}; - - -bool BufferU8x4_0p0::mBuiltFlag = false; -NvParameterized::MutexType BufferU8x4_0p0::mBuiltFlagMutex; - -BufferU8x4_0p0::BufferU8x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &BufferU8x4_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -BufferU8x4_0p0::~BufferU8x4_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void BufferU8x4_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~BufferU8x4_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* BufferU8x4_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* BufferU8x4_0p0::getParameterDefinitionTree(void) const -{ - BufferU8x4_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType BufferU8x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType BufferU8x4_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void BufferU8x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void BufferU8x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void BufferU8x4_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="data" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("data", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("data", TYPE_STRUCT, "U8x4", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("x", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "X", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("y", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Y", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("z", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Z", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("w", TYPE_U8, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "W", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(1); - - ParamDefTable[0].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=1, longName="data" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=2, longName="data[]" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(3); - Children[1] = PDEF_PTR(4); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(6); - - ParamDefTable[2].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void BufferU8x4_0p0::initStrings(void) -{ -} - -void BufferU8x4_0p0::initDynamicArrays(void) -{ - data.buf = NULL; - data.isAllocated = true; - data.elementSize = sizeof(U8x4_Type); - data.arraySizes[0] = 0; -} - -void BufferU8x4_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void BufferU8x4_0p0::initReferences(void) -{ -} - -void BufferU8x4_0p0::freeDynamicArrays(void) -{ - if (data.isAllocated && data.buf) - { - mParameterizedTraits->free(data.buf); - } -} - -void BufferU8x4_0p0::freeStrings(void) -{ -} - -void BufferU8x4_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "BufferU8x4_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace BufferU8x4_0p0NS; + +const char* const BufferU8x4_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 7; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 1 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->data), CHILDREN(1), 1 }, // data + { TYPE_STRUCT, false, 1 * sizeof(U8x4_Type), CHILDREN(2), 4 }, // data[] + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->x), NULL, 0 }, // data[].x + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->y), NULL, 0 }, // data[].y + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->z), NULL, 0 }, // data[].z + { TYPE_U8, false, (size_t)(&((U8x4_Type*)0)->w), NULL, 0 }, // data[].w +}; + + +bool BufferU8x4_0p0::mBuiltFlag = false; +NvParameterized::MutexType BufferU8x4_0p0::mBuiltFlagMutex; + +BufferU8x4_0p0::BufferU8x4_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &BufferU8x4_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +BufferU8x4_0p0::~BufferU8x4_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void BufferU8x4_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~BufferU8x4_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* BufferU8x4_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* BufferU8x4_0p0::getParameterDefinitionTree(void) const +{ + BufferU8x4_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType BufferU8x4_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType BufferU8x4_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void BufferU8x4_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void BufferU8x4_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void BufferU8x4_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="data" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("data", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="data[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("data", TYPE_STRUCT, "U8x4", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Container for BYTE4 formats", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="data[].x" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("x", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "X", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="data[].y" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("y", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Y", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="data[].z" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("z", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Z", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="data[].w" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("w", TYPE_U8, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "W", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(1); + + ParamDefTable[0].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=1, longName="data" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=2, longName="data[]" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(3); + Children[1] = PDEF_PTR(4); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(6); + + ParamDefTable[2].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void BufferU8x4_0p0::initStrings(void) +{ +} + +void BufferU8x4_0p0::initDynamicArrays(void) +{ + data.buf = NULL; + data.isAllocated = true; + data.elementSize = sizeof(U8x4_Type); + data.arraySizes[0] = 0; +} + +void BufferU8x4_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void BufferU8x4_0p0::initReferences(void) +{ +} + +void BufferU8x4_0p0::freeDynamicArrays(void) +{ + if (data.isAllocated && data.buf) + { + mParameterizedTraits->free(data.buf); + } +} + +void BufferU8x4_0p0::freeStrings(void) +{ +} + +void BufferU8x4_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/RenderMeshAssetParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/RenderMeshAssetParameters_0p0.cpp old mode 100644 new mode 100755 index 96d3efe..1f91b51 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/RenderMeshAssetParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/RenderMeshAssetParameters_0p0.cpp @@ -1,621 +1,621 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "RenderMeshAssetParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace RenderMeshAssetParameters_0p0NS; - -const char* const RenderMeshAssetParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 11; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 3, 5, 7, 8, 9, 10, 2, 4, 6, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshes), CHILDREN(7), 1 }, // submeshes - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // submeshes[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->materialNames), CHILDREN(8), 1 }, // materialNames - { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // materialNames[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->partBounds), CHILDREN(9), 1 }, // partBounds - { TYPE_BOUNDS3, false, 1 * sizeof(physx::PxBounds3), NULL, 0 }, // partBounds[] - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->textureUVOrigin), NULL, 0 }, // textureUVOrigin - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->boneCount), NULL, 0 }, // boneCount - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteStaticBuffersAfterUse), NULL, 0 }, // deleteStaticBuffersAfterUse - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isReferenced), NULL, 0 }, // isReferenced -}; - - -bool RenderMeshAssetParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType RenderMeshAssetParameters_0p0::mBuiltFlagMutex; - -RenderMeshAssetParameters_0p0::RenderMeshAssetParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &RenderMeshAssetParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -RenderMeshAssetParameters_0p0::~RenderMeshAssetParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void RenderMeshAssetParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~RenderMeshAssetParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* RenderMeshAssetParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* RenderMeshAssetParameters_0p0::getParameterDefinitionTree(void) const -{ - RenderMeshAssetParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType RenderMeshAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType RenderMeshAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void RenderMeshAssetParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - submeshes (not an array of structs) */ -/* [0] - materialNames (not an array of structs) */ - -void RenderMeshAssetParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void RenderMeshAssetParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshes" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("submeshes", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); - HintTable[2].init("shortDescription", "Array of submeshes", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SubmeshParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshes[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("submeshes", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); - HintTable[2].init("shortDescription", "Array of submeshes", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "SubmeshParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="materialNames" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("materialNames", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); - HintTable[1].init("shortDescription", "Array of material names", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="materialNames[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("materialNames", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); - HintTable[1].init("shortDescription", "Array of material names", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="partBounds" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("partBounds", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); - HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="partBounds[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("partBounds", TYPE_BOUNDS3, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); - HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="textureUVOrigin" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("textureUVOrigin", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The texture origin convention to use for this mesh. See TextureUVOrigin.", true); - HintTable[1].init("shortDescription", "Texture origin convention", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="boneCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("boneCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of mesh-skinning bones. For destructible assets, this is the same as the number of parts.", true); - HintTable[1].init("shortDescription", "The number of mesh-skinning bones", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="deleteStaticBuffersAfterUse" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("deleteStaticBuffersAfterUse", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); - HintTable[1].init("shortDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="isReferenced" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("isReferenced", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Is the render mesh asset referenced in other assets", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[7]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(3); - Children[2] = PDEF_PTR(5); - Children[3] = PDEF_PTR(7); - Children[4] = PDEF_PTR(8); - Children[5] = PDEF_PTR(9); - Children[6] = PDEF_PTR(10); - - ParamDefTable[0].setChildren(Children, 7); - } - - // SetChildren for: nodeIndex=1, longName="submeshes" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(2); - - ParamDefTable[1].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=3, longName="materialNames" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=5, longName="partBounds" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(6); - - ParamDefTable[5].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void RenderMeshAssetParameters_0p0::initStrings(void) -{ -} - -void RenderMeshAssetParameters_0p0::initDynamicArrays(void) -{ - submeshes.buf = NULL; - submeshes.isAllocated = true; - submeshes.elementSize = sizeof(NvParameterized::Interface*); - submeshes.arraySizes[0] = 0; - materialNames.buf = NULL; - materialNames.isAllocated = true; - materialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); - materialNames.arraySizes[0] = 0; - partBounds.buf = NULL; - partBounds.isAllocated = true; - partBounds.elementSize = sizeof(physx::PxBounds3); - partBounds.arraySizes[0] = 0; -} - -void RenderMeshAssetParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - textureUVOrigin = uint32_t(0); - boneCount = uint32_t(0); - deleteStaticBuffersAfterUse = bool(false); - isReferenced = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void RenderMeshAssetParameters_0p0::initReferences(void) -{ -} - -void RenderMeshAssetParameters_0p0::freeDynamicArrays(void) -{ - if (submeshes.isAllocated && submeshes.buf) - { - mParameterizedTraits->free(submeshes.buf); - } - if (materialNames.isAllocated && materialNames.buf) - { - mParameterizedTraits->free(materialNames.buf); - } - if (partBounds.isAllocated && partBounds.buf) - { - mParameterizedTraits->free(partBounds.buf); - } -} - -void RenderMeshAssetParameters_0p0::freeStrings(void) -{ - - for (int i = 0; i < materialNames.arraySizes[0]; ++i) - { - if (materialNames.buf[i].isAllocated && materialNames.buf[i].buf) - { - mParameterizedTraits->strfree((char*)materialNames.buf[i].buf); - } - } -} - -void RenderMeshAssetParameters_0p0::freeReferences(void) -{ - - for (int i = 0; i < submeshes.arraySizes[0]; ++i) - { - if (submeshes.buf[i]) - { - submeshes.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "RenderMeshAssetParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace RenderMeshAssetParameters_0p0NS; + +const char* const RenderMeshAssetParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 11; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 3, 5, 7, 8, 9, 10, 2, 4, 6, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 7 }, + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->submeshes), CHILDREN(7), 1 }, // submeshes + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // submeshes[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->materialNames), CHILDREN(8), 1 }, // materialNames + { TYPE_STRING, false, 1 * sizeof(NvParameterized::DummyStringStruct), NULL, 0 }, // materialNames[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->partBounds), CHILDREN(9), 1 }, // partBounds + { TYPE_BOUNDS3, false, 1 * sizeof(physx::PxBounds3), NULL, 0 }, // partBounds[] + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->textureUVOrigin), NULL, 0 }, // textureUVOrigin + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->boneCount), NULL, 0 }, // boneCount + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->deleteStaticBuffersAfterUse), NULL, 0 }, // deleteStaticBuffersAfterUse + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->isReferenced), NULL, 0 }, // isReferenced +}; + + +bool RenderMeshAssetParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType RenderMeshAssetParameters_0p0::mBuiltFlagMutex; + +RenderMeshAssetParameters_0p0::RenderMeshAssetParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &RenderMeshAssetParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +RenderMeshAssetParameters_0p0::~RenderMeshAssetParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void RenderMeshAssetParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~RenderMeshAssetParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* RenderMeshAssetParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* RenderMeshAssetParameters_0p0::getParameterDefinitionTree(void) const +{ + RenderMeshAssetParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType RenderMeshAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType RenderMeshAssetParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void RenderMeshAssetParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - submeshes (not an array of structs) */ +/* [0] - materialNames (not an array of structs) */ + +void RenderMeshAssetParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void RenderMeshAssetParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="submeshes" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("submeshes", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); + HintTable[2].init("shortDescription", "Array of submeshes", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SubmeshParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="submeshes[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("submeshes", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the array of submeshes which comprise the mesh. Triangles are grouped\ninto submeshes, which correspond to a unique material name. The distinction\nneed not be just material; this grouping may distinguish any render state which\nrequires a separate draw call.\n", true); + HintTable[2].init("shortDescription", "Array of submeshes", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "SubmeshParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="materialNames" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("materialNames", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); + HintTable[1].init("shortDescription", "Array of material names", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="materialNames[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("materialNames", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The material names which distinguish the submeshes (see submeshes).", true); + HintTable[1].init("shortDescription", "Array of material names", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="partBounds" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("partBounds", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); + HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="partBounds[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("partBounds", TYPE_BOUNDS3, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Array of axis-aligned bounding boxes for each part. The bounds for part i are in partBounds[i].", true); + HintTable[1].init("shortDescription", "The AABBs of each mesh part", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="textureUVOrigin" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("textureUVOrigin", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The texture origin convention to use for this mesh. See TextureUVOrigin.", true); + HintTable[1].init("shortDescription", "Texture origin convention", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="boneCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("boneCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of mesh-skinning bones. For destructible assets, this is the same as the number of parts.", true); + HintTable[1].init("shortDescription", "The number of mesh-skinning bones", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="deleteStaticBuffersAfterUse" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("deleteStaticBuffersAfterUse", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); + HintTable[1].init("shortDescription", "If set, static data buffers will be deleted after they are used in createRenderResources.", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="isReferenced" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("isReferenced", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Is the render mesh asset referenced in other assets", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[7]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(3); + Children[2] = PDEF_PTR(5); + Children[3] = PDEF_PTR(7); + Children[4] = PDEF_PTR(8); + Children[5] = PDEF_PTR(9); + Children[6] = PDEF_PTR(10); + + ParamDefTable[0].setChildren(Children, 7); + } + + // SetChildren for: nodeIndex=1, longName="submeshes" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(2); + + ParamDefTable[1].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=3, longName="materialNames" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=5, longName="partBounds" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(6); + + ParamDefTable[5].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void RenderMeshAssetParameters_0p0::initStrings(void) +{ +} + +void RenderMeshAssetParameters_0p0::initDynamicArrays(void) +{ + submeshes.buf = NULL; + submeshes.isAllocated = true; + submeshes.elementSize = sizeof(NvParameterized::Interface*); + submeshes.arraySizes[0] = 0; + materialNames.buf = NULL; + materialNames.isAllocated = true; + materialNames.elementSize = sizeof(NvParameterized::DummyStringStruct); + materialNames.arraySizes[0] = 0; + partBounds.buf = NULL; + partBounds.isAllocated = true; + partBounds.elementSize = sizeof(physx::PxBounds3); + partBounds.arraySizes[0] = 0; +} + +void RenderMeshAssetParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + textureUVOrigin = uint32_t(0); + boneCount = uint32_t(0); + deleteStaticBuffersAfterUse = bool(false); + isReferenced = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void RenderMeshAssetParameters_0p0::initReferences(void) +{ +} + +void RenderMeshAssetParameters_0p0::freeDynamicArrays(void) +{ + if (submeshes.isAllocated && submeshes.buf) + { + mParameterizedTraits->free(submeshes.buf); + } + if (materialNames.isAllocated && materialNames.buf) + { + mParameterizedTraits->free(materialNames.buf); + } + if (partBounds.isAllocated && partBounds.buf) + { + mParameterizedTraits->free(partBounds.buf); + } +} + +void RenderMeshAssetParameters_0p0::freeStrings(void) +{ + + for (int i = 0; i < materialNames.arraySizes[0]; ++i) + { + if (materialNames.buf[i].isAllocated && materialNames.buf[i].buf) + { + mParameterizedTraits->strfree((char*)materialNames.buf[i].buf); + } + } +} + +void RenderMeshAssetParameters_0p0::freeReferences(void) +{ + + for (int i = 0; i < submeshes.arraySizes[0]; ++i) + { + if (submeshes.buf[i]) + { + submeshes.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p0.cpp old mode 100644 new mode 100755 index 62a9232..dbb4a63 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p0.cpp @@ -1,518 +1,518 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SubmeshParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace SubmeshParameters_0p0NS; - -const char* const SubmeshParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 8; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 4, 6, 3, 5, 7, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 4 }, - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexBuffer), NULL, 0 }, // vertexBuffer - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexBuffer), CHILDREN(4), 1 }, // indexBuffer - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexBuffer[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexPartition), CHILDREN(5), 1 }, // vertexPartition - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexPartition[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexPartition), CHILDREN(6), 1 }, // indexPartition - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexPartition[] -}; - - -bool SubmeshParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType SubmeshParameters_0p0::mBuiltFlagMutex; - -SubmeshParameters_0p0::SubmeshParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SubmeshParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SubmeshParameters_0p0::~SubmeshParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SubmeshParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SubmeshParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SubmeshParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SubmeshParameters_0p0::getParameterDefinitionTree(void) const -{ - SubmeshParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SubmeshParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SubmeshParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SubmeshParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void SubmeshParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SubmeshParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertexBuffer", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a vertex buffer and an index buffer (see indexBuffer). The vertices for\ndifferent mesh parts are stored in contiguous subsets of the whole vertex buffer.\nThe vertexPartition array holds the offsets into the vertexBuffer for each part.\n", true); - HintTable[2].init("shortDescription", "The vertex buffer for this submesh", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "VertexBufferParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="indexBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("indexBuffer", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); - HintTable[1].init("shortDescription", "The index buffer for this submesh", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="indexBuffer[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("indexBuffer", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); - HintTable[1].init("shortDescription", "The index buffer for this submesh", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexPartition" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("vertexPartition", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="vertexPartition[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("vertexPartition", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="indexPartition" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("indexPartition", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="indexPartition[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("indexPartition", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(4); - Children[3] = PDEF_PTR(6); - - ParamDefTable[0].setChildren(Children, 4); - } - - // SetChildren for: nodeIndex=2, longName="indexBuffer" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(3); - - ParamDefTable[2].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="vertexPartition" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="indexPartition" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(7); - - ParamDefTable[6].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SubmeshParameters_0p0::initStrings(void) -{ -} - -void SubmeshParameters_0p0::initDynamicArrays(void) -{ - indexBuffer.buf = NULL; - indexBuffer.isAllocated = true; - indexBuffer.elementSize = sizeof(uint32_t); - indexBuffer.arraySizes[0] = 0; - vertexPartition.buf = NULL; - vertexPartition.isAllocated = true; - vertexPartition.elementSize = sizeof(uint32_t); - vertexPartition.arraySizes[0] = 0; - indexPartition.buf = NULL; - indexPartition.isAllocated = true; - indexPartition.elementSize = sizeof(uint32_t); - indexPartition.arraySizes[0] = 0; -} - -void SubmeshParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SubmeshParameters_0p0::initReferences(void) -{ - vertexBuffer = NULL; - -} - -void SubmeshParameters_0p0::freeDynamicArrays(void) -{ - if (indexBuffer.isAllocated && indexBuffer.buf) - { - mParameterizedTraits->free(indexBuffer.buf); - } - if (vertexPartition.isAllocated && vertexPartition.buf) - { - mParameterizedTraits->free(vertexPartition.buf); - } - if (indexPartition.isAllocated && indexPartition.buf) - { - mParameterizedTraits->free(indexPartition.buf); - } -} - -void SubmeshParameters_0p0::freeStrings(void) -{ -} - -void SubmeshParameters_0p0::freeReferences(void) -{ - if (vertexBuffer) - { - vertexBuffer->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SubmeshParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace SubmeshParameters_0p0NS; + +const char* const SubmeshParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 8; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 4, 6, 3, 5, 7, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 4 }, + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexBuffer), NULL, 0 }, // vertexBuffer + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexBuffer), CHILDREN(4), 1 }, // indexBuffer + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexBuffer[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexPartition), CHILDREN(5), 1 }, // vertexPartition + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexPartition[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexPartition), CHILDREN(6), 1 }, // indexPartition + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexPartition[] +}; + + +bool SubmeshParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType SubmeshParameters_0p0::mBuiltFlagMutex; + +SubmeshParameters_0p0::SubmeshParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SubmeshParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SubmeshParameters_0p0::~SubmeshParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SubmeshParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SubmeshParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SubmeshParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SubmeshParameters_0p0::getParameterDefinitionTree(void) const +{ + SubmeshParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SubmeshParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SubmeshParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SubmeshParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void SubmeshParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SubmeshParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertexBuffer", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a vertex buffer and an index buffer (see indexBuffer). The vertices for\ndifferent mesh parts are stored in contiguous subsets of the whole vertex buffer.\nThe vertexPartition array holds the offsets into the vertexBuffer for each part.\n", true); + HintTable[2].init("shortDescription", "The vertex buffer for this submesh", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "VertexBufferParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="indexBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("indexBuffer", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); + HintTable[1].init("shortDescription", "The index buffer for this submesh", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="indexBuffer[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("indexBuffer", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); + HintTable[1].init("shortDescription", "The index buffer for this submesh", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexPartition" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("vertexPartition", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="vertexPartition[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("vertexPartition", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="indexPartition" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("indexPartition", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="indexPartition[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("indexPartition", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(4); + Children[3] = PDEF_PTR(6); + + ParamDefTable[0].setChildren(Children, 4); + } + + // SetChildren for: nodeIndex=2, longName="indexBuffer" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(3); + + ParamDefTable[2].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="vertexPartition" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="indexPartition" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(7); + + ParamDefTable[6].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SubmeshParameters_0p0::initStrings(void) +{ +} + +void SubmeshParameters_0p0::initDynamicArrays(void) +{ + indexBuffer.buf = NULL; + indexBuffer.isAllocated = true; + indexBuffer.elementSize = sizeof(uint32_t); + indexBuffer.arraySizes[0] = 0; + vertexPartition.buf = NULL; + vertexPartition.isAllocated = true; + vertexPartition.elementSize = sizeof(uint32_t); + vertexPartition.arraySizes[0] = 0; + indexPartition.buf = NULL; + indexPartition.isAllocated = true; + indexPartition.elementSize = sizeof(uint32_t); + indexPartition.arraySizes[0] = 0; +} + +void SubmeshParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SubmeshParameters_0p0::initReferences(void) +{ + vertexBuffer = NULL; + +} + +void SubmeshParameters_0p0::freeDynamicArrays(void) +{ + if (indexBuffer.isAllocated && indexBuffer.buf) + { + mParameterizedTraits->free(indexBuffer.buf); + } + if (vertexPartition.isAllocated && vertexPartition.buf) + { + mParameterizedTraits->free(vertexPartition.buf); + } + if (indexPartition.isAllocated && indexPartition.buf) + { + mParameterizedTraits->free(indexPartition.buf); + } +} + +void SubmeshParameters_0p0::freeStrings(void) +{ +} + +void SubmeshParameters_0p0::freeReferences(void) +{ + if (vertexBuffer) + { + vertexBuffer->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p1.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p1.cpp old mode 100644 new mode 100755 index de045a2..c0719f9 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SubmeshParameters_0p1.cpp @@ -1,595 +1,595 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SubmeshParameters_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace SubmeshParameters_0p1NS; - -const char* const SubmeshParameters_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 10; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 4, 6, 8, 3, 5, 7, 9, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexBuffer), NULL, 0 }, // vertexBuffer - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexBuffer), CHILDREN(5), 1 }, // indexBuffer - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexBuffer[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexPartition), CHILDREN(6), 1 }, // vertexPartition - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexPartition[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexPartition), CHILDREN(7), 1 }, // indexPartition - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexPartition[] - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->smoothingGroups), CHILDREN(8), 1 }, // smoothingGroups - { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // smoothingGroups[] -}; - - -bool SubmeshParameters_0p1::mBuiltFlag = false; -NvParameterized::MutexType SubmeshParameters_0p1::mBuiltFlagMutex; - -SubmeshParameters_0p1::SubmeshParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SubmeshParameters_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SubmeshParameters_0p1::~SubmeshParameters_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SubmeshParameters_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SubmeshParameters_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SubmeshParameters_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SubmeshParameters_0p1::getParameterDefinitionTree(void) const -{ - SubmeshParameters_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SubmeshParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SubmeshParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SubmeshParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void SubmeshParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SubmeshParameters_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertexBuffer", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a vertex buffer and an index buffer (see indexBuffer). The vertices for\ndifferent mesh parts are stored in contiguous subsets of the whole vertex buffer.\nThe vertexPartition array holds the offsets into the vertexBuffer for each part.\n", true); - HintTable[2].init("shortDescription", "The vertex buffer for this submesh", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "VertexBufferParameters" }; - ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="indexBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("indexBuffer", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); - HintTable[2].init("shortDescription", "The index buffer for this submesh", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="indexBuffer[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("indexBuffer", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("NOPVD", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); - HintTable[2].init("shortDescription", "The index buffer for this submesh", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexPartition" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("vertexPartition", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="vertexPartition[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("vertexPartition", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="indexPartition" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("indexPartition", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="indexPartition[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("indexPartition", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); - HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="smoothingGroups" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("smoothingGroups", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); - HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="smoothingGroups[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("smoothingGroups", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); - HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[5]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(4); - Children[3] = PDEF_PTR(6); - Children[4] = PDEF_PTR(8); - - ParamDefTable[0].setChildren(Children, 5); - } - - // SetChildren for: nodeIndex=2, longName="indexBuffer" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(3); - - ParamDefTable[2].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="vertexPartition" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(5); - - ParamDefTable[4].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=6, longName="indexPartition" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(7); - - ParamDefTable[6].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=8, longName="smoothingGroups" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(9); - - ParamDefTable[8].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void SubmeshParameters_0p1::initStrings(void) -{ -} - -void SubmeshParameters_0p1::initDynamicArrays(void) -{ - indexBuffer.buf = NULL; - indexBuffer.isAllocated = true; - indexBuffer.elementSize = sizeof(uint32_t); - indexBuffer.arraySizes[0] = 0; - vertexPartition.buf = NULL; - vertexPartition.isAllocated = true; - vertexPartition.elementSize = sizeof(uint32_t); - vertexPartition.arraySizes[0] = 0; - indexPartition.buf = NULL; - indexPartition.isAllocated = true; - indexPartition.elementSize = sizeof(uint32_t); - indexPartition.arraySizes[0] = 0; - smoothingGroups.buf = NULL; - smoothingGroups.isAllocated = true; - smoothingGroups.elementSize = sizeof(uint32_t); - smoothingGroups.arraySizes[0] = 0; -} - -void SubmeshParameters_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SubmeshParameters_0p1::initReferences(void) -{ - vertexBuffer = NULL; - -} - -void SubmeshParameters_0p1::freeDynamicArrays(void) -{ - if (indexBuffer.isAllocated && indexBuffer.buf) - { - mParameterizedTraits->free(indexBuffer.buf); - } - if (vertexPartition.isAllocated && vertexPartition.buf) - { - mParameterizedTraits->free(vertexPartition.buf); - } - if (indexPartition.isAllocated && indexPartition.buf) - { - mParameterizedTraits->free(indexPartition.buf); - } - if (smoothingGroups.isAllocated && smoothingGroups.buf) - { - mParameterizedTraits->free(smoothingGroups.buf); - } -} - -void SubmeshParameters_0p1::freeStrings(void) -{ -} - -void SubmeshParameters_0p1::freeReferences(void) -{ - if (vertexBuffer) - { - vertexBuffer->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SubmeshParameters_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace SubmeshParameters_0p1NS; + +const char* const SubmeshParameters_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 10; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 4, 6, 8, 3, 5, 7, 9, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 5 }, + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexBuffer), NULL, 0 }, // vertexBuffer + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexBuffer), CHILDREN(5), 1 }, // indexBuffer + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexBuffer[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->vertexPartition), CHILDREN(6), 1 }, // vertexPartition + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // vertexPartition[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->indexPartition), CHILDREN(7), 1 }, // indexPartition + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // indexPartition[] + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->smoothingGroups), CHILDREN(8), 1 }, // smoothingGroups + { TYPE_U32, false, 1 * sizeof(uint32_t), NULL, 0 }, // smoothingGroups[] +}; + + +bool SubmeshParameters_0p1::mBuiltFlag = false; +NvParameterized::MutexType SubmeshParameters_0p1::mBuiltFlagMutex; + +SubmeshParameters_0p1::SubmeshParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SubmeshParameters_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SubmeshParameters_0p1::~SubmeshParameters_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SubmeshParameters_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SubmeshParameters_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SubmeshParameters_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SubmeshParameters_0p1::getParameterDefinitionTree(void) const +{ + SubmeshParameters_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SubmeshParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SubmeshParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SubmeshParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void SubmeshParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SubmeshParameters_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertexBuffer", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a vertex buffer and an index buffer (see indexBuffer). The vertices for\ndifferent mesh parts are stored in contiguous subsets of the whole vertex buffer.\nThe vertexPartition array holds the offsets into the vertexBuffer for each part.\n", true); + HintTable[2].init("shortDescription", "The vertex buffer for this submesh", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "VertexBufferParameters" }; + ParamDefTable[1].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="indexBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("indexBuffer", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); + HintTable[2].init("shortDescription", "The index buffer for this submesh", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="indexBuffer[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("indexBuffer", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("NOPVD", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the vertex buffer included with this submesh. The submesh is defined\nby a index buffer and an vertex buffer (see vertexBuffer). The indices for\ndifferent mesh parts are stored in contiguous subsets of the whole index buffer.\nThe indexPartition array holds the offsets into the indexBuffer for each part.\n", true); + HintTable[2].init("shortDescription", "The index buffer for this submesh", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="vertexPartition" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("vertexPartition", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="vertexPartition[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("vertexPartition", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into vertexBuffer for each part. The first vertex index for part\ni is vertexPartition[i]. The vertexPartition array size is N+1, where N = the\nnumber of mesh parts, and vertexPartition[N] = vertexBuffer.vertexCount (the\nsize of the vertex buffer). This way, the number of vertices for part i can be\nalways be obtained with vertexPartition[i+1]-vertexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into vertexBuffer", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="indexPartition" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("indexPartition", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="indexPartition[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("indexPartition", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Index offset into indexBuffer for each part. The first index location in\nindexPartition for part i is indexPartition[i]. The indexPartition array\nsize is N+1, where N = the number of mesh parts, and indexPartition[N] =\nthe size of the indexBuffer. This way, the number of indices for part i\ncan be always be obtained with indexPartition[i+1]-indexPartition[i].\n", true); + HintTable[1].init("shortDescription", "Part lookup into indexBuffer", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="smoothingGroups" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("smoothingGroups", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); + HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="smoothingGroups[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("smoothingGroups", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Per-triangle smoothing group masks", true); + HintTable[1].init("shortDescription", "Per-triangle smoothing group masks", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[5]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(4); + Children[3] = PDEF_PTR(6); + Children[4] = PDEF_PTR(8); + + ParamDefTable[0].setChildren(Children, 5); + } + + // SetChildren for: nodeIndex=2, longName="indexBuffer" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(3); + + ParamDefTable[2].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="vertexPartition" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(5); + + ParamDefTable[4].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=6, longName="indexPartition" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(7); + + ParamDefTable[6].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=8, longName="smoothingGroups" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(9); + + ParamDefTable[8].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void SubmeshParameters_0p1::initStrings(void) +{ +} + +void SubmeshParameters_0p1::initDynamicArrays(void) +{ + indexBuffer.buf = NULL; + indexBuffer.isAllocated = true; + indexBuffer.elementSize = sizeof(uint32_t); + indexBuffer.arraySizes[0] = 0; + vertexPartition.buf = NULL; + vertexPartition.isAllocated = true; + vertexPartition.elementSize = sizeof(uint32_t); + vertexPartition.arraySizes[0] = 0; + indexPartition.buf = NULL; + indexPartition.isAllocated = true; + indexPartition.elementSize = sizeof(uint32_t); + indexPartition.arraySizes[0] = 0; + smoothingGroups.buf = NULL; + smoothingGroups.isAllocated = true; + smoothingGroups.elementSize = sizeof(uint32_t); + smoothingGroups.arraySizes[0] = 0; +} + +void SubmeshParameters_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SubmeshParameters_0p1::initReferences(void) +{ + vertexBuffer = NULL; + +} + +void SubmeshParameters_0p1::freeDynamicArrays(void) +{ + if (indexBuffer.isAllocated && indexBuffer.buf) + { + mParameterizedTraits->free(indexBuffer.buf); + } + if (vertexPartition.isAllocated && vertexPartition.buf) + { + mParameterizedTraits->free(vertexPartition.buf); + } + if (indexPartition.isAllocated && indexPartition.buf) + { + mParameterizedTraits->free(indexPartition.buf); + } + if (smoothingGroups.isAllocated && smoothingGroups.buf) + { + mParameterizedTraits->free(smoothingGroups.buf); + } +} + +void SubmeshParameters_0p1::freeStrings(void) +{ +} + +void SubmeshParameters_0p1::freeReferences(void) +{ + if (vertexBuffer) + { + vertexBuffer->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SurfaceBufferParameters_0p1.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SurfaceBufferParameters_0p1.cpp old mode 100644 new mode 100755 index 17f090a..62affec --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SurfaceBufferParameters_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/SurfaceBufferParameters_0p1.cpp @@ -1,404 +1,404 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "SurfaceBufferParameters_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace SurfaceBufferParameters_0p1NS; - -const char* const SurfaceBufferParameters_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 4 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->width), NULL, 0 }, // width - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->height), NULL, 0 }, // height - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->surfaceFormat), NULL, 0 }, // surfaceFormat - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->buffer), NULL, 0 }, // buffer -}; - - -bool SurfaceBufferParameters_0p1::mBuiltFlag = false; -NvParameterized::MutexType SurfaceBufferParameters_0p1::mBuiltFlagMutex; - -SurfaceBufferParameters_0p1::SurfaceBufferParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &SurfaceBufferParameters_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -SurfaceBufferParameters_0p1::~SurfaceBufferParameters_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void SurfaceBufferParameters_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~SurfaceBufferParameters_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* SurfaceBufferParameters_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* SurfaceBufferParameters_0p1::getParameterDefinitionTree(void) const -{ - SurfaceBufferParameters_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType SurfaceBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType SurfaceBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void SurfaceBufferParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ - -void SurfaceBufferParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void SurfaceBufferParameters_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="width" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("width", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of point in U-dimension", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="height" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("height", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("shortDescription", "Number of point in V-dimension", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="surfaceFormat" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("surfaceFormat", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("shortDescription", "Attributes of the vertex buffer", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="buffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("buffer", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the buffer data according to the description in the SurfaceFormat", true); - HintTable[2].init("shortDescription", "The data buffer", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[4]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - Children[3] = PDEF_PTR(4); - - ParamDefTable[0].setChildren(Children, 4); - } - - mBuiltFlag = true; - -} -void SurfaceBufferParameters_0p1::initStrings(void) -{ -} - -void SurfaceBufferParameters_0p1::initDynamicArrays(void) -{ -} - -void SurfaceBufferParameters_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - width = uint32_t(0); - height = uint32_t(0); - surfaceFormat = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void SurfaceBufferParameters_0p1::initReferences(void) -{ - buffer = NULL; - -} - -void SurfaceBufferParameters_0p1::freeDynamicArrays(void) -{ -} - -void SurfaceBufferParameters_0p1::freeStrings(void) -{ -} - -void SurfaceBufferParameters_0p1::freeReferences(void) -{ - if (buffer) - { - buffer->destroy(); - } - -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "SurfaceBufferParameters_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace SurfaceBufferParameters_0p1NS; + +const char* const SurfaceBufferParameters_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 4 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->width), NULL, 0 }, // width + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->height), NULL, 0 }, // height + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->surfaceFormat), NULL, 0 }, // surfaceFormat + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->buffer), NULL, 0 }, // buffer +}; + + +bool SurfaceBufferParameters_0p1::mBuiltFlag = false; +NvParameterized::MutexType SurfaceBufferParameters_0p1::mBuiltFlagMutex; + +SurfaceBufferParameters_0p1::SurfaceBufferParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &SurfaceBufferParameters_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +SurfaceBufferParameters_0p1::~SurfaceBufferParameters_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void SurfaceBufferParameters_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~SurfaceBufferParameters_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* SurfaceBufferParameters_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* SurfaceBufferParameters_0p1::getParameterDefinitionTree(void) const +{ + SurfaceBufferParameters_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType SurfaceBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType SurfaceBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void SurfaceBufferParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ + +void SurfaceBufferParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void SurfaceBufferParameters_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="width" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("width", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of point in U-dimension", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="height" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("height", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("shortDescription", "Number of point in V-dimension", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="surfaceFormat" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("surfaceFormat", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("shortDescription", "Attributes of the vertex buffer", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="buffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("buffer", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the buffer data according to the description in the SurfaceFormat", true); + HintTable[2].init("shortDescription", "The data buffer", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[4]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + Children[3] = PDEF_PTR(4); + + ParamDefTable[0].setChildren(Children, 4); + } + + mBuiltFlag = true; + +} +void SurfaceBufferParameters_0p1::initStrings(void) +{ +} + +void SurfaceBufferParameters_0p1::initDynamicArrays(void) +{ +} + +void SurfaceBufferParameters_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + width = uint32_t(0); + height = uint32_t(0); + surfaceFormat = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void SurfaceBufferParameters_0p1::initReferences(void) +{ + buffer = NULL; + +} + +void SurfaceBufferParameters_0p1::freeDynamicArrays(void) +{ +} + +void SurfaceBufferParameters_0p1::freeStrings(void) +{ +} + +void SurfaceBufferParameters_0p1::freeReferences(void) +{ + if (buffer) + { + buffer->destroy(); + } + +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p0.cpp old mode 100644 new mode 100755 index 904219a..ec77283 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p0.cpp @@ -1,442 +1,442 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "VertexBufferParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace VertexBufferParameters_0p0NS; - -const char* const VertexBufferParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->vertexCount), NULL, 0 }, // vertexCount - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexFormat), NULL, 0 }, // vertexFormat - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->buffers), CHILDREN(3), 1 }, // buffers - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // buffers[] -}; - - -bool VertexBufferParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType VertexBufferParameters_0p0::mBuiltFlagMutex; - -VertexBufferParameters_0p0::VertexBufferParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &VertexBufferParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -VertexBufferParameters_0p0::~VertexBufferParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void VertexBufferParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~VertexBufferParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* VertexBufferParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* VertexBufferParameters_0p0::getParameterDefinitionTree(void) const -{ - VertexBufferParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType VertexBufferParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType VertexBufferParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void VertexBufferParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - buffers (not an array of structs) */ - -void VertexBufferParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void VertexBufferParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertexCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of vertices in the verrtex buffer. All vertex data channels (positions, normals, etc.) will contain this many items.", true); - HintTable[1].init("shortDescription", "Number of vertices", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="vertexFormat" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("vertexFormat", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This describes the data channels which exist per vertex, the vertex winding order, custom buffers, etc. See VertexFormatParameters.", true); - HintTable[2].init("shortDescription", "Attributes of the vertex buffer", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "VertexFormatParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="buffers" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("buffers", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); - HintTable[2].init("shortDescription", "The data buffers for standard and custom semantics", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[3].setRefVariantVals((const char**)RefVariantVals, 16); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="buffers[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("buffers", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); - HintTable[2].init("shortDescription", "The data buffers for standard and custom semantics", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=3, longName="buffers" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void VertexBufferParameters_0p0::initStrings(void) -{ -} - -void VertexBufferParameters_0p0::initDynamicArrays(void) -{ - buffers.buf = NULL; - buffers.isAllocated = true; - buffers.elementSize = sizeof(NvParameterized::Interface*); - buffers.arraySizes[0] = 0; -} - -void VertexBufferParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - vertexCount = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void VertexBufferParameters_0p0::initReferences(void) -{ - vertexFormat = NULL; - -} - -void VertexBufferParameters_0p0::freeDynamicArrays(void) -{ - if (buffers.isAllocated && buffers.buf) - { - mParameterizedTraits->free(buffers.buf); - } -} - -void VertexBufferParameters_0p0::freeStrings(void) -{ -} - -void VertexBufferParameters_0p0::freeReferences(void) -{ - if (vertexFormat) - { - vertexFormat->destroy(); - } - - - for (int i = 0; i < buffers.arraySizes[0]; ++i) - { - if (buffers.buf[i]) - { - buffers.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "VertexBufferParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace VertexBufferParameters_0p0NS; + +const char* const VertexBufferParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->vertexCount), NULL, 0 }, // vertexCount + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexFormat), NULL, 0 }, // vertexFormat + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->buffers), CHILDREN(3), 1 }, // buffers + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // buffers[] +}; + + +bool VertexBufferParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType VertexBufferParameters_0p0::mBuiltFlagMutex; + +VertexBufferParameters_0p0::VertexBufferParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &VertexBufferParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +VertexBufferParameters_0p0::~VertexBufferParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void VertexBufferParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~VertexBufferParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* VertexBufferParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* VertexBufferParameters_0p0::getParameterDefinitionTree(void) const +{ + VertexBufferParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType VertexBufferParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType VertexBufferParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void VertexBufferParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - buffers (not an array of structs) */ + +void VertexBufferParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void VertexBufferParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertexCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of vertices in the verrtex buffer. All vertex data channels (positions, normals, etc.) will contain this many items.", true); + HintTable[1].init("shortDescription", "Number of vertices", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="vertexFormat" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("vertexFormat", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This describes the data channels which exist per vertex, the vertex winding order, custom buffers, etc. See VertexFormatParameters.", true); + HintTable[2].init("shortDescription", "Attributes of the vertex buffer", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "VertexFormatParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="buffers" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("buffers", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); + HintTable[2].init("shortDescription", "The data buffers for standard and custom semantics", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[3].setRefVariantVals((const char**)RefVariantVals, 16); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="buffers[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("buffers", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); + HintTable[2].init("shortDescription", "The data buffers for standard and custom semantics", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=3, longName="buffers" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void VertexBufferParameters_0p0::initStrings(void) +{ +} + +void VertexBufferParameters_0p0::initDynamicArrays(void) +{ + buffers.buf = NULL; + buffers.isAllocated = true; + buffers.elementSize = sizeof(NvParameterized::Interface*); + buffers.arraySizes[0] = 0; +} + +void VertexBufferParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + vertexCount = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void VertexBufferParameters_0p0::initReferences(void) +{ + vertexFormat = NULL; + +} + +void VertexBufferParameters_0p0::freeDynamicArrays(void) +{ + if (buffers.isAllocated && buffers.buf) + { + mParameterizedTraits->free(buffers.buf); + } +} + +void VertexBufferParameters_0p0::freeStrings(void) +{ +} + +void VertexBufferParameters_0p0::freeReferences(void) +{ + if (vertexFormat) + { + vertexFormat->destroy(); + } + + + for (int i = 0; i < buffers.arraySizes[0]; ++i) + { + if (buffers.buf[i]) + { + buffers.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p1.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p1.cpp old mode 100644 new mode 100755 index 2941c76..1896534 --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p1.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexBufferParameters_0p1.cpp @@ -1,446 +1,446 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "VertexBufferParameters_0p1.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace VertexBufferParameters_0p1NS; - -const char* const VertexBufferParameters_0p1Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 5; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->vertexCount), NULL, 0 }, // vertexCount - { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexFormat), NULL, 0 }, // vertexFormat - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->buffers), CHILDREN(3), 1 }, // buffers - { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // buffers[] -}; - - -bool VertexBufferParameters_0p1::mBuiltFlag = false; -NvParameterized::MutexType VertexBufferParameters_0p1::mBuiltFlagMutex; - -VertexBufferParameters_0p1::VertexBufferParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &VertexBufferParameters_0p1FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -VertexBufferParameters_0p1::~VertexBufferParameters_0p1() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void VertexBufferParameters_0p1::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~VertexBufferParameters_0p1(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* VertexBufferParameters_0p1::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* VertexBufferParameters_0p1::getParameterDefinitionTree(void) const -{ - VertexBufferParameters_0p1* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType VertexBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType VertexBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void VertexBufferParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [0] - buffers (not an array of structs) */ - -void VertexBufferParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void VertexBufferParameters_0p1::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexCount" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("vertexCount", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The number of vertices in the verrtex buffer. All vertex data channels (positions, normals, etc.) will contain this many items.", true); - HintTable[1].init("shortDescription", "Number of vertices", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="vertexFormat" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("vertexFormat", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[1]; - static Hint* HintPtrTable[1] = { &HintTable[0], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); - -#else - - static HintImpl HintTable[3]; - static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("longDescription", "This describes the data channels which exist per vertex, the vertex winding order, custom buffers, etc. See VertexFormatParameters.", true); - HintTable[2].init("shortDescription", "Attributes of the vertex buffer", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "VertexFormatParameters" }; - ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="buffers" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("buffers", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); - HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[3].setRefVariantVals((const char**)RefVariantVals, 16); - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[1] = { 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="buffers[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("buffers", TYPE_REF, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#else - - static HintImpl HintTable[4]; - static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; - HintTable[0].init("INCLUDED", uint64_t(1), true); - HintTable[1].init("NOPVD", uint64_t(1), true); - HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); - HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; - ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=3, longName="buffers" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - mBuiltFlag = true; - -} -void VertexBufferParameters_0p1::initStrings(void) -{ -} - -void VertexBufferParameters_0p1::initDynamicArrays(void) -{ - buffers.buf = NULL; - buffers.isAllocated = true; - buffers.elementSize = sizeof(NvParameterized::Interface*); - buffers.arraySizes[0] = 0; -} - -void VertexBufferParameters_0p1::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - vertexCount = uint32_t(0); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void VertexBufferParameters_0p1::initReferences(void) -{ - vertexFormat = NULL; - -} - -void VertexBufferParameters_0p1::freeDynamicArrays(void) -{ - if (buffers.isAllocated && buffers.buf) - { - mParameterizedTraits->free(buffers.buf); - } -} - -void VertexBufferParameters_0p1::freeStrings(void) -{ -} - -void VertexBufferParameters_0p1::freeReferences(void) -{ - if (vertexFormat) - { - vertexFormat->destroy(); - } - - - for (int i = 0; i < buffers.arraySizes[0]; ++i) - { - if (buffers.buf[i]) - { - buffers.buf[i]->destroy(); - } - } -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "VertexBufferParameters_0p1.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace VertexBufferParameters_0p1NS; + +const char* const VertexBufferParameters_0p1Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 5; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->vertexCount), NULL, 0 }, // vertexCount + { TYPE_REF, false, (size_t)(&((ParametersStruct*)0)->vertexFormat), NULL, 0 }, // vertexFormat + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->buffers), CHILDREN(3), 1 }, // buffers + { TYPE_REF, false, 1 * sizeof(NvParameterized::Interface*), NULL, 0 }, // buffers[] +}; + + +bool VertexBufferParameters_0p1::mBuiltFlag = false; +NvParameterized::MutexType VertexBufferParameters_0p1::mBuiltFlagMutex; + +VertexBufferParameters_0p1::VertexBufferParameters_0p1(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &VertexBufferParameters_0p1FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +VertexBufferParameters_0p1::~VertexBufferParameters_0p1() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void VertexBufferParameters_0p1::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~VertexBufferParameters_0p1(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* VertexBufferParameters_0p1::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* VertexBufferParameters_0p1::getParameterDefinitionTree(void) const +{ + VertexBufferParameters_0p1* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType VertexBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType VertexBufferParameters_0p1::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void VertexBufferParameters_0p1::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [0] - buffers (not an array of structs) */ + +void VertexBufferParameters_0p1::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void VertexBufferParameters_0p1::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="vertexCount" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("vertexCount", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The number of vertices in the verrtex buffer. All vertex data channels (positions, normals, etc.) will contain this many items.", true); + HintTable[1].init("shortDescription", "Number of vertices", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="vertexFormat" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("vertexFormat", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[1]; + static Hint* HintPtrTable[1] = { &HintTable[0], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 1); + +#else + + static HintImpl HintTable[3]; + static Hint* HintPtrTable[3] = { &HintTable[0], &HintTable[1], &HintTable[2], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("longDescription", "This describes the data channels which exist per vertex, the vertex winding order, custom buffers, etc. See VertexFormatParameters.", true); + HintTable[2].init("shortDescription", "Attributes of the vertex buffer", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 3); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "VertexFormatParameters" }; + ParamDefTable[2].setRefVariantVals((const char**)RefVariantVals, 1); + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="buffers" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("buffers", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); + HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[3].setRefVariantVals((const char**)RefVariantVals, 16); + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[1] = { 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 1); + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="buffers[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("buffers", TYPE_REF, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#else + + static HintImpl HintTable[4]; + static Hint* HintPtrTable[4] = { &HintTable[0], &HintTable[1], &HintTable[2], &HintTable[3], }; + HintTable[0].init("INCLUDED", uint64_t(1), true); + HintTable[1].init("NOPVD", uint64_t(1), true); + HintTable[2].init("longDescription", "This is the buffer data according to the description in the VertexFormat", true); + HintTable[3].init("shortDescription", "The data buffers for standard and custom semantics", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 4); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + static const char* const RefVariantVals[] = { "BufferU8x1", "BufferU8x2", "BufferU8x3", "BufferU8x4", "BufferU16x1", "BufferU16x2", "BufferU16x3", "BufferU16x4", "BufferU32x1", "BufferU32x2", "BufferU32x3", "BufferU32x4", "BufferF32x1", "BufferF32x2", "BufferF32x3", "BufferF32x4" }; + ParamDefTable[4].setRefVariantVals((const char**)RefVariantVals, 16); + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=3, longName="buffers" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + mBuiltFlag = true; + +} +void VertexBufferParameters_0p1::initStrings(void) +{ +} + +void VertexBufferParameters_0p1::initDynamicArrays(void) +{ + buffers.buf = NULL; + buffers.isAllocated = true; + buffers.elementSize = sizeof(NvParameterized::Interface*); + buffers.arraySizes[0] = 0; +} + +void VertexBufferParameters_0p1::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + vertexCount = uint32_t(0); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void VertexBufferParameters_0p1::initReferences(void) +{ + vertexFormat = NULL; + +} + +void VertexBufferParameters_0p1::freeDynamicArrays(void) +{ + if (buffers.isAllocated && buffers.buf) + { + mParameterizedTraits->free(buffers.buf); + } +} + +void VertexBufferParameters_0p1::freeStrings(void) +{ +} + +void VertexBufferParameters_0p1::freeReferences(void) +{ + if (vertexFormat) + { + vertexFormat->destroy(); + } + + + for (int i = 0; i < buffers.arraySizes[0]; ++i) + { + if (buffers.buf[i]) + { + buffers.buf[i]->destroy(); + } + } +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexFormatParameters_0p0.cpp b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexFormatParameters_0p0.cpp old mode 100644 new mode 100755 index c1a8e23..49f935c --- a/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexFormatParameters_0p0.cpp +++ b/sdk/extensions/import/apexmodules/modules/framework_legacy/src/autogen/VertexFormatParameters_0p0.cpp @@ -1,569 +1,569 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. - -// This file was generated by NvParameterized/scripts/GenParameterized.pl - - -#include "VertexFormatParameters_0p0.h" -#include -#include - -using namespace NvParameterized; - -namespace nvidia -{ -namespace parameterized -{ - -using namespace VertexFormatParameters_0p0NS; - -const char* const VertexFormatParameters_0p0Factory::vptr = - NvParameterized::getVptr(); - -const uint32_t NumParamDefs = 11; -static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; - - -static const size_t ParamLookupChildrenTable[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, -}; - -#define TENUM(type) nvidia::##type -#define CHILDREN(index) &ParamLookupChildrenTable[index] -static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = -{ - { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, - { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->winding), NULL, 0 }, // winding - { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->hasSeparateBoneBuffer), NULL, 0 }, // hasSeparateBoneBuffer - { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bufferFormats), CHILDREN(3), 1 }, // bufferFormats - { TYPE_STRUCT, false, 1 * sizeof(BufferFormat_Type), CHILDREN(4), 6 }, // bufferFormats[] - { TYPE_STRING, false, (size_t)(&((BufferFormat_Type*)0)->name), NULL, 0 }, // bufferFormats[].name - { TYPE_I32, false, (size_t)(&((BufferFormat_Type*)0)->semantic), NULL, 0 }, // bufferFormats[].semantic - { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->id), NULL, 0 }, // bufferFormats[].id - { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->format), NULL, 0 }, // bufferFormats[].format - { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->access), NULL, 0 }, // bufferFormats[].access - { TYPE_BOOL, false, (size_t)(&((BufferFormat_Type*)0)->serialize), NULL, 0 }, // bufferFormats[].serialize -}; - - -bool VertexFormatParameters_0p0::mBuiltFlag = false; -NvParameterized::MutexType VertexFormatParameters_0p0::mBuiltFlagMutex; - -VertexFormatParameters_0p0::VertexFormatParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : - NvParameters(traits, buf, refCount) -{ - //mParameterizedTraits->registerFactory(className(), &VertexFormatParameters_0p0FactoryInst); - - if (!buf) //Do not init data if it is inplace-deserialized - { - initDynamicArrays(); - initStrings(); - initReferences(); - initDefaults(); - } -} - -VertexFormatParameters_0p0::~VertexFormatParameters_0p0() -{ - freeStrings(); - freeReferences(); - freeDynamicArrays(); -} - -void VertexFormatParameters_0p0::destroy() -{ - // We cache these fields here to avoid overwrite in destructor - bool doDeallocateSelf = mDoDeallocateSelf; - NvParameterized::Traits* traits = mParameterizedTraits; - int32_t* refCount = mRefCount; - void* buf = mBuffer; - - this->~VertexFormatParameters_0p0(); - - NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); -} - -const NvParameterized::DefinitionImpl* VertexFormatParameters_0p0::getParameterDefinitionTree(void) -{ - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -const NvParameterized::DefinitionImpl* VertexFormatParameters_0p0::getParameterDefinitionTree(void) const -{ - VertexFormatParameters_0p0* tmpParam = const_cast(this); - - if (!mBuiltFlag) // Double-checked lock - { - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - if (!mBuiltFlag) - { - tmpParam->buildTree(); - } - } - - return(&ParamDefTable[0]); -} - -NvParameterized::ErrorType VertexFormatParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -NvParameterized::ErrorType VertexFormatParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) -{ - ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); - if (Ret != ERROR_NONE) - { - return(Ret); - } - - size_t offset; - void* ptr; - - getVarPtr(handle, ptr, offset); - - if (ptr == NULL) - { - return(ERROR_INDEX_OUT_OF_RANGE); - } - - return(ERROR_NONE); -} - -void VertexFormatParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const -{ - ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); -} - - -/* Dynamic Handle Indices */ -/* [1,0] - bufferFormats.name */ - -void VertexFormatParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) -{ - if (!traits) - { - return; - } - - if (!mBuiltFlag) // Double-checked lock - { - return; - } - - NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); - - if (!mBuiltFlag) - { - return; - } - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - ParamDefTable[i].~DefinitionImpl(); - } - - traits->free(ParamDefTable); - - mBuiltFlag = false; -} - -#define PDEF_PTR(index) (&ParamDefTable[index]) - -void VertexFormatParameters_0p0::buildTree(void) -{ - - uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; - ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); - memset(ParamDefTable, 0, allocSize); - - for (uint32_t i = 0; i < NumParamDefs; ++i) - { - NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); - } - - // Initialize DefinitionImpl node: nodeIndex=0, longName="" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; - ParamDef->init("", TYPE_STRUCT, "STRUCT", true); - - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=1, longName="winding" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; - ParamDef->init("winding", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This value defines which vertex winding orders will be rendered. See RenderCullMode.", true); - HintTable[1].init("shortDescription", "Vertex orders to be rendered", true); - ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=2, longName="hasSeparateBoneBuffer" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; - ParamDef->init("hasSeparateBoneBuffer", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Whether or not there exists a separate bone buffer.", true); - HintTable[1].init("shortDescription", "Whether or not there exists a separate bone buffer", true); - ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=3, longName="bufferFormats" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; - ParamDef->init("bufferFormats", TYPE_ARRAY, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); - HintTable[1].init("shortDescription", "Format of all buffers.", true); - ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - ParamDef->setArraySize(-1); - static const uint8_t dynHandleIndices[2] = { 1, 0, }; - ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); - - } - - // Initialize DefinitionImpl node: nodeIndex=4, longName="bufferFormats[]" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; - ParamDef->init("bufferFormats", TYPE_STRUCT, "BufferFormat", true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); - HintTable[1].init("shortDescription", "Format of all buffers.", true); - ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=5, longName="bufferFormats[].name" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; - ParamDef->init("name", TYPE_STRING, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "Name by which this buffer is referenced, for custom semantics. For standard semantics, VertexFormat::getSemanticName() is used", true); - HintTable[1].init("shortDescription", "Name by which this buffer is referenced", true); - ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=6, longName="bufferFormats[].semantic" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; - ParamDef->init("semantic", TYPE_I32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This buffer's semantic. If it's a custom buffer, it will be RenderVertexSemantic::CUSTOM.", true); - HintTable[1].init("shortDescription", "This buffer's semantic.", true); - ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=7, longName="bufferFormats[].id" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; - ParamDef->init("id", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This buffer's id. See VertexFormat::getSemanticID and VertexFormat::getID.", true); - HintTable[1].init("shortDescription", "This buffer's id.", true); - ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=8, longName="bufferFormats[].format" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; - ParamDef->init("format", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The format of this buffer. Must be one of the RenderDataFormat::Enum values.", true); - HintTable[1].init("shortDescription", "The format of this buffer", true); - ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=9, longName="bufferFormats[].access" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; - ParamDef->init("access", TYPE_U32, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "The access type for this buffer. Must be one of the VertexDataAccess::Enum values.", true); - HintTable[1].init("shortDescription", "The access type for this buffer", true); - ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // Initialize DefinitionImpl node: nodeIndex=10, longName="bufferFormats[].serialize" - { - NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; - ParamDef->init("serialize", TYPE_BOOL, NULL, true); - -#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS - -#else - - static HintImpl HintTable[2]; - static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; - HintTable[0].init("longDescription", "This is only needed if this buffer needs to be rendered, clothing custom buffer MAX_DISTANCE for example doesn't need it.", true); - HintTable[1].init("shortDescription", "Serialize this buffer", true); - ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); - -#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ - - - - - - } - - // SetChildren for: nodeIndex=0, longName="" - { - static Definition* Children[3]; - Children[0] = PDEF_PTR(1); - Children[1] = PDEF_PTR(2); - Children[2] = PDEF_PTR(3); - - ParamDefTable[0].setChildren(Children, 3); - } - - // SetChildren for: nodeIndex=3, longName="bufferFormats" - { - static Definition* Children[1]; - Children[0] = PDEF_PTR(4); - - ParamDefTable[3].setChildren(Children, 1); - } - - // SetChildren for: nodeIndex=4, longName="bufferFormats[]" - { - static Definition* Children[6]; - Children[0] = PDEF_PTR(5); - Children[1] = PDEF_PTR(6); - Children[2] = PDEF_PTR(7); - Children[3] = PDEF_PTR(8); - Children[4] = PDEF_PTR(9); - Children[5] = PDEF_PTR(10); - - ParamDefTable[4].setChildren(Children, 6); - } - - mBuiltFlag = true; - -} -void VertexFormatParameters_0p0::initStrings(void) -{ -} - -void VertexFormatParameters_0p0::initDynamicArrays(void) -{ - bufferFormats.buf = NULL; - bufferFormats.isAllocated = true; - bufferFormats.elementSize = sizeof(BufferFormat_Type); - bufferFormats.arraySizes[0] = 0; -} - -void VertexFormatParameters_0p0::initDefaults(void) -{ - - freeStrings(); - freeReferences(); - freeDynamicArrays(); - winding = uint32_t(0); - hasSeparateBoneBuffer = bool(false); - - initDynamicArrays(); - initStrings(); - initReferences(); -} - -void VertexFormatParameters_0p0::initReferences(void) -{ -} - -void VertexFormatParameters_0p0::freeDynamicArrays(void) -{ - if (bufferFormats.isAllocated && bufferFormats.buf) - { - mParameterizedTraits->free(bufferFormats.buf); - } -} - -void VertexFormatParameters_0p0::freeStrings(void) -{ - - for (int i = 0; i < bufferFormats.arraySizes[0]; ++i) - { - if (bufferFormats.buf[i].name.isAllocated && bufferFormats.buf[i].name.buf) - { - mParameterizedTraits->strfree((char*)bufferFormats.buf[i].name.buf); - } - } -} - -void VertexFormatParameters_0p0::freeReferences(void) -{ -} - -} // namespace parameterized -} // namespace nvidia +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2017 NVIDIA Corporation. All rights reserved. + +// This file was generated by NvParameterized/scripts/GenParameterized.pl + + +#include "VertexFormatParameters_0p0.h" +#include +#include + +using namespace NvParameterized; + +namespace nvidia +{ +namespace parameterized +{ + +using namespace VertexFormatParameters_0p0NS; + +const char* const VertexFormatParameters_0p0Factory::vptr = + NvParameterized::getVptr(); + +const uint32_t NumParamDefs = 11; +static NvParameterized::DefinitionImpl* ParamDefTable; // now allocated in buildTree [NumParamDefs]; + + +static const size_t ParamLookupChildrenTable[] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, +}; + +#define TENUM(type) nvidia::##type +#define CHILDREN(index) &ParamLookupChildrenTable[index] +static const NvParameterized::ParamLookupNode ParamLookupTable[NumParamDefs] = +{ + { TYPE_STRUCT, false, 0, CHILDREN(0), 3 }, + { TYPE_U32, false, (size_t)(&((ParametersStruct*)0)->winding), NULL, 0 }, // winding + { TYPE_BOOL, false, (size_t)(&((ParametersStruct*)0)->hasSeparateBoneBuffer), NULL, 0 }, // hasSeparateBoneBuffer + { TYPE_ARRAY, true, (size_t)(&((ParametersStruct*)0)->bufferFormats), CHILDREN(3), 1 }, // bufferFormats + { TYPE_STRUCT, false, 1 * sizeof(BufferFormat_Type), CHILDREN(4), 6 }, // bufferFormats[] + { TYPE_STRING, false, (size_t)(&((BufferFormat_Type*)0)->name), NULL, 0 }, // bufferFormats[].name + { TYPE_I32, false, (size_t)(&((BufferFormat_Type*)0)->semantic), NULL, 0 }, // bufferFormats[].semantic + { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->id), NULL, 0 }, // bufferFormats[].id + { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->format), NULL, 0 }, // bufferFormats[].format + { TYPE_U32, false, (size_t)(&((BufferFormat_Type*)0)->access), NULL, 0 }, // bufferFormats[].access + { TYPE_BOOL, false, (size_t)(&((BufferFormat_Type*)0)->serialize), NULL, 0 }, // bufferFormats[].serialize +}; + + +bool VertexFormatParameters_0p0::mBuiltFlag = false; +NvParameterized::MutexType VertexFormatParameters_0p0::mBuiltFlagMutex; + +VertexFormatParameters_0p0::VertexFormatParameters_0p0(NvParameterized::Traits* traits, void* buf, int32_t* refCount) : + NvParameters(traits, buf, refCount) +{ + //mParameterizedTraits->registerFactory(className(), &VertexFormatParameters_0p0FactoryInst); + + if (!buf) //Do not init data if it is inplace-deserialized + { + initDynamicArrays(); + initStrings(); + initReferences(); + initDefaults(); + } +} + +VertexFormatParameters_0p0::~VertexFormatParameters_0p0() +{ + freeStrings(); + freeReferences(); + freeDynamicArrays(); +} + +void VertexFormatParameters_0p0::destroy() +{ + // We cache these fields here to avoid overwrite in destructor + bool doDeallocateSelf = mDoDeallocateSelf; + NvParameterized::Traits* traits = mParameterizedTraits; + int32_t* refCount = mRefCount; + void* buf = mBuffer; + + this->~VertexFormatParameters_0p0(); + + NvParameters::destroy(this, traits, doDeallocateSelf, refCount, buf); +} + +const NvParameterized::DefinitionImpl* VertexFormatParameters_0p0::getParameterDefinitionTree(void) +{ + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +const NvParameterized::DefinitionImpl* VertexFormatParameters_0p0::getParameterDefinitionTree(void) const +{ + VertexFormatParameters_0p0* tmpParam = const_cast(this); + + if (!mBuiltFlag) // Double-checked lock + { + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + if (!mBuiltFlag) + { + tmpParam->buildTree(); + } + } + + return(&ParamDefTable[0]); +} + +NvParameterized::ErrorType VertexFormatParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) const +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +NvParameterized::ErrorType VertexFormatParameters_0p0::getParameterHandle(const char* long_name, Handle& handle) +{ + ErrorType Ret = NvParameters::getParameterHandle(long_name, handle); + if (Ret != ERROR_NONE) + { + return(Ret); + } + + size_t offset; + void* ptr; + + getVarPtr(handle, ptr, offset); + + if (ptr == NULL) + { + return(ERROR_INDEX_OUT_OF_RANGE); + } + + return(ERROR_NONE); +} + +void VertexFormatParameters_0p0::getVarPtr(const Handle& handle, void*& ptr, size_t& offset) const +{ + ptr = getVarPtrHelper(&ParamLookupTable[0], const_cast(¶meters()), handle, offset); +} + + +/* Dynamic Handle Indices */ +/* [1,0] - bufferFormats.name */ + +void VertexFormatParameters_0p0::freeParameterDefinitionTable(NvParameterized::Traits* traits) +{ + if (!traits) + { + return; + } + + if (!mBuiltFlag) // Double-checked lock + { + return; + } + + NvParameterized::MutexType::ScopedLock lock(mBuiltFlagMutex); + + if (!mBuiltFlag) + { + return; + } + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + ParamDefTable[i].~DefinitionImpl(); + } + + traits->free(ParamDefTable); + + mBuiltFlag = false; +} + +#define PDEF_PTR(index) (&ParamDefTable[index]) + +void VertexFormatParameters_0p0::buildTree(void) +{ + + uint32_t allocSize = sizeof(NvParameterized::DefinitionImpl) * NumParamDefs; + ParamDefTable = (NvParameterized::DefinitionImpl*)(mParameterizedTraits->alloc(allocSize)); + memset(ParamDefTable, 0, allocSize); + + for (uint32_t i = 0; i < NumParamDefs; ++i) + { + NV_PARAM_PLACEMENT_NEW(ParamDefTable + i, NvParameterized::DefinitionImpl)(*mParameterizedTraits); + } + + // Initialize DefinitionImpl node: nodeIndex=0, longName="" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[0]; + ParamDef->init("", TYPE_STRUCT, "STRUCT", true); + + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=1, longName="winding" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[1]; + ParamDef->init("winding", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This value defines which vertex winding orders will be rendered. See RenderCullMode.", true); + HintTable[1].init("shortDescription", "Vertex orders to be rendered", true); + ParamDefTable[1].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=2, longName="hasSeparateBoneBuffer" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[2]; + ParamDef->init("hasSeparateBoneBuffer", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Whether or not there exists a separate bone buffer.", true); + HintTable[1].init("shortDescription", "Whether or not there exists a separate bone buffer", true); + ParamDefTable[2].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=3, longName="bufferFormats" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[3]; + ParamDef->init("bufferFormats", TYPE_ARRAY, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); + HintTable[1].init("shortDescription", "Format of all buffers.", true); + ParamDefTable[3].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + ParamDef->setArraySize(-1); + static const uint8_t dynHandleIndices[2] = { 1, 0, }; + ParamDef->setDynamicHandleIndicesMap(dynHandleIndices, 2); + + } + + // Initialize DefinitionImpl node: nodeIndex=4, longName="bufferFormats[]" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[4]; + ParamDef->init("bufferFormats", TYPE_STRUCT, "BufferFormat", true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This includes Semantics/Names and Vertex Format for each buffer.", true); + HintTable[1].init("shortDescription", "Format of all buffers.", true); + ParamDefTable[4].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=5, longName="bufferFormats[].name" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[5]; + ParamDef->init("name", TYPE_STRING, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "Name by which this buffer is referenced, for custom semantics. For standard semantics, VertexFormat::getSemanticName() is used", true); + HintTable[1].init("shortDescription", "Name by which this buffer is referenced", true); + ParamDefTable[5].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=6, longName="bufferFormats[].semantic" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[6]; + ParamDef->init("semantic", TYPE_I32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This buffer's semantic. If it's a custom buffer, it will be RenderVertexSemantic::CUSTOM.", true); + HintTable[1].init("shortDescription", "This buffer's semantic.", true); + ParamDefTable[6].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=7, longName="bufferFormats[].id" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[7]; + ParamDef->init("id", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This buffer's id. See VertexFormat::getSemanticID and VertexFormat::getID.", true); + HintTable[1].init("shortDescription", "This buffer's id.", true); + ParamDefTable[7].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=8, longName="bufferFormats[].format" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[8]; + ParamDef->init("format", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The format of this buffer. Must be one of the RenderDataFormat::Enum values.", true); + HintTable[1].init("shortDescription", "The format of this buffer", true); + ParamDefTable[8].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=9, longName="bufferFormats[].access" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[9]; + ParamDef->init("access", TYPE_U32, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "The access type for this buffer. Must be one of the VertexDataAccess::Enum values.", true); + HintTable[1].init("shortDescription", "The access type for this buffer", true); + ParamDefTable[9].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // Initialize DefinitionImpl node: nodeIndex=10, longName="bufferFormats[].serialize" + { + NvParameterized::DefinitionImpl* ParamDef = &ParamDefTable[10]; + ParamDef->init("serialize", TYPE_BOOL, NULL, true); + +#ifdef NV_PARAMETERIZED_HIDE_DESCRIPTIONS + +#else + + static HintImpl HintTable[2]; + static Hint* HintPtrTable[2] = { &HintTable[0], &HintTable[1], }; + HintTable[0].init("longDescription", "This is only needed if this buffer needs to be rendered, clothing custom buffer MAX_DISTANCE for example doesn't need it.", true); + HintTable[1].init("shortDescription", "Serialize this buffer", true); + ParamDefTable[10].setHints((const NvParameterized::Hint**)HintPtrTable, 2); + +#endif /* NV_PARAMETERIZED_HIDE_DESCRIPTIONS */ + + + + + + } + + // SetChildren for: nodeIndex=0, longName="" + { + static Definition* Children[3]; + Children[0] = PDEF_PTR(1); + Children[1] = PDEF_PTR(2); + Children[2] = PDEF_PTR(3); + + ParamDefTable[0].setChildren(Children, 3); + } + + // SetChildren for: nodeIndex=3, longName="bufferFormats" + { + static Definition* Children[1]; + Children[0] = PDEF_PTR(4); + + ParamDefTable[3].setChildren(Children, 1); + } + + // SetChildren for: nodeIndex=4, longName="bufferFormats[]" + { + static Definition* Children[6]; + Children[0] = PDEF_PTR(5); + Children[1] = PDEF_PTR(6); + Children[2] = PDEF_PTR(7); + Children[3] = PDEF_PTR(8); + Children[4] = PDEF_PTR(9); + Children[5] = PDEF_PTR(10); + + ParamDefTable[4].setChildren(Children, 6); + } + + mBuiltFlag = true; + +} +void VertexFormatParameters_0p0::initStrings(void) +{ +} + +void VertexFormatParameters_0p0::initDynamicArrays(void) +{ + bufferFormats.buf = NULL; + bufferFormats.isAllocated = true; + bufferFormats.elementSize = sizeof(BufferFormat_Type); + bufferFormats.arraySizes[0] = 0; +} + +void VertexFormatParameters_0p0::initDefaults(void) +{ + + freeStrings(); + freeReferences(); + freeDynamicArrays(); + winding = uint32_t(0); + hasSeparateBoneBuffer = bool(false); + + initDynamicArrays(); + initStrings(); + initReferences(); +} + +void VertexFormatParameters_0p0::initReferences(void) +{ +} + +void VertexFormatParameters_0p0::freeDynamicArrays(void) +{ + if (bufferFormats.isAllocated && bufferFormats.buf) + { + mParameterizedTraits->free(bufferFormats.buf); + } +} + +void VertexFormatParameters_0p0::freeStrings(void) +{ + + for (int i = 0; i < bufferFormats.arraySizes[0]; ++i) + { + if (bufferFormats.buf[i].name.isAllocated && bufferFormats.buf[i].name.buf) + { + mParameterizedTraits->strfree((char*)bufferFormats.buf[i].name.buf); + } + } +} + +void VertexFormatParameters_0p0::freeReferences(void) +{ +} + +} // namespace parameterized +} // namespace nvidia diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.h b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.h old mode 100644 new mode 100755 index 1492f92..780035a --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.h +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.h @@ -1,335 +1,335 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef NV_PARAM_UTILS_H -#define NV_PARAM_UTILS_H - -#include "NvParameterized.h" - -// utility methods to operate on NvParameterized data. - -namespace NvParameterized -{ - -/** -\brief Recursively finds a parameter with the given name - -This method will recursively search through not only this parameterized but all referenced -parameterized objects as well. It sets the handle and returns the NvParameterized::Interface in which the name was found. - -\param i the parameterized object that will be searched - -\param longName contains the name of the parameter to be found -the longName will work with arrays, structs, and included references - -\param outHandle will contain the output handle that provides read-only access to the specified parameter - -\returns the NvParameterized::Interface pointer in which the parameter is contained (this could be different than the top level NvParameterized::Interface if the parameter is contained in an included reference) -*/ -PX_INLINE const Interface * findParam(const Interface &i,const char *longName, Handle &outHandle); - - -/** -\brief Recursively finds a parameter with the given name - -This method will recursively search through not only this parameterized but all referenced -parameterized objects as well. It sets the handle and returns the NvParameterized::Interface in which the name was found. - -\param i the parameterized object that will be searched - -\param longName contains the name of the parameter to be found -the longName will work with arrays, structs, and included references - -\param outHandle will contain the output handle that provides read-write access to the specified parameter - -\returns the NvParameterized::Interface pointer in which the parameter is contained (this could be different than the top level NvParameterized::Interface if the parameter is contained in an included reference) -*/ -PX_INLINE Interface * findParam(Interface &i,const char *longName, Handle &outHandle); - -/** -\brief Container for results of getParamList -*/ -struct ParamResult -{ -public: - /** - \brief Constructor - */ - ParamResult(const char *name, - const char *longName, - const char *className, - const char *instanceName, - const Handle &handle, - int32_t arraySize, - DataType type) - : mArraySize(arraySize), - mInstanceName(instanceName), - mClassName(className), - mName(name), - mLongName(longName), - mHandle(handle), - mDataType(type) - {} - - /** - \brief size of array (if parameter is array) - */ - int32_t mArraySize; - - /** - \brief Name of parameter's parent object - */ - const char *mInstanceName; - - /** - \brief Name of NvParameterized-class of parameter's parent object - */ - const char *mClassName; - - /** - \brief The name of the parameter - */ - const char *mName; - - /** - \brief The fully qualified 'long' name of the parameter - */ - const char *mLongName; - - /** - \brief Use this handle to access the parameter in question - */ - Handle mHandle; - - /** - \brief The type of parameter - */ - DataType mDataType; -}; - -/** -\brief A helper method to retrieve the list of all parameters relative to an interface. - -\param [in] i the input interface -\param [in] className is an optional class name to match to. If this is null, it will return all parameters. -\param [in] paramName is an optional parameter name to match to. If this is null, it will return all parameters. -\param [out] count the number of parameters found -\param [in] recursive if true the search will recurse into every included reference, not just the top parameterized class -\param [in] classesOnly if true the search will only match against class names -\param [in] traits typically the APEX traits class, used to allocate the ParamResult, see ApexSDK::getParameterizedTraits() - -\note The return pointer is allocated by the NvParameterized Traits class and should be freed by calling releaseParamList() - -*/ -PX_INLINE const ParamResult * getParamList(const Interface &i, - const char *className, // name of class to match - const char *paramName, // name of parameter to match - uint32_t &count, - bool recursive, - bool classesOnly, - NvParameterized::Traits *traits); - -/// helper function to free the parameter list returned from getParamList -PX_INLINE void releaseParamList(uint32_t resultCount,const ParamResult *results,NvParameterized::Traits *traits); - -/// helper function to get an NvParameterized array size -PX_INLINE bool getParamArraySize(const Interface &pm, const char *name, int32_t &arraySize); - -/// helper function to resize an NvParameterized array -PX_INLINE bool resizeParamArray(Interface &pm, const char *name, int32_t newSize); - -/** -\brief Callback container for getNamedReferences -*/ -class NamedReferenceInterface -{ -public: - /** - \brief Destructor - */ - virtual ~NamedReferenceInterface() {} - /** - \brief Callback - - Calls back to the user with any named reference (not included references) in the NvParameterized::Interface - If the user returns a NULL pointer, than the original named reference is left alone. - If the user returns a non-NULL pointer, than the named reference is replaced with the 'const char *' returned. - */ - virtual const char * namedReferenceCallback(const char *className,const char *namedReference,Handle &handle) = 0; -}; - -/// Calls back for every non-included named reference. -PX_INLINE uint32_t getNamedReferences(const Interface &i, - NamedReferenceInterface &namedReference, - bool recursive); - -/** -\brief Callback container for getReferences -*/ -class ReferenceInterface -{ -public: - /** - \brief Destructor - */ - virtual ~ReferenceInterface() {} - /** - \brief Callback - - Calls back to the user with any reference (named or included or both) in the NvParameterized::Interface. - */ - virtual void referenceCallback(Handle &handle) = 0; -}; - -/// Calls back for every reference (named or included or both). -PX_INLINE void getReferences(const Interface &iface, - ReferenceInterface &cb, - bool named, - bool included, - bool recursive); - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamBool(const Interface &pm, const char *name, bool &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamBool(Interface &pm, const char *name, bool val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamString(const Interface &pm, const char *name, const char *&val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamString(Interface &pm, const char *name, const char *val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamEnum(const Interface &pm, const char *name, const char *&val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamEnum(Interface &pm, const char *name, const char *val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamRef(const Interface &pm, const char *name, NvParameterized::Interface *&val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamRef(Interface &pm, const char *name, NvParameterized::Interface *val, bool doDestroyOld = false) ; - -/// helper function to init an NvParameterized value -PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, bool doDestroyOld = false); -/// helper function to init an NvParameterized value -PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, const char *objName, bool doDestroyOld = false); - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamI8(const Interface &pm, const char *name, int8_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamI8(Interface &pm, const char *name, int8_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamI16(const Interface &pm, const char *name, int16_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamI16(Interface &pm, const char *name, int16_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamI32(const Interface &pm, const char *name, int32_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamI32(Interface &pm, const char *name, int32_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamI64(const Interface &pm, const char *name, int64_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamI64(Interface &pm, const char *name, int64_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamU8(const Interface &pm, const char *name, uint8_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamU8(Interface &pm, const char *name, uint8_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamU16(const Interface &pm, const char *name, uint16_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamU16(Interface &pm, const char *name, uint16_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamU32(const Interface &pm, const char *name, uint32_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamU32(Interface &pm, const char *name, uint32_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamU64(const Interface &pm, const char *name, uint64_t &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamU64(Interface &pm, const char *name, uint64_t val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamF32(const Interface &pm, const char *name, float &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamF32(Interface &pm, const char *name, float val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamF64(const Interface &pm, const char *name, double &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamF64(Interface &pm, const char *name, double val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamVec2(const Interface &pm, const char *name, physx::PxVec2 &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamVec2(Interface &pm, const char *name, const physx::PxVec2 &val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamVec3(const Interface &pm, const char *name, physx::PxVec3 &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamVec3(Interface &pm, const char *name, const physx::PxVec3 &val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamVec4(const Interface &pm, const char *name, physx::PxVec4 &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamVec4(Interface &pm, const char *name, const physx::PxVec4 &val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamQuat(const Interface &pm, const char *name, physx::PxQuat &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamQuat(Interface &pm, const char *name, const physx::PxQuat &val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamMat33(const Interface &pm, const char *name, physx::PxMat33 &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamMat33(Interface &pm, const char *name, const physx::PxMat33 &val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamMat44(const Interface &pm, const char *name, physx::PxMat44 &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamMat44(Interface &pm, const char *name, const physx::PxMat44 &val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamBounds3(const Interface &pm, const char *name, physx::PxBounds3 &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamBounds3(Interface &pm, const char *name, const physx::PxBounds3 &val) ; - -/// helper function to get an NvParameterized value -PX_INLINE bool getParamTransform(const Interface &pm, const char *name, physx::PxTransform &val); -/// helper function to set an NvParameterized value -PX_INLINE bool setParamTransform(Interface &pm, const char *name, const physx::PxTransform &val) ; - -} // namespace NvParameterized - - -#include "NvParamUtils.inl" - -#endif // NV_PARAM_UTILS_H +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef NV_PARAM_UTILS_H +#define NV_PARAM_UTILS_H + +#include "NvParameterized.h" + +// utility methods to operate on NvParameterized data. + +namespace NvParameterized +{ + +/** +\brief Recursively finds a parameter with the given name + +This method will recursively search through not only this parameterized but all referenced +parameterized objects as well. It sets the handle and returns the NvParameterized::Interface in which the name was found. + +\param i the parameterized object that will be searched + +\param longName contains the name of the parameter to be found +the longName will work with arrays, structs, and included references + +\param outHandle will contain the output handle that provides read-only access to the specified parameter + +\returns the NvParameterized::Interface pointer in which the parameter is contained (this could be different than the top level NvParameterized::Interface if the parameter is contained in an included reference) +*/ +PX_INLINE const Interface * findParam(const Interface &i,const char *longName, Handle &outHandle); + + +/** +\brief Recursively finds a parameter with the given name + +This method will recursively search through not only this parameterized but all referenced +parameterized objects as well. It sets the handle and returns the NvParameterized::Interface in which the name was found. + +\param i the parameterized object that will be searched + +\param longName contains the name of the parameter to be found +the longName will work with arrays, structs, and included references + +\param outHandle will contain the output handle that provides read-write access to the specified parameter + +\returns the NvParameterized::Interface pointer in which the parameter is contained (this could be different than the top level NvParameterized::Interface if the parameter is contained in an included reference) +*/ +PX_INLINE Interface * findParam(Interface &i,const char *longName, Handle &outHandle); + +/** +\brief Container for results of getParamList +*/ +struct ParamResult +{ +public: + /** + \brief Constructor + */ + ParamResult(const char *name, + const char *longName, + const char *className, + const char *instanceName, + const Handle &handle, + int32_t arraySize, + DataType type) + : mArraySize(arraySize), + mInstanceName(instanceName), + mClassName(className), + mName(name), + mLongName(longName), + mHandle(handle), + mDataType(type) + {} + + /** + \brief size of array (if parameter is array) + */ + int32_t mArraySize; + + /** + \brief Name of parameter's parent object + */ + const char *mInstanceName; + + /** + \brief Name of NvParameterized-class of parameter's parent object + */ + const char *mClassName; + + /** + \brief The name of the parameter + */ + const char *mName; + + /** + \brief The fully qualified 'long' name of the parameter + */ + const char *mLongName; + + /** + \brief Use this handle to access the parameter in question + */ + Handle mHandle; + + /** + \brief The type of parameter + */ + DataType mDataType; +}; + +/** +\brief A helper method to retrieve the list of all parameters relative to an interface. + +\param [in] i the input interface +\param [in] className is an optional class name to match to. If this is null, it will return all parameters. +\param [in] paramName is an optional parameter name to match to. If this is null, it will return all parameters. +\param [out] count the number of parameters found +\param [in] recursive if true the search will recurse into every included reference, not just the top parameterized class +\param [in] classesOnly if true the search will only match against class names +\param [in] traits typically the APEX traits class, used to allocate the ParamResult, see ApexSDK::getParameterizedTraits() + +\note The return pointer is allocated by the NvParameterized Traits class and should be freed by calling releaseParamList() + +*/ +PX_INLINE const ParamResult * getParamList(const Interface &i, + const char *className, // name of class to match + const char *paramName, // name of parameter to match + uint32_t &count, + bool recursive, + bool classesOnly, + NvParameterized::Traits *traits); + +/// helper function to free the parameter list returned from getParamList +PX_INLINE void releaseParamList(uint32_t resultCount,const ParamResult *results,NvParameterized::Traits *traits); + +/// helper function to get an NvParameterized array size +PX_INLINE bool getParamArraySize(const Interface &pm, const char *name, int32_t &arraySize); + +/// helper function to resize an NvParameterized array +PX_INLINE bool resizeParamArray(Interface &pm, const char *name, int32_t newSize); + +/** +\brief Callback container for getNamedReferences +*/ +class NamedReferenceInterface +{ +public: + /** + \brief Destructor + */ + virtual ~NamedReferenceInterface() {} + /** + \brief Callback + + Calls back to the user with any named reference (not included references) in the NvParameterized::Interface + If the user returns a NULL pointer, than the original named reference is left alone. + If the user returns a non-NULL pointer, than the named reference is replaced with the 'const char *' returned. + */ + virtual const char * namedReferenceCallback(const char *className,const char *namedReference,Handle &handle) = 0; +}; + +/// Calls back for every non-included named reference. +PX_INLINE uint32_t getNamedReferences(const Interface &i, + NamedReferenceInterface &namedReference, + bool recursive); + +/** +\brief Callback container for getReferences +*/ +class ReferenceInterface +{ +public: + /** + \brief Destructor + */ + virtual ~ReferenceInterface() {} + /** + \brief Callback + + Calls back to the user with any reference (named or included or both) in the NvParameterized::Interface. + */ + virtual void referenceCallback(Handle &handle) = 0; +}; + +/// Calls back for every reference (named or included or both). +PX_INLINE void getReferences(const Interface &iface, + ReferenceInterface &cb, + bool named, + bool included, + bool recursive); + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamBool(const Interface &pm, const char *name, bool &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamBool(Interface &pm, const char *name, bool val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamString(const Interface &pm, const char *name, const char *&val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamString(Interface &pm, const char *name, const char *val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamEnum(const Interface &pm, const char *name, const char *&val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamEnum(Interface &pm, const char *name, const char *val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamRef(const Interface &pm, const char *name, NvParameterized::Interface *&val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamRef(Interface &pm, const char *name, NvParameterized::Interface *val, bool doDestroyOld = false) ; + +/// helper function to init an NvParameterized value +PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, bool doDestroyOld = false); +/// helper function to init an NvParameterized value +PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, const char *objName, bool doDestroyOld = false); + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamI8(const Interface &pm, const char *name, int8_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamI8(Interface &pm, const char *name, int8_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamI16(const Interface &pm, const char *name, int16_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamI16(Interface &pm, const char *name, int16_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamI32(const Interface &pm, const char *name, int32_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamI32(Interface &pm, const char *name, int32_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamI64(const Interface &pm, const char *name, int64_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamI64(Interface &pm, const char *name, int64_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamU8(const Interface &pm, const char *name, uint8_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamU8(Interface &pm, const char *name, uint8_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamU16(const Interface &pm, const char *name, uint16_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamU16(Interface &pm, const char *name, uint16_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamU32(const Interface &pm, const char *name, uint32_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamU32(Interface &pm, const char *name, uint32_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamU64(const Interface &pm, const char *name, uint64_t &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamU64(Interface &pm, const char *name, uint64_t val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamF32(const Interface &pm, const char *name, float &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamF32(Interface &pm, const char *name, float val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamF64(const Interface &pm, const char *name, double &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamF64(Interface &pm, const char *name, double val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamVec2(const Interface &pm, const char *name, physx::PxVec2 &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamVec2(Interface &pm, const char *name, const physx::PxVec2 &val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamVec3(const Interface &pm, const char *name, physx::PxVec3 &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamVec3(Interface &pm, const char *name, const physx::PxVec3 &val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamVec4(const Interface &pm, const char *name, physx::PxVec4 &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamVec4(Interface &pm, const char *name, const physx::PxVec4 &val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamQuat(const Interface &pm, const char *name, physx::PxQuat &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamQuat(Interface &pm, const char *name, const physx::PxQuat &val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamMat33(const Interface &pm, const char *name, physx::PxMat33 &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamMat33(Interface &pm, const char *name, const physx::PxMat33 &val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamMat44(const Interface &pm, const char *name, physx::PxMat44 &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamMat44(Interface &pm, const char *name, const physx::PxMat44 &val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamBounds3(const Interface &pm, const char *name, physx::PxBounds3 &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamBounds3(Interface &pm, const char *name, const physx::PxBounds3 &val) ; + +/// helper function to get an NvParameterized value +PX_INLINE bool getParamTransform(const Interface &pm, const char *name, physx::PxTransform &val); +/// helper function to set an NvParameterized value +PX_INLINE bool setParamTransform(Interface &pm, const char *name, const physx::PxTransform &val) ; + +} // namespace NvParameterized + + +#include "NvParamUtils.inl" + +#endif // NV_PARAM_UTILS_H diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.inl b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.inl old mode 100644 new mode 100755 index cb82f8b..b27b9c9 --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.inl +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParamUtils.inl @@ -1,1367 +1,1367 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. -#include "NvParameterized.h" -#include "NvParameterizedTraits.h" - -namespace NvParameterized -{ - -#if PX_VC && !PX_PS4 - #pragma warning(push) - #pragma warning(disable: 4996) -#endif //!PX_PS4 - -#define MAX_SEARCH_NAME 1024 -#define MAX_SEARCH_NAMES 32 - -/// local_strcmp -int32_t local_strcmp(const char* s1, const char* s2); -/// local_stricmp -int32_t local_stricmp(const char* s1, const char* s2); - -/// Finds parameter in NvParameterized -struct ParameterFind -{ - /// Contructor - ParameterFind(const NvParameterized::Interface &iface) : mNameIndex(0), mNameCount(0), mResult(iface), mInterface(NULL), mError(false) - { - - } - - /// isDigit - bool isDigit(char c) const - { - return (c>='0' && c <='9'); - } - - /// setSearchName - bool setSearchName(const char *str) - { - bool ret = true; - - mNameIndex = 0; - mNameCount = 0; - mInterface = 0; - mError = false; - char *dest = mSearchName; - char *stop = &mSearchName[MAX_SEARCH_NAME-1]; - - char *head = mSearchName; - mArrayIndex[0] = -1; - - while ( *str && dest < stop ) - { - if ( *str == '[' ) - { - *dest++ = 0; - str++; - if ( isDigit(*str) ) - { - int32_t v = 0; - while ( isDigit(*str) ) - { - int32_t iv = *str-'0'; - v = v*10+iv; - str++; - } - if ( *str == ']' ) - { - mArrayIndex[mNameCount] = v; - } - else - { - ret = false; - break; - } - } - else - { - ret = false; - break; - } - } - else - { - if ( *str == '.' ) - { - if ( mNameCount < MAX_SEARCH_NAMES ) - { - mSearchNames[mNameCount] = head; - mNameCount++; - if ( mNameCount < MAX_SEARCH_NAMES ) - { - mArrayIndex[mNameCount] = -1; - } - *dest++ = 0; - str++; - head = dest; - } - else - { - ret = false; - break; - } - } - else - { - *dest++ = *str++; - } - } - } - - *dest = 0; - - if ( head && *head ) - { - if ( mNameCount < MAX_SEARCH_NAMES ) - { - mSearchNames[mNameCount] = head; - mNameCount++; - *dest++ = 0; - str++; - head = dest; - } - else - { - ret = false; - } - } - - return ret; - } - - /// done - bool done(void) const - { - bool ret = false; - if ( mInterface || mError ) ret = true; - return ret; - } - - /// getArrayIndex - int32_t getArrayIndex(void) - { - return mArrayIndex[mNameIndex]; - } - - /// nameMatch - bool nameMatch(const char *longName) const - { - bool ret = true; - - if (longName && strlen(longName)) - { -#if PX_GCC || PX_LINUX || PX_PS4 || PX_ANDROID || PX_OSX || PX_CLANG - if ( local_stricmp(longName,mSearchNames[mNameIndex]) == 0 ) -#else -#pragma warning(push) -#pragma warning(disable: 4996) - - if ( _stricmp(longName,mSearchNames[mNameIndex]) == 0 ) - -#pragma warning(pop) -#endif - { - ret = true; - } - else - { - ret = false; - } - } - - return ret; - } - - /// isCompleete - bool isComplete(void) const - { - return (mNameIndex+1) == mNameCount; - } - - /// pushNameMatch - bool pushNameMatch(void) - { - bool ret = false; - - if ( (mNameIndex+1) < mNameCount ) - { - mNameIndex++; - ret = true; - } - return ret; - } - - /// popNameMatch - void popNameMatch(void) - { - if ( mNameIndex ) - { - mNameIndex--; - } - } - - uint32_t mNameIndex; ///< mNameIndex - uint32_t mNameCount; ///< mNameCount - Handle mResult; ///< mResult - const NvParameterized::Interface *mInterface; ///< mInterface - bool mError; ///< mError; - char mSearchName[MAX_SEARCH_NAME]; ///< mSearchName - char *mSearchNames[MAX_SEARCH_NAMES]; ///< mSearchNames - int32_t mArrayIndex[MAX_SEARCH_NAMES]; ///< mArrayIndex -}; - -/// findParameter -PX_INLINE void findParameter(const NvParameterized::Interface &obj, - Handle &handle, - ParameterFind &pf, - bool fromArray=false) -{ - if ( pf.done() ) return; - - if ( handle.numIndexes() < 1 ) - { - obj.getParameterHandle("",handle); - } - - const Definition *pd = handle.parameterDefinition(); - const char *name = pd->name(); - DataType t = pd->type(); - - if ( fromArray || pf.nameMatch(name) ) - { - NvParameterized::Interface *paramPtr = 0; - if ( t == TYPE_REF ) - { - handle.getParamRef(paramPtr); - if ( paramPtr ) - { - if ( pf.pushNameMatch() ) - { - Handle newHandle(*paramPtr, ""); - findParameter(*paramPtr,newHandle,pf); - pf.popNameMatch(); - } - } - if ( pf.isComplete() ) - { - pf.mInterface = &obj; - pf.mResult = handle; - } - } - if ( t == TYPE_STRUCT ) - { - bool pushed = false; - if ( strlen(name) ) - { - pf.pushNameMatch(); - pushed = true; - } - int32_t count = pd->numChildren(); - for (int32_t i=0; i= 0 && arrayIndex < arraySize ) - { - handle.set(arrayIndex); - if ( pf.isComplete() ) - { - pf.mInterface = &obj; - pf.mResult = handle; - } - else - { - findParameter(obj,handle,pf,true); - } - handle.popIndex(); - } - else - { - - pf.mError = true; - } - } - else if ( pf.isComplete() ) - { - pf.mInterface = &obj; - pf.mResult = handle; - } - } -} - -PX_INLINE const Interface *findParam(const Interface &i,const char *long_name, Handle &result) -{ - const Interface *ret = 0; - result.setInterface((const NvParameterized::Interface *)0); - - ParameterFind pf(i); - if ( pf.setSearchName(long_name) ) - { - Handle handle(i); - findParameter(i,handle,pf); - result = pf.mResult; - ret = pf.mInterface; - } - return ret; -} - -PX_INLINE Interface *findParam(Interface &i,const char *long_name, Handle &result) -{ - Interface *ret = const_cast( - findParam(const_cast(i),long_name,result)); - result.setInterface(ret); // Give write access to handle - return ret; -} - -/// Parameter list -struct ParameterList -{ - /// Constructor - ParameterList(const NvParameterized::Interface &iface,const char *className,const char *paramName,bool recursive,bool classesOnly,NvParameterized::Traits *traits) - : mNameIndex(0), - mResult(iface), - mInterface(NULL), - mClassName(className), - mParamName(paramName), - mRecursive(recursive), - mClassesOnly(classesOnly), - mTraits(traits), - mResultCount(0), - mMaxResults(0), - mResults(NULL) - { - - } - - ~ParameterList(void) - { - } - - /// nameMatch - bool nameMatch(const Interface *iface,const char * name,int32_t arrayIndex,DataType type,Handle &handle) - { - size_t slen = strlen(name); - - if ( mClassesOnly ) - { - if ( slen > 0 ) return true; - } - else - { - if ( slen == 0 ) return true; - } - - bool match = true; - if ( mClassName ) - { - const char *cname = iface->className(); - if ( local_strcmp(cname,mClassName) != 0 || strlen(name) ) - { - match = false; - } - } - if ( mParamName ) // if we specified a parameter name, than only include exact matches of this parameter name. - { - if (local_strcmp(mParamName,name) != 0 ) - { - match = false; - } - - } - if ( match ) - { - // ok..let's build the long name... - const char *longName = NULL; - char scratch[1024]; - scratch[0] = 0; - - if ( slen > 0 ) - { - - for (uint32_t i=0; i 0 ) - { - char arrayIndexStr[32]; - arrayIndexStr[0] = 0; - local_strcat_s(arrayIndexStr, sizeof(arrayIndexStr), "[0]"); - //sprintf_s(arrayIndexStr, sizeof(arrayIndexStr), "[%d]", 0); //mArrayIndex[i]); - local_strcat_s(scratch, sizeof(scratch), arrayIndexStr); - } - local_strcat_s(scratch, sizeof(scratch),"."); - } - - local_strcat_s(scratch, sizeof(scratch),name); - uint32_t len = (uint32_t)strlen(scratch); - char *temp = (char *)mTraits->alloc(len+1); - temp[0] = 0; - local_strcat_s(temp, len+1, scratch); - longName = temp; - if ( type == TYPE_ARRAY ) - { - handle.getArraySize(arrayIndex); - } - } - - ParamResult pr(name,longName,iface->className(),iface->name(), handle, arrayIndex, type ); - - if ( mResultCount >= mMaxResults ) - { - mMaxResults = mMaxResults ? mMaxResults*2 : 32; - ParamResult *results = (ParamResult *)mTraits->alloc(sizeof(ParamResult)*mMaxResults); - if ( mResults ) - { - for (uint32_t i=0; iname(); - DataType t = pd->type(); - - if ( pf.nameMatch(&obj,name,parentArraySize,t,handle) ) - { - NvParameterized::Interface *paramPtr = 0; - if ( t == TYPE_REF ) - { - handle.getParamRef(paramPtr); - } - if ( t == TYPE_STRUCT ) - { - bool pushed=false; - if ( strlen(name) ) - { - pf.pushName(name,parentArraySize); - pushed = true; - } - int32_t count = pd->numChildren(); - for (int32_t i=0; i 0 ) - { - for (int32_t i=0; itype(); - handle.popIndex(); - if ( !(elemType == TYPE_STRUCT || elemType == TYPE_ARRAY || elemType == TYPE_REF) ) - { - break; - } - } - } - } - else if ( t == TYPE_REF && pf.isRecursive() ) - { - if ( paramPtr && pd->isIncludedRef() ) - { - if ( pf.pushName(name,parentArraySize) ) - { - Handle newHandle(*paramPtr, ""); - listParameters(*paramPtr,newHandle,pf,0); - pf.popNameMatch(); - } - } - } - } -} - - -/** -\brief Gets every parameter in an NvParameterized Interface class -\note The return pointer is allocated by the NvParameterized Traits class and should be freed by calling releaseParamList -*/ -PX_INLINE const ParamResult * getParamList(const Interface &i,const char *className,const char *paramName,uint32_t &count,bool recursive,bool classesOnly,NvParameterized::Traits *traits) -{ - - PX_UNUSED(className); - - ParameterList pl(i,className,paramName,recursive,classesOnly,traits); - - Handle handle(i); - listParameters(i,handle,pl,0); - - count = pl.getResultCount(); - - return pl.getResults(); -} - -PX_INLINE void releaseParamList(uint32_t resultCount,const ParamResult *results,NvParameterized::Traits *traits) -{ - if ( results ) - { - for (uint32_t i=0; ifree( (void *)r.mLongName ); - } - } - traits->free((void *)results); - } -} - -/// Calls back for every reference. -PX_INLINE void getReferences(const Interface &iface, - Handle &handle, - ReferenceInterface &cb, - bool named, - bool included, - bool recursive) -{ - if ( handle.numIndexes() < 1 ) - iface.getParameterHandle("",handle); - - NvParameterized::Interface *paramPtr = 0; - - const Definition *pd = handle.parameterDefinition(); - switch( pd->type() ) - { - case TYPE_REF: - handle.getParamRef(paramPtr); - if ( !paramPtr ) - break; - - if ( !pd->isIncludedRef() ) - { - if( named ) - cb.referenceCallback(handle); - } - else - { - if( included ) - cb.referenceCallback(handle); - - if ( recursive ) - { - Handle newHandle(*paramPtr, ""); - getReferences(*paramPtr,newHandle,cb,named,included,recursive); - } - } - break; - - case TYPE_STRUCT: - { - int32_t count = pd->numChildren(); - for (int32_t i=0; ichild(0); - bool scan = elemPd->type() == TYPE_ARRAY || elemPd->type() == TYPE_REF || elemPd->type() == TYPE_STRUCT; - - if ( scan ) - { - for (int32_t i=0; i void operator =(T) {} - void operator =(WrappedNamedReference) {} -public: - - /// refCount - uint32_t refCount; - - virtual ~WrappedNamedReference() {} - - /// Constructor - WrappedNamedReference(NamedReferenceInterface &wrappedReference_): wrappedReference(wrappedReference_), refCount(0) {} - - /// referenceCallback - void referenceCallback(Handle &handle) - { - Interface *iface; - handle.getParamRef(iface); - const char *name = wrappedReference.namedReferenceCallback(iface->className(), iface->name(), handle); - if( name ) - { - iface->setName(name); - ++refCount; - } - } -}; - -PX_INLINE uint32_t getNamedReferences(const Interface &i, - NamedReferenceInterface &namedReference, - bool recursive) -{ - WrappedNamedReference reference(namedReference); - getReferences(i, reference, true, false, recursive); - return reference.refCount; -} - - -PX_INLINE bool getParamBool(const Interface &pm, const char *name, bool &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamBool(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamBool(Interface &pm, const char *name, bool value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamBool(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// string -PX_INLINE bool getParamString(const Interface &pm, const char *name, const char *&value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamString(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamString(Interface &pm, const char *name, const char *value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamString(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// enum -PX_INLINE bool getParamEnum(const Interface &pm, const char *name, const char *&value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamEnum(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamEnum(Interface &pm, const char *name, const char *value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamEnum(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// reference -PX_INLINE bool getParamRef(const Interface &pm, const char *name, NvParameterized::Interface *&value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamRef(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamRef(Interface &pm, const char *name, NvParameterized::Interface *value, bool doDestroyOld) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamRef(value, doDestroyOld); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, bool doDestroyOld) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.initParamRef(className, doDestroyOld); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, const char *objName, bool doDestroyOld) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.initParamRef(className, doDestroyOld); - NvParameterized::Interface *ref; - handle.getParamRef(ref); - if (ref) - ref->setName(objName); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// I8 -PX_INLINE bool getParamI8(const Interface &pm, const char *name, int8_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamI8(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamI8(Interface &pm, const char *name, int8_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamI8(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// I16 -PX_INLINE bool getParamI16(const Interface &pm, const char *name, int16_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamI16(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamI16(Interface &pm, const char *name, int16_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamI16(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// I32 -PX_INLINE bool getParamI32(const Interface &pm, const char *name, int32_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamI32(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamI32(Interface &pm, const char *name, int32_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamI32(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// I64 -PX_INLINE bool getParamI64(const Interface &pm, const char *name, int64_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamI64(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamI64(Interface &pm, const char *name, int64_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamI64(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// U8 -PX_INLINE bool getParamU8(const Interface &pm, const char *name, uint8_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamU8(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamU8(Interface &pm, const char *name, uint8_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamU8(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// U16 -PX_INLINE bool getParamU16(const Interface &pm, const char *name, uint16_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamU16(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamU16(Interface &pm, const char *name, uint16_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamU16(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// U32 -PX_INLINE bool getParamU32(const Interface &pm, const char *name, uint32_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamU32(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamU32(Interface &pm, const char *name, uint32_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamU32(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// U64 -PX_INLINE bool getParamU64(const Interface &pm, const char *name, uint64_t &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamU64(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamU64(Interface &pm, const char *name, uint64_t value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamU64(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// F32 -PX_INLINE bool getParamF32(const Interface &pm, const char *name, float &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamF32(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamF32(Interface &pm, const char *name, float value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamF32(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// F64 -PX_INLINE bool getParamF64(const Interface &pm, const char *name, double &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamF64(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamF64(Interface &pm, const char *name, double value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamF64(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Vec2 -PX_INLINE bool getParamVec2(const Interface &pm, const char *name, physx::PxVec2 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamVec2(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamVec2(Interface &pm, const char *name, const physx::PxVec2 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamVec2(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Vec3 -PX_INLINE bool getParamVec3(const Interface &pm, const char *name, physx::PxVec3 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamVec3(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamVec3(Interface &pm, const char *name, const physx::PxVec3 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamVec3(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Vec4 -PX_INLINE bool getParamVec4(const Interface &pm, const char *name, physx::PxVec4 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamVec4(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamVec4(Interface &pm, const char *name, const physx::PxVec4 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamVec4(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Quat -PX_INLINE bool getParamQuat(const Interface &pm, const char *name, physx::PxQuat &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamQuat(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamQuat(Interface &pm, const char *name, const physx::PxQuat &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamQuat(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Bounds3 -PX_INLINE bool getParamBounds3(const Interface &pm, const char *name, physx::PxBounds3 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamBounds3(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamBounds3(Interface &pm, const char *name, const physx::PxBounds3 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamBounds3(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Mat33 -PX_INLINE bool getParamMat33(const Interface &pm, const char *name, physx::PxMat33 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamMat33(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamMat33(Interface &pm, const char *name, const physx::PxMat33 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamMat33(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Mat44 -PX_INLINE bool getParamMat44(const Interface &pm, const char *name, physx::PxMat44 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamMat44(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamMat44(Interface &pm, const char *name, const physx::PxMat44 &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.setParamMat44(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -// Transform -PX_INLINE bool getParamTransform(const Interface &pm, const char *name, physx::PxTransform &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getParamTransform(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool setParamTransform(Interface &pm, const char *name, const physx::PxTransform &value) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - handle.setInterface( iface ); // set mIsConst to false - ret = handle.setParamTransform(value); - } - return (ret == NvParameterized::ERROR_NONE); -} - - -PX_INLINE bool getParamArraySize(const Interface &pm, const char *name, int32_t &arraySize) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - const NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.getArraySize(arraySize); - } - return (ret == NvParameterized::ERROR_NONE); -} - -PX_INLINE bool resizeParamArray(Interface &pm, const char *name, int32_t newSize) -{ - ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; - NvParameterized::Handle handle(pm); - NvParameterized::Interface *iface = findParam(pm,name,handle); - if ( iface ) - { - ret = handle.resizeArray(newSize); - } - return (ret == NvParameterized::ERROR_NONE); -} - -#if PX_VC && !PX_PS4 - #pragma warning(pop) -#endif //!PX_PS4 - -} +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. +#include "NvParameterized.h" +#include "NvParameterizedTraits.h" + +namespace NvParameterized +{ + +#if PX_VC && !PX_PS4 + #pragma warning(push) + #pragma warning(disable: 4996) +#endif //!PX_PS4 + +#define MAX_SEARCH_NAME 1024 +#define MAX_SEARCH_NAMES 32 + +/// local_strcmp +int32_t local_strcmp(const char* s1, const char* s2); +/// local_stricmp +int32_t local_stricmp(const char* s1, const char* s2); + +/// Finds parameter in NvParameterized +struct ParameterFind +{ + /// Contructor + ParameterFind(const NvParameterized::Interface &iface) : mNameIndex(0), mNameCount(0), mResult(iface), mInterface(NULL), mError(false) + { + + } + + /// isDigit + bool isDigit(char c) const + { + return (c>='0' && c <='9'); + } + + /// setSearchName + bool setSearchName(const char *str) + { + bool ret = true; + + mNameIndex = 0; + mNameCount = 0; + mInterface = 0; + mError = false; + char *dest = mSearchName; + char *stop = &mSearchName[MAX_SEARCH_NAME-1]; + + char *head = mSearchName; + mArrayIndex[0] = -1; + + while ( *str && dest < stop ) + { + if ( *str == '[' ) + { + *dest++ = 0; + str++; + if ( isDigit(*str) ) + { + int32_t v = 0; + while ( isDigit(*str) ) + { + int32_t iv = *str-'0'; + v = v*10+iv; + str++; + } + if ( *str == ']' ) + { + mArrayIndex[mNameCount] = v; + } + else + { + ret = false; + break; + } + } + else + { + ret = false; + break; + } + } + else + { + if ( *str == '.' ) + { + if ( mNameCount < MAX_SEARCH_NAMES ) + { + mSearchNames[mNameCount] = head; + mNameCount++; + if ( mNameCount < MAX_SEARCH_NAMES ) + { + mArrayIndex[mNameCount] = -1; + } + *dest++ = 0; + str++; + head = dest; + } + else + { + ret = false; + break; + } + } + else + { + *dest++ = *str++; + } + } + } + + *dest = 0; + + if ( head && *head ) + { + if ( mNameCount < MAX_SEARCH_NAMES ) + { + mSearchNames[mNameCount] = head; + mNameCount++; + *dest++ = 0; + str++; + head = dest; + } + else + { + ret = false; + } + } + + return ret; + } + + /// done + bool done(void) const + { + bool ret = false; + if ( mInterface || mError ) ret = true; + return ret; + } + + /// getArrayIndex + int32_t getArrayIndex(void) + { + return mArrayIndex[mNameIndex]; + } + + /// nameMatch + bool nameMatch(const char *longName) const + { + bool ret = true; + + if (longName && strlen(longName)) + { +#if PX_GCC || PX_LINUX || PX_PS4 || PX_ANDROID || PX_OSX || PX_CLANG + if ( local_stricmp(longName,mSearchNames[mNameIndex]) == 0 ) +#else +#pragma warning(push) +#pragma warning(disable: 4996) + + if ( _stricmp(longName,mSearchNames[mNameIndex]) == 0 ) + +#pragma warning(pop) +#endif + { + ret = true; + } + else + { + ret = false; + } + } + + return ret; + } + + /// isCompleete + bool isComplete(void) const + { + return (mNameIndex+1) == mNameCount; + } + + /// pushNameMatch + bool pushNameMatch(void) + { + bool ret = false; + + if ( (mNameIndex+1) < mNameCount ) + { + mNameIndex++; + ret = true; + } + return ret; + } + + /// popNameMatch + void popNameMatch(void) + { + if ( mNameIndex ) + { + mNameIndex--; + } + } + + uint32_t mNameIndex; ///< mNameIndex + uint32_t mNameCount; ///< mNameCount + Handle mResult; ///< mResult + const NvParameterized::Interface *mInterface; ///< mInterface + bool mError; ///< mError; + char mSearchName[MAX_SEARCH_NAME]; ///< mSearchName + char *mSearchNames[MAX_SEARCH_NAMES]; ///< mSearchNames + int32_t mArrayIndex[MAX_SEARCH_NAMES]; ///< mArrayIndex +}; + +/// findParameter +PX_INLINE void findParameter(const NvParameterized::Interface &obj, + Handle &handle, + ParameterFind &pf, + bool fromArray=false) +{ + if ( pf.done() ) return; + + if ( handle.numIndexes() < 1 ) + { + obj.getParameterHandle("",handle); + } + + const Definition *pd = handle.parameterDefinition(); + const char *name = pd->name(); + DataType t = pd->type(); + + if ( fromArray || pf.nameMatch(name) ) + { + NvParameterized::Interface *paramPtr = 0; + if ( t == TYPE_REF ) + { + handle.getParamRef(paramPtr); + if ( paramPtr ) + { + if ( pf.pushNameMatch() ) + { + Handle newHandle(*paramPtr, ""); + findParameter(*paramPtr,newHandle,pf); + pf.popNameMatch(); + } + } + if ( pf.isComplete() ) + { + pf.mInterface = &obj; + pf.mResult = handle; + } + } + if ( t == TYPE_STRUCT ) + { + bool pushed = false; + if ( strlen(name) ) + { + pf.pushNameMatch(); + pushed = true; + } + int32_t count = pd->numChildren(); + for (int32_t i=0; i= 0 && arrayIndex < arraySize ) + { + handle.set(arrayIndex); + if ( pf.isComplete() ) + { + pf.mInterface = &obj; + pf.mResult = handle; + } + else + { + findParameter(obj,handle,pf,true); + } + handle.popIndex(); + } + else + { + + pf.mError = true; + } + } + else if ( pf.isComplete() ) + { + pf.mInterface = &obj; + pf.mResult = handle; + } + } +} + +PX_INLINE const Interface *findParam(const Interface &i,const char *long_name, Handle &result) +{ + const Interface *ret = 0; + result.setInterface((const NvParameterized::Interface *)0); + + ParameterFind pf(i); + if ( pf.setSearchName(long_name) ) + { + Handle handle(i); + findParameter(i,handle,pf); + result = pf.mResult; + ret = pf.mInterface; + } + return ret; +} + +PX_INLINE Interface *findParam(Interface &i,const char *long_name, Handle &result) +{ + Interface *ret = const_cast( + findParam(const_cast(i),long_name,result)); + result.setInterface(ret); // Give write access to handle + return ret; +} + +/// Parameter list +struct ParameterList +{ + /// Constructor + ParameterList(const NvParameterized::Interface &iface,const char *className,const char *paramName,bool recursive,bool classesOnly,NvParameterized::Traits *traits) + : mNameIndex(0), + mResult(iface), + mInterface(NULL), + mClassName(className), + mParamName(paramName), + mRecursive(recursive), + mClassesOnly(classesOnly), + mTraits(traits), + mResultCount(0), + mMaxResults(0), + mResults(NULL) + { + + } + + ~ParameterList(void) + { + } + + /// nameMatch + bool nameMatch(const Interface *iface,const char * name,int32_t arrayIndex,DataType type,Handle &handle) + { + size_t slen = strlen(name); + + if ( mClassesOnly ) + { + if ( slen > 0 ) return true; + } + else + { + if ( slen == 0 ) return true; + } + + bool match = true; + if ( mClassName ) + { + const char *cname = iface->className(); + if ( local_strcmp(cname,mClassName) != 0 || strlen(name) ) + { + match = false; + } + } + if ( mParamName ) // if we specified a parameter name, than only include exact matches of this parameter name. + { + if (local_strcmp(mParamName,name) != 0 ) + { + match = false; + } + + } + if ( match ) + { + // ok..let's build the long name... + const char *longName = NULL; + char scratch[1024]; + scratch[0] = 0; + + if ( slen > 0 ) + { + + for (uint32_t i=0; i 0 ) + { + char arrayIndexStr[32]; + arrayIndexStr[0] = 0; + local_strcat_s(arrayIndexStr, sizeof(arrayIndexStr), "[0]"); + //sprintf_s(arrayIndexStr, sizeof(arrayIndexStr), "[%d]", 0); //mArrayIndex[i]); + local_strcat_s(scratch, sizeof(scratch), arrayIndexStr); + } + local_strcat_s(scratch, sizeof(scratch),"."); + } + + local_strcat_s(scratch, sizeof(scratch),name); + uint32_t len = (uint32_t)strlen(scratch); + char *temp = (char *)mTraits->alloc(len+1); + temp[0] = 0; + local_strcat_s(temp, len+1, scratch); + longName = temp; + if ( type == TYPE_ARRAY ) + { + handle.getArraySize(arrayIndex); + } + } + + ParamResult pr(name,longName,iface->className(),iface->name(), handle, arrayIndex, type ); + + if ( mResultCount >= mMaxResults ) + { + mMaxResults = mMaxResults ? mMaxResults*2 : 32; + ParamResult *results = (ParamResult *)mTraits->alloc(sizeof(ParamResult)*mMaxResults); + if ( mResults ) + { + for (uint32_t i=0; iname(); + DataType t = pd->type(); + + if ( pf.nameMatch(&obj,name,parentArraySize,t,handle) ) + { + NvParameterized::Interface *paramPtr = 0; + if ( t == TYPE_REF ) + { + handle.getParamRef(paramPtr); + } + if ( t == TYPE_STRUCT ) + { + bool pushed=false; + if ( strlen(name) ) + { + pf.pushName(name,parentArraySize); + pushed = true; + } + int32_t count = pd->numChildren(); + for (int32_t i=0; i 0 ) + { + for (int32_t i=0; itype(); + handle.popIndex(); + if ( !(elemType == TYPE_STRUCT || elemType == TYPE_ARRAY || elemType == TYPE_REF) ) + { + break; + } + } + } + } + else if ( t == TYPE_REF && pf.isRecursive() ) + { + if ( paramPtr && pd->isIncludedRef() ) + { + if ( pf.pushName(name,parentArraySize) ) + { + Handle newHandle(*paramPtr, ""); + listParameters(*paramPtr,newHandle,pf,0); + pf.popNameMatch(); + } + } + } + } +} + + +/** +\brief Gets every parameter in an NvParameterized Interface class +\note The return pointer is allocated by the NvParameterized Traits class and should be freed by calling releaseParamList +*/ +PX_INLINE const ParamResult * getParamList(const Interface &i,const char *className,const char *paramName,uint32_t &count,bool recursive,bool classesOnly,NvParameterized::Traits *traits) +{ + + PX_UNUSED(className); + + ParameterList pl(i,className,paramName,recursive,classesOnly,traits); + + Handle handle(i); + listParameters(i,handle,pl,0); + + count = pl.getResultCount(); + + return pl.getResults(); +} + +PX_INLINE void releaseParamList(uint32_t resultCount,const ParamResult *results,NvParameterized::Traits *traits) +{ + if ( results ) + { + for (uint32_t i=0; ifree( (void *)r.mLongName ); + } + } + traits->free((void *)results); + } +} + +/// Calls back for every reference. +PX_INLINE void getReferences(const Interface &iface, + Handle &handle, + ReferenceInterface &cb, + bool named, + bool included, + bool recursive) +{ + if ( handle.numIndexes() < 1 ) + iface.getParameterHandle("",handle); + + NvParameterized::Interface *paramPtr = 0; + + const Definition *pd = handle.parameterDefinition(); + switch( pd->type() ) + { + case TYPE_REF: + handle.getParamRef(paramPtr); + if ( !paramPtr ) + break; + + if ( !pd->isIncludedRef() ) + { + if( named ) + cb.referenceCallback(handle); + } + else + { + if( included ) + cb.referenceCallback(handle); + + if ( recursive ) + { + Handle newHandle(*paramPtr, ""); + getReferences(*paramPtr,newHandle,cb,named,included,recursive); + } + } + break; + + case TYPE_STRUCT: + { + int32_t count = pd->numChildren(); + for (int32_t i=0; ichild(0); + bool scan = elemPd->type() == TYPE_ARRAY || elemPd->type() == TYPE_REF || elemPd->type() == TYPE_STRUCT; + + if ( scan ) + { + for (int32_t i=0; i void operator =(T) {} + void operator =(WrappedNamedReference) {} +public: + + /// refCount + uint32_t refCount; + + virtual ~WrappedNamedReference() {} + + /// Constructor + WrappedNamedReference(NamedReferenceInterface &wrappedReference_): wrappedReference(wrappedReference_), refCount(0) {} + + /// referenceCallback + void referenceCallback(Handle &handle) + { + Interface *iface; + handle.getParamRef(iface); + const char *name = wrappedReference.namedReferenceCallback(iface->className(), iface->name(), handle); + if( name ) + { + iface->setName(name); + ++refCount; + } + } +}; + +PX_INLINE uint32_t getNamedReferences(const Interface &i, + NamedReferenceInterface &namedReference, + bool recursive) +{ + WrappedNamedReference reference(namedReference); + getReferences(i, reference, true, false, recursive); + return reference.refCount; +} + + +PX_INLINE bool getParamBool(const Interface &pm, const char *name, bool &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamBool(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamBool(Interface &pm, const char *name, bool value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamBool(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// string +PX_INLINE bool getParamString(const Interface &pm, const char *name, const char *&value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamString(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamString(Interface &pm, const char *name, const char *value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamString(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// enum +PX_INLINE bool getParamEnum(const Interface &pm, const char *name, const char *&value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamEnum(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamEnum(Interface &pm, const char *name, const char *value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamEnum(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// reference +PX_INLINE bool getParamRef(const Interface &pm, const char *name, NvParameterized::Interface *&value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamRef(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamRef(Interface &pm, const char *name, NvParameterized::Interface *value, bool doDestroyOld) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamRef(value, doDestroyOld); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, bool doDestroyOld) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.initParamRef(className, doDestroyOld); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool initParamRef(Interface &pm, const char *name, const char *className, const char *objName, bool doDestroyOld) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.initParamRef(className, doDestroyOld); + NvParameterized::Interface *ref; + handle.getParamRef(ref); + if (ref) + ref->setName(objName); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// I8 +PX_INLINE bool getParamI8(const Interface &pm, const char *name, int8_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamI8(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamI8(Interface &pm, const char *name, int8_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamI8(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// I16 +PX_INLINE bool getParamI16(const Interface &pm, const char *name, int16_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamI16(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamI16(Interface &pm, const char *name, int16_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamI16(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// I32 +PX_INLINE bool getParamI32(const Interface &pm, const char *name, int32_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamI32(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamI32(Interface &pm, const char *name, int32_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamI32(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// I64 +PX_INLINE bool getParamI64(const Interface &pm, const char *name, int64_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamI64(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamI64(Interface &pm, const char *name, int64_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamI64(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// U8 +PX_INLINE bool getParamU8(const Interface &pm, const char *name, uint8_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamU8(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamU8(Interface &pm, const char *name, uint8_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamU8(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// U16 +PX_INLINE bool getParamU16(const Interface &pm, const char *name, uint16_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamU16(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamU16(Interface &pm, const char *name, uint16_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamU16(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// U32 +PX_INLINE bool getParamU32(const Interface &pm, const char *name, uint32_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamU32(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamU32(Interface &pm, const char *name, uint32_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamU32(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// U64 +PX_INLINE bool getParamU64(const Interface &pm, const char *name, uint64_t &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamU64(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamU64(Interface &pm, const char *name, uint64_t value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamU64(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// F32 +PX_INLINE bool getParamF32(const Interface &pm, const char *name, float &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamF32(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamF32(Interface &pm, const char *name, float value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamF32(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// F64 +PX_INLINE bool getParamF64(const Interface &pm, const char *name, double &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamF64(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamF64(Interface &pm, const char *name, double value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamF64(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Vec2 +PX_INLINE bool getParamVec2(const Interface &pm, const char *name, physx::PxVec2 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamVec2(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamVec2(Interface &pm, const char *name, const physx::PxVec2 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamVec2(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Vec3 +PX_INLINE bool getParamVec3(const Interface &pm, const char *name, physx::PxVec3 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamVec3(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamVec3(Interface &pm, const char *name, const physx::PxVec3 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamVec3(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Vec4 +PX_INLINE bool getParamVec4(const Interface &pm, const char *name, physx::PxVec4 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamVec4(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamVec4(Interface &pm, const char *name, const physx::PxVec4 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamVec4(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Quat +PX_INLINE bool getParamQuat(const Interface &pm, const char *name, physx::PxQuat &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamQuat(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamQuat(Interface &pm, const char *name, const physx::PxQuat &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamQuat(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Bounds3 +PX_INLINE bool getParamBounds3(const Interface &pm, const char *name, physx::PxBounds3 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamBounds3(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamBounds3(Interface &pm, const char *name, const physx::PxBounds3 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamBounds3(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Mat33 +PX_INLINE bool getParamMat33(const Interface &pm, const char *name, physx::PxMat33 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamMat33(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamMat33(Interface &pm, const char *name, const physx::PxMat33 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamMat33(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Mat44 +PX_INLINE bool getParamMat44(const Interface &pm, const char *name, physx::PxMat44 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamMat44(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamMat44(Interface &pm, const char *name, const physx::PxMat44 &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.setParamMat44(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +// Transform +PX_INLINE bool getParamTransform(const Interface &pm, const char *name, physx::PxTransform &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getParamTransform(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool setParamTransform(Interface &pm, const char *name, const physx::PxTransform &value) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + handle.setInterface( iface ); // set mIsConst to false + ret = handle.setParamTransform(value); + } + return (ret == NvParameterized::ERROR_NONE); +} + + +PX_INLINE bool getParamArraySize(const Interface &pm, const char *name, int32_t &arraySize) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + const NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.getArraySize(arraySize); + } + return (ret == NvParameterized::ERROR_NONE); +} + +PX_INLINE bool resizeParamArray(Interface &pm, const char *name, int32_t newSize) +{ + ErrorType ret = NvParameterized::ERROR_INVALID_PARAMETER_NAME; + NvParameterized::Handle handle(pm); + NvParameterized::Interface *iface = findParam(pm,name,handle); + if ( iface ) + { + ret = handle.resizeArray(newSize); + } + return (ret == NvParameterized::ERROR_NONE); +} + +#if PX_VC && !PX_PS4 + #pragma warning(pop) +#endif //!PX_PS4 + +} diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h old mode 100644 new mode 100755 index 902a52b..e584947 --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.h @@ -1,1812 +1,1812 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef NV_PARAMETERIZED_H -#define NV_PARAMETERIZED_H - -/** - * APEX uses a framework called NvParameterized for storing asset and actor data. - * NvParameterized classes provide reflection on every parameter they include making it - * effective for serialization and auto-generation of user interfaces for tools.
- * - * NvParameterized stores data in C++ classes which are auto-generated from their - * descriptions written in a special domain specific language (DSL). Description files - * contain information on internal layout and various high-level metadata of corresponding - * classes and their members. All generated classes implement special interface for - * run time reflection and modification of data. - * */ - -/*! -\file -\brief NvParameterized classes -*/ - -#include "foundation/PxVec2.h" -#include "foundation/PxVec3.h" -#include "foundation/PxVec4.h" -#include "foundation/PxQuat.h" -#include "foundation/PxBounds3.h" -#include "foundation/PxMat44.h" -#include -#include -#include // for placement new - -PX_PUSH_PACK_DEFAULT - -//! \brief NvParameterized namespace -namespace NvParameterized -{ - -class Interface; -class Traits; - -/** -\brief Various errors that may be returned from NvParameterized calls -*/ -enum ErrorType -{ - ERROR_NONE = 0, - ERROR_TYPE_NOT_SUPPORTED, - ERROR_INDEX_OUT_OF_RANGE, - ERROR_INVALID_PARAMETER_NAME, - ERROR_INVALID_PARAMETER_HANDLE, - ERROR_CAST_FAILED, - ERROR_INVALID_ENUM_VAL, - ERROR_SYNTAX_ERROR_IN_NAME, - ERROR_IS_LEAF_NODE, - ERROR_RESULT_BUFFER_OVERFLOW, - ERROR_NAME_DOES_NOT_MATCH_DEFINITION, - ERROR_NOT_AN_ARRAY, - ERROR_ARRAY_SIZE_IS_FIXED, - ERROR_ARRAY_RESIZING_IS_NOT_SUPPORTED, - ERROR_ARRAY_IS_TOO_SMALL, - ERROR_INVALID_ARRAY_DIMENSION, - ERROR_INVALID_ARRAY_SIZE, - ERROR_PARAMETER_HANDLE_DOES_NOT_MATCH_CLASS, - ERROR_MEMORY_ALLOCATION_FAILURE, - ERROR_INVALID_REFERENCE_INCLUDE_HINT, - ERROR_INVALID_REFERENCE_VALUE, - ERROR_PARAMETER_HANDLE_NOT_INITIALIZED, - ERROR_PARAMETER_DEFINITIONS_DO_NOT_MATCH, - ERROR_HANDLE_MISSING_INTERFACE_POINTER, - ERROR_HANDLE_INVALID_INTERFACE_POINTER, - ERROR_INVALID_CALL_ON_NAMED_REFERENCE, - ERROR_NOT_IMPLEMENTED, - ERROR_OBJECT_CONSTRUCTION_FAILED, - ERROR_MODIFY_CONST_HANDLE -}; - -/** -\brief These types are supported in NvParameterized schemas -\warning Do not change values of enums! -*/ -enum DataType -{ - TYPE_UNDEFINED = 0, - - /** - \brief Array type, size may be static or dynamic - \see Definition::arraySizeIsFixed(), Handle::resizeArray(), Handle::getArraySize() - */ - TYPE_ARRAY = 1, - - TYPE_STRUCT = 2, - - TYPE_BOOL = 3, - /** - \brief String type, represented by a const char pointer - \see Handle::getParamString(), Handle::setParamString() - */ - TYPE_STRING = 4, - - /** - \brief Enum type, represented by a const char pointer - \see Definition::numEnumVals(), Definition::enumVal(), Handle::getParamEnum(), Handle::setParamEnum() - */ - TYPE_ENUM = 5, - - /** - \brief Reference type, may be a named or included reference - - References are intended to be used in instances where a class needs either a - named reference (an emitter asset references an IOFX and IOS asset), or an - included reference (a destructible asset that serializes an APEX render mesh). - References may also used to create a unions within a class. Each reference will - contain one or more variants to allow for unions. - - \see Handle::initParamRef(), Definition::numRefVariants(), Definition::refVariantVal(), Handle::initParamRef(), Handle::getParamRef(), Handle::setParamRef() - */ - TYPE_REF = 6, - - TYPE_I8 = 7, - TYPE_I16 = 8, - TYPE_I32 = 9, - TYPE_I64 = 10, - - TYPE_U8 = 11, - TYPE_U16 = 12, - TYPE_U32 = 13, - TYPE_U64 = 14, - - TYPE_F32 = 15, - TYPE_F64 = 16, - - TYPE_VEC2 = 17, - TYPE_VEC3 = 18, - TYPE_VEC4 = 19, - TYPE_QUAT = 20, - TYPE_MAT33 = 21, - TYPE_BOUNDS3 = 23, - TYPE_MAT44 = 24, - - TYPE_POINTER = 25, - - TYPE_TRANSFORM = 26, - - TYPE_MAT34 = 27, - - TYPE_LAST -}; - -/** -\brief Provides hints about the parameter definition - -\see Definition -*/ -class Hint -{ - public: - - /** - \brief Destructor - */ - virtual ~Hint() {} - /** - \brief Returns the name of the hint - */ - virtual const char * name(void) const = 0; - - /** - \brief Returns the type of the hint - */ - virtual DataType type(void) const = 0; - - /** - \brief Returns the unsigned 64-bit value of the hint - \note Undefined results if the type != TYPE_U64 - */ - virtual uint64_t asUInt(void) const = 0; - - /** - \brief Returns the 64-bit floating point value of the hint - \note Undefined results if the type != TYPE_FU64 - */ - virtual double asFloat(void) const = 0; - - /** - \brief Returns the const character pointer for hint - \note Undefined results if the type != TYPE_STRING - */ - virtual const char * asString(void) const = 0; - - /** - \brief Set the value if the hint is a 64bit unsigned type - */ - virtual bool setAsUInt(uint64_t v) = 0; - - private: -}; - -/** -\brief Provides information about a parameter -*/ -class Definition -{ -public: - - /** - \brief Destructor - */ - virtual ~Definition() {} - - /** - \brief Destroys the Definition object and all nested dynamic objects contained within - */ - virtual void destroy() = 0; - - /** - \brief Returns the number of hints in the parameter Definition - */ - virtual int32_t numHints(void) const = 0; - - /** - \brief Returns the Hint located at the index - \returns NULL if index >= Hint::numHints() - */ - virtual const Hint * hint(int32_t index) const = 0; - - /** - \brief Returns the Hint that matches the input name - \returns NULL if name does not match any of the Definition's hints - */ - virtual const Hint * hint(const char *name) const = 0; - - /** - \brief Store parameter hints - \warning Only for internal use - */ - virtual void setHints(const Hint **hints, int32_t n) = 0; - - /** - \brief Add parameter hint - \warning Only for internal use - */ - virtual void addHint(Hint *hint) = 0; - - /** - \brief Returns this Definition's parent Definition - \returns NULL if at the top level - */ - virtual const Definition * parent(void) const = 0; - - /** - \brief Returns this Definition's top most ancestor - */ - virtual const Definition * root(void) const = 0; - - /** - \brief Returns the name of the parameter - */ - virtual const char * name(void) const = 0; - - /** - \brief Returns the long name of the parameter - If the parameter is a member of a struct or an array the long name will contain these - parent names - */ - virtual const char * longName(void) const = 0; - - /** - \brief Returns the name of parameter's struct type - \returns NULL if not struct - */ - virtual const char * structName(void) const = 0; - - /** - \brief Returns the parameter type - */ - virtual DataType type(void) const = 0; - - /** - \brief Return the parameter type in string form - */ - virtual const char* typeString() const = 0; - - /** - \brief Returns the number of variants this parameter could be - A reference is sometimes a union of different types, each different type is referred to as - a "variant". Variants can be used in either included or named references. - */ - virtual int32_t numRefVariants(void) const = 0; - - /** - \brief Given the ref variant name, get its val index - \returns -1 if input ref_val is not found - */ - virtual int32_t refVariantValIndex( const char * ref_val ) const = 0; - - /** - \brief Get the string value of the reference variant - */ - virtual const char * refVariantVal(int32_t index) const = 0; - - /** - \brief Returns the number of enums for the parameter - */ - virtual int32_t numEnumVals(void) const = 0; - - /** - \brief Given the enum string, get the enum val index - \returns -1 if input enum_val is not found - */ - virtual int32_t enumValIndex( const char * enum_val ) const = 0; - - /** - \brief Returns the Enum string located at the index - \returns NULL if index >= Hint::numEnumVals() - */ - virtual const char * enumVal(int32_t index) const = 0; - - /** - \brief Store possible enum values for TYPE_ENUM parameter - \warning Only for internal use - */ - virtual void setEnumVals(const char **enum_vals, int32_t n) = 0; - - /** - \brief Add new enum value to a list of possible enum values for TYPE_ENUM parameter - \warning Only for internal use - */ - virtual void addEnumVal(const char *enum_val) = 0; - - /** - \brief Returns custom alignment if parameter uses it; otherwise returns 0 - */ - virtual uint32_t alignment(void) const = 0; - - /** - \brief Returns custom padding if parameter uses it; otherwise returns 0 - */ - virtual uint32_t padding(void) const = 0; - - /** - \brief Returns the number of dimensions of a static array - */ - virtual int32_t arrayDimension(void) const = 0; - - /** - \brief Returns the array size of a static array - \returns 0 for dynamic arrays - */ - virtual int32_t arraySize(int32_t dimension = 0) const = 0; - - /** - \brief Used to determine if an array is static or dynamic - */ - virtual bool arraySizeIsFixed(void) const = 0; - - /** - \brief Set size of static array - \warning Only for internal use - */ - virtual bool setArraySize(int32_t size) = 0; // -1 if the size is not fixed - - /** - \brief Used to determine if parameter is aggregate (TYPE_STRUCT or TYPE_ARRAY) or not. - */ - virtual bool isLeaf(void) const = 0; - - /** - \brief Used to determine if reference is included or not. - */ - virtual bool isIncludedRef(void) const = 0; - - /** - \brief Returns the number of children (for a struct or static array) - */ - virtual int32_t numChildren(void) const = 0; - - /** - \brief Access definition of i-th child parameter. - */ - virtual const Definition *child(int32_t index) const = 0; - - /** - \brief Access definition of child parameter with given name - \warning Only used with TYPE_STRUCT - */ - virtual const Definition *child(const char *name, int32_t &index) const = 0; - - /** - \brief Store definitions of child parameters - \warning Only for internal use - */ - virtual void setChildren(Definition **children, int32_t n) = 0; - - /** - \brief Add definition of one morechild parameter - \warning Only for internal use - */ - virtual void addChild(Definition *child) = 0; - - /** - \brief Set indices of child handles which must be released when downsizing array - */ - virtual void setDynamicHandleIndicesMap(const uint8_t *indices, uint32_t numIndices) = 0; - - /** - \brief Get indices of child handles which must be released when downsizing array - */ - virtual const uint8_t * getDynamicHandleIndicesMap(uint32_t &outNumIndices) const = 0; - - /** - \brief Used to determine whether type is not an aggregate (array, ref or struct) - \param [in] simpleStructs structure of simple types is also considered simple - \param [in] simpleStrings strings are considered simple - */ - virtual bool isSimpleType(bool simpleStructs = true, bool simpleStrings = true) const = 0; -}; - -/** -\brief Provides access to individual parameters within the NvParameterized object -*/ -class Handle -{ -public: - - enum { MAX_DEPTH = 16 }; - - /** - \brief The constructor takes a pointer (if the user requires an instance before the ::NvParameterized::Interface exists) - */ - PX_INLINE Handle(::NvParameterized::Interface *iface); - - /** - \brief The constructor takes a reference - */ - PX_INLINE Handle(::NvParameterized::Interface &iface); - - /** - \brief The constructor takes a const interface - \note Handles which are constructed from const objects are not allowed to modify them. - */ - PX_INLINE Handle(const ::NvParameterized::Interface &iface); - - /** - \brief Copy constructor - */ - PX_INLINE Handle(const Handle ¶m_handle); - - /** - \brief This constructor allows the user to create a handle that initially points at a particular parameter in the instance - */ - PX_INLINE Handle(::NvParameterized::Interface &instance, const char *longName); - - /** - \brief This constructor allows the user to create a handle that initially points at a particular parameter in the instance - \note Handles which are constructed from const objects are not allowed to modify them. - */ - PX_INLINE Handle(const ::NvParameterized::Interface &instance, const char *longName); - - /** - \brief Get the parameter Definition for the handle's parameter - */ - PX_INLINE const Definition *parameterDefinition(void) const { return(mParameterDefinition); } - - /** - \brief Get the depth of the handle within the NvParameterized object - */ - PX_INLINE int32_t numIndexes(void) const { return(mNumIndexes); } - - /** - \brief Get the index at the specified depth within the NvParameterized object - */ - PX_INLINE int32_t index(int32_t i) const { return(mIndexList[i]); } - - /** - \brief Reduce the handle's depth within the NvParameterized object - */ - PX_INLINE int32_t popIndex(int32_t levels = 1); - - /** - \brief Set the Handle so it references a parameter in the specified instance with the name child_long_name - */ - PX_INLINE ErrorType set(const ::NvParameterized::Interface *instance, const Definition *root, const char *child_long_name); - - /** - \brief Set the Handle so it references a parameter in the specified instance with the name child_long_name - */ - PX_INLINE ErrorType set(const ::NvParameterized::Interface *instance, const char *child_long_name); - - /** - \brief Get the parameter specified by longName and set the Handle to point it - Given a long name like "mystruct.somearray[10].foo", it will return - a handle to that specific parameter. The handle can then be used to - set/get values, as long as it's a handle to a leaf node. - \note this method will not work if an included reference's child is included in the longName - */ - PX_INLINE ErrorType getParameter(const char *longName); - - /** - \brief Set the depth of the handle within the handle's parameter - - The set method is useful for accessing indices within an array of parameters or members - within a struct. - */ - PX_INLINE ErrorType set(int32_t child_index); - - /** - \brief Get a child handle of this handle - Sets handle to point to a child of this handle, with child_long_name being - relative to the current long name. - */ - PX_INLINE ErrorType getChildHandle(const ::NvParameterized::Interface *instance, const char *child_long_name, Handle &outHandle); - - /** - \brief Get a child handle of this handle - Sets handle to point to a direct child of this handle. Works with structs and arrays. - */ - PX_INLINE ErrorType getChildHandle(int32_t index, Handle &outHandle); - - /** - \brief Returns the long name of the parameter, with indexes into str. - \returns false if the long name didn't fit in str. - */ - PX_INLINE bool getLongName(char *str, uint32_t max_str_len) const; - - /** - \brief Reset all of the state data for the handle - */ - PX_INLINE void reset(); - - /** - \brief Does handle correspond to an existing Interface? - */ - PX_INLINE bool isConst(void) const { return(mIsConst); } - - /** - \brief Does handle correspond to a valid parameter? - */ - PX_INLINE bool isValid(void) const { return(mIsValid); } - - /** - \brief Same as isValid - */ - PX_INLINE operator bool() const { return(isValid()); } - - /** - \brief Return user data stored in handle - */ - PX_INLINE const void *userData(void) const { return(mUserData); } - - /** - \brief Return user data stored in handle - */ - PX_INLINE void *userData(void) { return(mUserData); } - - /** - \brief Store user data in handle - */ - PX_INLINE void setUserData(void *user_data) { mUserData = user_data; } - - /** - \brief Get associated NvParameterized object - \note Will return NULL in case of const handle (use getConstInterface instead) - */ - PX_INLINE ::NvParameterized::Interface * getInterface(void) const { return mIsConst ? 0 : mInterface; } - - /** - \brief Get associated NvParameterized object - */ - PX_INLINE const ::NvParameterized::Interface * getConstInterface(void) const { return mInterface; } - - /** - \brief Set associated NvParameterized object - */ - PX_INLINE void setInterface(::NvParameterized::Interface *iface) { mIsConst = false; mInterface = iface; } - - /** - \brief Set associated NvParameterized object - */ - PX_INLINE void setInterface(const ::NvParameterized::Interface *iface) { mIsConst = true; mInterface = (::NvParameterized::Interface *)iface; } - - /** - \brief Initialize a Reference parameter - - \param [in] chosenRefStr This string must be one of the strings returned from - Definition::refVariantVal() - - \param [in] doDestroyOld Sets whether the previous object should be destroyed or not - - \see Interface::initParamRef(), Definition::numRefVariants(), Definition::refVariantVal() - */ - PX_INLINE ErrorType initParamRef(const char *chosenRefStr = 0, bool doDestroyOld = false); - - /** - \brief Store this Handle's parameter to a string - \param [in] buf this buffer is used to store any strings that need to be constructed - \param [in] bufSize size of buf - \param [out] ret this contains a pointer to the value as a string, it may or may not - be equal to buf, depending if the value had to be constructed dynamically or if it already exists as a static string - */ - PX_INLINE ErrorType valueToStr(char *buf, uint32_t bufSize, const char *&ret); - - /** - \brief Store the string to this Handle's parameter - \returns ERROR_TYPE_NOT_SUPPORTED if the Handle's parameter type is an array, struct, or reference - \returns ERROR_NONE if the Handle's parameter type is a simple type (u32, i32, vec3, etc) - */ - PX_INLINE ErrorType strToValue(const char *str, const char **endptr); - - /** - \brief Resize the array that the Handle points to - */ - ErrorType resizeArray(int32_t new_size); - - /** - \brief Get the array size for the given array dimension - */ - PX_INLINE ErrorType getArraySize(int32_t &size, int32_t dimension = 0) const; - - /** - \brief Swap two elements of an array - */ - PX_INLINE ErrorType swapArrayElements(uint32_t firstElement, uint32_t secondElement); - - // These functions wrap the raw(Get|Set)XXXXX() methods. They deal with - // error handling and casting. - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamBool(bool &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamBool(bool val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamBoolArray(bool *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamBoolArray(const bool *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamString(const char *&val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamString(const char *val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamStringArray(char **array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamStringArray(const char **array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamEnum(const char *&val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamEnum(const char *val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamEnumArray(char **array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamEnumArray(const char **array, int32_t n, int32_t offset = 0) ; - - /** - \see Interface::getParamRef() - */ - PX_INLINE ErrorType getParamRef(::NvParameterized::Interface *&val) const ; - - /** - \see Interface::getParamRefArray() - */ - PX_INLINE ErrorType getParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const ; - - /** - \see Interface::setParamRef() - */ - PX_INLINE ErrorType setParamRef(::NvParameterized::Interface * val, bool doDestroyOld = false) ; - - /** - \see Interface::setParamRefArray() - */ - PX_INLINE ErrorType setParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI8(int8_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI8(int8_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI8Array(int8_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI8Array(const int8_t *val, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI16(int16_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI16(int16_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI16Array(int16_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI16Array(const int16_t *val, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI32(int32_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI32(int32_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI32Array(int32_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI32Array(const int32_t *val, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI64(int64_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI64(int64_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamI64Array(int64_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamI64Array(const int64_t *val, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU8(uint8_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU8(uint8_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU8Array(uint8_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU8Array(const uint8_t *val, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU16(uint16_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU16(uint16_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU16Array(uint16_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU16Array(const uint16_t *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU32(uint32_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU32(uint32_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU32Array(uint32_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU32Array(const uint32_t *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU64(uint64_t &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU64(uint64_t val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamU64Array(uint64_t *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamU64Array(const uint64_t *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamF32(float &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamF32(float val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamF32Array(float *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamF32Array(const float *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamF64(double &val) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamF64(double val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamF64Array(double *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamF64Array(const double *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamVec2(const physx::PxVec2 &val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamVec2(physx::PxVec2 &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamVec2Array(physx::PxVec2 *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamVec2Array(const physx::PxVec2 *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType setParamVec3(const physx::PxVec3 &val) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType getParamVec3(physx::PxVec3 &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamVec3Array(physx::PxVec3 *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamVec3Array(const physx::PxVec3 *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType setParamVec4(const physx::PxVec4 &val) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType getParamVec4(physx::PxVec4 &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamVec4Array(physx::PxVec4 *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamVec4Array(const physx::PxVec4 *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType setParamQuat(const physx::PxQuat &val) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType getParamQuat(physx::PxQuat &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamQuatArray(physx::PxQuat *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamQuatArray(const physx::PxQuat *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType setParamMat33(const physx::PxMat33 &val) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType getParamMat33(physx::PxMat33 &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamMat33Array(physx::PxMat33 *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamMat33Array(const physx::PxMat33 *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamMat44(const physx::PxMat44 &val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamMat44(physx::PxMat44 &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamMat44Array(physx::PxMat44 *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamMat44Array(const physx::PxMat44 *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamMat34Legacy(const float (&val)[12]) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamMat34Legacy(float (&val)[12]) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamMat34LegacyArray(float* array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamMat34LegacyArray(const float *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamBounds3(const physx::PxBounds3 &val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamBounds3(physx::PxBounds3 &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamBounds3Array(physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamBounds3Array(const physx::PxBounds3 *array, int32_t n, int32_t offset = 0) ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamTransform(const physx::PxTransform &val) ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamTransform(physx::PxTransform &val) const ; - - /** - \brief Get param - */ - PX_INLINE ErrorType getParamTransformArray(physx::PxTransform *array, int32_t n, int32_t offset = 0) const ; - - /** - \brief Set param - */ - PX_INLINE ErrorType setParamTransformArray(const physx::PxTransform *array, int32_t n, int32_t offset = 0) ; - - - /// Template version of setParamXxx - template PX_INLINE ErrorType setParam(const T &val); - - /// Template version of getParamXxx - template PX_INLINE ErrorType getParam(T &val) const; - - /// Template version of getParamXxxArray - template PX_INLINE ErrorType getParamArray(T *array, int32_t n, int32_t offset = 0) const; - - /// Template version of setParamXxxArray - template PX_INLINE ErrorType setParamArray(const T *array, int32_t n, int32_t offset = 0); - -private: - - PX_INLINE void pushIndex(int32_t index); - - bool mIsValid, mIsConst; - int32_t mNumIndexes; - int32_t mIndexList[MAX_DEPTH]; - const Definition *mParameterDefinition; - void *mUserData; - ::NvParameterized::Interface *mInterface; -}; - -/// A callback class for notification just prior to serialization -class SerializationCallback -{ -public: - virtual ~SerializationCallback() {} - /// Callback method - virtual void preSerialize(void* userData = NULL) = 0; -}; - - -/** -\brief Represents the interface to the NvParameterized object -*/ -class Interface -{ - friend class Handle; -public: - - /** - \brief Destructor - */ - virtual ~Interface() {} - - /** - \brief Destroys the NvParameterized object and all nested dynamic objects contained within - */ - virtual void destroy() = 0; - - /** - \brief Initializes all parameters to their default value - */ - virtual void initDefaults(void) = 0; - - /** - \brief Initializes all parameters with random values - */ - virtual void initRandom(void) = 0; - - /** - \brief Get the class name - */ - virtual const char * className(void) const = 0; - - /** - \brief Sets the class name - - This method is used for named references. The input name should be one of the possible variants. - \see Definition::numRefVariants(), Definition::refVariantVal() - */ - virtual void setClassName(const char *name) = 0; - - /** - \brief Get the name of the NvParameterized object - This method is used for named references. The name will typically specify an asset to be loaded. - */ - virtual const char * name(void) const = 0; - - /** - \brief Set the name of the NvParameterized object - This method is used for named references. The name will typically specify an asset to be loaded. - */ - virtual void setName(const char *name) = 0; - - /** - \brief Get the class version - */ - virtual uint32_t version(void) const = 0; - - /** - \brief Get the major part of class version - */ - virtual uint16_t getMajorVersion(void) const = 0; - - /** - \brief Get the minor part of class version - */ - virtual uint16_t getMinorVersion(void) const = 0; - - /** - \brief Get the class checksum. - \param bits contains the number of bits contained in the checksum - \returns A pointer to a constant array of uint32_t values representing the checksum - */ - virtual const uint32_t * checksum(uint32_t &bits) const = 0; - - /** - \brief Get the number of parameters contained in the NvParameterized object - */ - virtual int32_t numParameters(void) = 0; - - /** - \brief Get the definition of i-th parameter - */ - virtual const Definition *parameterDefinition(int32_t index) = 0; - - /** - \brief Get definition of root structure - */ - virtual const Definition *rootParameterDefinition(void) = 0; - - /** - \brief Get definition of root structure - */ - virtual const Definition *rootParameterDefinition(void) const = 0; - - /** - \brief Set the Handle to point to the parameter specified by longName - Given a long name like "mystruct.somearray[10].foo", it will return - a handle to that specific parameter. The handle can then be used to - set/get values, as long as it's a handle to a leaf node. - \note this method will not work if an included reference's child is included in the longName - */ - virtual ErrorType getParameterHandle(const char *longName, Handle &handle) const = 0; - - /** - \brief Set the Handle to point to the parameter specified by longName - Given a long name like "mystruct.somearray[10].foo", it will return - a handle to that specific parameter. The handle can then be used to - set/get values, as long as it's a handle to a leaf node. - \note this method will not work if an included reference's child is included in the longName - */ - virtual ErrorType getParameterHandle(const char *longName, Handle &handle) = 0; - - /// An application may set a callback function that is called immediately before serialization - virtual void setSerializationCallback(SerializationCallback *cb, void *userData = NULL) = 0; - - /// Called prior by Serializer to serialization - virtual ErrorType callPreSerializeCallback() const = 0; - - - /** - \brief Compares two NvParameterized objects - \param [in] obj The other ::NvParameterized::Interface object (this == obj) - \param [out] handlesOfInequality If the return value is False, these handles will contain the path to where definition or data is not identical - \param [in] numHandlesOfInequality The number of handles that can be written to. - \param [in] doCompareNotSerialized If false differences of parameters with DONOTSERIALIZE-hint are ignored. - \returns true if parameter definition tree is equal as well as parameter values - */ - virtual bool equals(const ::NvParameterized::Interface &obj, Handle* handlesOfInequality = NULL, uint32_t numHandlesOfInequality = 0, bool doCompareNotSerialized = true) const = 0; - - /** - \brief Checks if object satisfies schema constraints - \param [out] invalidHandles If the return value is False, these handles will contain the path to invalid data - \param [in] numInvalidHandles The number of handles that can be written to. - \returns true if all values satisfy constraints - */ - virtual bool areParamsOK(Handle *invalidHandles = NULL, uint32_t numInvalidHandles = 0) = 0; - - /** - \brief Copies an NvParameterized object - \param [in] src the src NvParameterized object will be copied to this object. It must be of the same type (class name). - */ - virtual ErrorType copy(const ::NvParameterized::Interface &src) = 0; - - /** - \brief Clones an NvParameterized object - \param [out] nullDestObject cloned object; note this is a *reference* to a pointer; the destination cloned object will be created and stored in this pointer; should be NULL on entry! - */ - virtual ErrorType clone(Interface *&nullDestObject) const = 0; - - /** - \brief Check that alignments of internal elements match the schema - \warning Only for internal use - */ - virtual bool checkAlignments() const = 0; - -protected: - /** - \brief Initialize a Reference parameter - - \note By default previous value of parameter isn't destroyed (bool doDestroyOld = false) - */ - virtual ErrorType initParamRef(const Handle &handle, const char *chosenRefStr = 0, bool doDestroyOld = false) = 0; - - // These functions wrap the raw(Get|Set)XXXXX() methods. They deal with - // error handling and casting. - - /** - \brief Get param - */ - virtual ErrorType getParamBool(const Handle &handle, bool &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamBool(const Handle &handle, bool val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamString(const Handle &handle, const char *&val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamString(const Handle &handle, const char *val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamEnum(const Handle &handle, const char *&val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamEnum(const Handle &handle, const char *val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamRef(const Handle &handle, ::NvParameterized::Interface *&val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamRefArray(const Handle &handle, ::NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const = 0; - - /** - \note By default previous value of parameter is not destroyed (bool doDestroyOld = false) - */ - virtual ErrorType setParamRef(const Handle &handle, ::NvParameterized::Interface * val, bool doDestroyOld = false) = 0; - - /** - \note By default previous values of parameter are not destroyed (bool doDestroyOld = false) - */ - virtual ErrorType setParamRefArray(const Handle &handle, /*const*/ ::NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI8(const Handle &handle, int8_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI8(const Handle &handle, int8_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI8Array(const Handle &handle, const int8_t *val, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI16(const Handle &handle, int16_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI16(const Handle &handle, int16_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI16Array(const Handle &handle, const int16_t *val, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI32(const Handle &handle, int32_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI32(const Handle &handle, int32_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI32Array(const Handle &handle, const int32_t *val, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI64(const Handle &handle, int64_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI64(const Handle &handle, int64_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamI64Array(const Handle &handle, const int64_t *val, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU8(const Handle &handle, uint8_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU8(const Handle &handle, uint8_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU8Array(const Handle &handle, const uint8_t *val, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU16(const Handle &handle, uint16_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU16(const Handle &handle, uint16_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU32(const Handle &handle, uint32_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU32(const Handle &handle, uint32_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU64(const Handle &handle, uint64_t &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU64(const Handle &handle, uint64_t val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamF32(const Handle &handle, float &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamF32(const Handle &handle, float val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamF64(const Handle &handle, double &val) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamF64(const Handle &handle, double val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamVec2(const Handle &handle, const physx::PxVec2 &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamVec2(const Handle &handle, physx::PxVec2 &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamVec2Array(const Handle &handle, physx::PxVec2 *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamVec3(const Handle &handle, const physx::PxVec3 &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamVec3(const Handle &handle, physx::PxVec3 &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamVec3Array(const Handle &handle, physx::PxVec3 *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamVec4(const Handle &handle, const physx::PxVec4 &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamVec4(const Handle &handle, physx::PxVec4 &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamVec4Array(const Handle &handle, physx::PxVec4 *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamQuat(const Handle &handle, const physx::PxQuat &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamQuat(const Handle &handle, physx::PxQuat &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamQuatArray(const Handle &handle, physx::PxQuat *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamMat33(const Handle &handle, const physx::PxMat33 &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamMat33(const Handle &handle, physx::PxMat33 &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamMat33Array(const Handle &handle, physx::PxMat33 *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamMat44(const Handle &handle, const physx::PxMat44 &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamMat44(const Handle &handle, physx::PxMat44 &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamMat44Array(const Handle &handle, physx::PxMat44 *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamMat34Legacy(const Handle &handle, const float (&val)[12]) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamMat34Legacy(const Handle &handle, float (&val)[12]) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamBounds3(const Handle &handle, const physx::PxBounds3 &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamBounds3(const Handle &handle, physx::PxBounds3 &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamBounds3Array(const Handle &handle, physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamTransform(const Handle &handle, const physx::PxTransform &val) = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamTransform(const Handle &handle, physx::PxTransform &val) const = 0; - - /** - \brief Get param - */ - virtual ErrorType getParamTransformArray(const Handle &handle, physx::PxTransform *array, int32_t n, int32_t offset = 0) const = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Set param - */ - virtual ErrorType setParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset = 0) = 0; - - /** - \brief Store value of parameter into a string - \see Handle::valueToStr - */ - virtual ErrorType valueToStr(const Handle &handle, char *buf, uint32_t bufSize, const char *&ret) = 0; - - /** - \brief Read value of parameter from string - \see Handle::strToValue - */ - virtual ErrorType strToValue(Handle &handle,const char *str, const char **endptr) = 0; // assigns this string to the value - - /** - \brief Resize array parameter - \see Handle::resizeArray - */ - virtual ErrorType resizeArray(const Handle &array_handle, int32_t new_size) = 0; - - /** - \brief Get size of array parameter - \see Handle::getArraySize - */ - virtual ErrorType getArraySize(const Handle &array_handle, int32_t &size, int32_t dimension = 0) const = 0; - - /** - \brief Swap two elements of an array - \see Handle::swapArrayElements - */ - virtual ErrorType swapArrayElements(const Handle &array_handle, uint32_t firstElement, uint32_t secondElement) = 0; -}; - -} // end of namespace - -#include "NvParameterized.inl" // inline the NvParamterHandle methods. - -PX_POP_PACK - -#endif // NV_PARAMETERIZED_H +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef NV_PARAMETERIZED_H +#define NV_PARAMETERIZED_H + +/** + * APEX uses a framework called NvParameterized for storing asset and actor data. + * NvParameterized classes provide reflection on every parameter they include making it + * effective for serialization and auto-generation of user interfaces for tools.
+ * + * NvParameterized stores data in C++ classes which are auto-generated from their + * descriptions written in a special domain specific language (DSL). Description files + * contain information on internal layout and various high-level metadata of corresponding + * classes and their members. All generated classes implement special interface for + * run time reflection and modification of data. + * */ + +/*! +\file +\brief NvParameterized classes +*/ + +#include "foundation/PxVec2.h" +#include "foundation/PxVec3.h" +#include "foundation/PxVec4.h" +#include "foundation/PxQuat.h" +#include "foundation/PxBounds3.h" +#include "foundation/PxMat44.h" +#include +#include +#include // for placement new + +PX_PUSH_PACK_DEFAULT + +//! \brief NvParameterized namespace +namespace NvParameterized +{ + +class Interface; +class Traits; + +/** +\brief Various errors that may be returned from NvParameterized calls +*/ +enum ErrorType +{ + ERROR_NONE = 0, + ERROR_TYPE_NOT_SUPPORTED, + ERROR_INDEX_OUT_OF_RANGE, + ERROR_INVALID_PARAMETER_NAME, + ERROR_INVALID_PARAMETER_HANDLE, + ERROR_CAST_FAILED, + ERROR_INVALID_ENUM_VAL, + ERROR_SYNTAX_ERROR_IN_NAME, + ERROR_IS_LEAF_NODE, + ERROR_RESULT_BUFFER_OVERFLOW, + ERROR_NAME_DOES_NOT_MATCH_DEFINITION, + ERROR_NOT_AN_ARRAY, + ERROR_ARRAY_SIZE_IS_FIXED, + ERROR_ARRAY_RESIZING_IS_NOT_SUPPORTED, + ERROR_ARRAY_IS_TOO_SMALL, + ERROR_INVALID_ARRAY_DIMENSION, + ERROR_INVALID_ARRAY_SIZE, + ERROR_PARAMETER_HANDLE_DOES_NOT_MATCH_CLASS, + ERROR_MEMORY_ALLOCATION_FAILURE, + ERROR_INVALID_REFERENCE_INCLUDE_HINT, + ERROR_INVALID_REFERENCE_VALUE, + ERROR_PARAMETER_HANDLE_NOT_INITIALIZED, + ERROR_PARAMETER_DEFINITIONS_DO_NOT_MATCH, + ERROR_HANDLE_MISSING_INTERFACE_POINTER, + ERROR_HANDLE_INVALID_INTERFACE_POINTER, + ERROR_INVALID_CALL_ON_NAMED_REFERENCE, + ERROR_NOT_IMPLEMENTED, + ERROR_OBJECT_CONSTRUCTION_FAILED, + ERROR_MODIFY_CONST_HANDLE +}; + +/** +\brief These types are supported in NvParameterized schemas +\warning Do not change values of enums! +*/ +enum DataType +{ + TYPE_UNDEFINED = 0, + + /** + \brief Array type, size may be static or dynamic + \see Definition::arraySizeIsFixed(), Handle::resizeArray(), Handle::getArraySize() + */ + TYPE_ARRAY = 1, + + TYPE_STRUCT = 2, + + TYPE_BOOL = 3, + /** + \brief String type, represented by a const char pointer + \see Handle::getParamString(), Handle::setParamString() + */ + TYPE_STRING = 4, + + /** + \brief Enum type, represented by a const char pointer + \see Definition::numEnumVals(), Definition::enumVal(), Handle::getParamEnum(), Handle::setParamEnum() + */ + TYPE_ENUM = 5, + + /** + \brief Reference type, may be a named or included reference + + References are intended to be used in instances where a class needs either a + named reference (an emitter asset references an IOFX and IOS asset), or an + included reference (a destructible asset that serializes an APEX render mesh). + References may also used to create a unions within a class. Each reference will + contain one or more variants to allow for unions. + + \see Handle::initParamRef(), Definition::numRefVariants(), Definition::refVariantVal(), Handle::initParamRef(), Handle::getParamRef(), Handle::setParamRef() + */ + TYPE_REF = 6, + + TYPE_I8 = 7, + TYPE_I16 = 8, + TYPE_I32 = 9, + TYPE_I64 = 10, + + TYPE_U8 = 11, + TYPE_U16 = 12, + TYPE_U32 = 13, + TYPE_U64 = 14, + + TYPE_F32 = 15, + TYPE_F64 = 16, + + TYPE_VEC2 = 17, + TYPE_VEC3 = 18, + TYPE_VEC4 = 19, + TYPE_QUAT = 20, + TYPE_MAT33 = 21, + TYPE_BOUNDS3 = 23, + TYPE_MAT44 = 24, + + TYPE_POINTER = 25, + + TYPE_TRANSFORM = 26, + + TYPE_MAT34 = 27, + + TYPE_LAST +}; + +/** +\brief Provides hints about the parameter definition + +\see Definition +*/ +class Hint +{ + public: + + /** + \brief Destructor + */ + virtual ~Hint() {} + /** + \brief Returns the name of the hint + */ + virtual const char * name(void) const = 0; + + /** + \brief Returns the type of the hint + */ + virtual DataType type(void) const = 0; + + /** + \brief Returns the unsigned 64-bit value of the hint + \note Undefined results if the type != TYPE_U64 + */ + virtual uint64_t asUInt(void) const = 0; + + /** + \brief Returns the 64-bit floating point value of the hint + \note Undefined results if the type != TYPE_FU64 + */ + virtual double asFloat(void) const = 0; + + /** + \brief Returns the const character pointer for hint + \note Undefined results if the type != TYPE_STRING + */ + virtual const char * asString(void) const = 0; + + /** + \brief Set the value if the hint is a 64bit unsigned type + */ + virtual bool setAsUInt(uint64_t v) = 0; + + private: +}; + +/** +\brief Provides information about a parameter +*/ +class Definition +{ +public: + + /** + \brief Destructor + */ + virtual ~Definition() {} + + /** + \brief Destroys the Definition object and all nested dynamic objects contained within + */ + virtual void destroy() = 0; + + /** + \brief Returns the number of hints in the parameter Definition + */ + virtual int32_t numHints(void) const = 0; + + /** + \brief Returns the Hint located at the index + \returns NULL if index >= Hint::numHints() + */ + virtual const Hint * hint(int32_t index) const = 0; + + /** + \brief Returns the Hint that matches the input name + \returns NULL if name does not match any of the Definition's hints + */ + virtual const Hint * hint(const char *name) const = 0; + + /** + \brief Store parameter hints + \warning Only for internal use + */ + virtual void setHints(const Hint **hints, int32_t n) = 0; + + /** + \brief Add parameter hint + \warning Only for internal use + */ + virtual void addHint(Hint *hint) = 0; + + /** + \brief Returns this Definition's parent Definition + \returns NULL if at the top level + */ + virtual const Definition * parent(void) const = 0; + + /** + \brief Returns this Definition's top most ancestor + */ + virtual const Definition * root(void) const = 0; + + /** + \brief Returns the name of the parameter + */ + virtual const char * name(void) const = 0; + + /** + \brief Returns the long name of the parameter + If the parameter is a member of a struct or an array the long name will contain these + parent names + */ + virtual const char * longName(void) const = 0; + + /** + \brief Returns the name of parameter's struct type + \returns NULL if not struct + */ + virtual const char * structName(void) const = 0; + + /** + \brief Returns the parameter type + */ + virtual DataType type(void) const = 0; + + /** + \brief Return the parameter type in string form + */ + virtual const char* typeString() const = 0; + + /** + \brief Returns the number of variants this parameter could be + A reference is sometimes a union of different types, each different type is referred to as + a "variant". Variants can be used in either included or named references. + */ + virtual int32_t numRefVariants(void) const = 0; + + /** + \brief Given the ref variant name, get its val index + \returns -1 if input ref_val is not found + */ + virtual int32_t refVariantValIndex( const char * ref_val ) const = 0; + + /** + \brief Get the string value of the reference variant + */ + virtual const char * refVariantVal(int32_t index) const = 0; + + /** + \brief Returns the number of enums for the parameter + */ + virtual int32_t numEnumVals(void) const = 0; + + /** + \brief Given the enum string, get the enum val index + \returns -1 if input enum_val is not found + */ + virtual int32_t enumValIndex( const char * enum_val ) const = 0; + + /** + \brief Returns the Enum string located at the index + \returns NULL if index >= Hint::numEnumVals() + */ + virtual const char * enumVal(int32_t index) const = 0; + + /** + \brief Store possible enum values for TYPE_ENUM parameter + \warning Only for internal use + */ + virtual void setEnumVals(const char **enum_vals, int32_t n) = 0; + + /** + \brief Add new enum value to a list of possible enum values for TYPE_ENUM parameter + \warning Only for internal use + */ + virtual void addEnumVal(const char *enum_val) = 0; + + /** + \brief Returns custom alignment if parameter uses it; otherwise returns 0 + */ + virtual uint32_t alignment(void) const = 0; + + /** + \brief Returns custom padding if parameter uses it; otherwise returns 0 + */ + virtual uint32_t padding(void) const = 0; + + /** + \brief Returns the number of dimensions of a static array + */ + virtual int32_t arrayDimension(void) const = 0; + + /** + \brief Returns the array size of a static array + \returns 0 for dynamic arrays + */ + virtual int32_t arraySize(int32_t dimension = 0) const = 0; + + /** + \brief Used to determine if an array is static or dynamic + */ + virtual bool arraySizeIsFixed(void) const = 0; + + /** + \brief Set size of static array + \warning Only for internal use + */ + virtual bool setArraySize(int32_t size) = 0; // -1 if the size is not fixed + + /** + \brief Used to determine if parameter is aggregate (TYPE_STRUCT or TYPE_ARRAY) or not. + */ + virtual bool isLeaf(void) const = 0; + + /** + \brief Used to determine if reference is included or not. + */ + virtual bool isIncludedRef(void) const = 0; + + /** + \brief Returns the number of children (for a struct or static array) + */ + virtual int32_t numChildren(void) const = 0; + + /** + \brief Access definition of i-th child parameter. + */ + virtual const Definition *child(int32_t index) const = 0; + + /** + \brief Access definition of child parameter with given name + \warning Only used with TYPE_STRUCT + */ + virtual const Definition *child(const char *name, int32_t &index) const = 0; + + /** + \brief Store definitions of child parameters + \warning Only for internal use + */ + virtual void setChildren(Definition **children, int32_t n) = 0; + + /** + \brief Add definition of one morechild parameter + \warning Only for internal use + */ + virtual void addChild(Definition *child) = 0; + + /** + \brief Set indices of child handles which must be released when downsizing array + */ + virtual void setDynamicHandleIndicesMap(const uint8_t *indices, uint32_t numIndices) = 0; + + /** + \brief Get indices of child handles which must be released when downsizing array + */ + virtual const uint8_t * getDynamicHandleIndicesMap(uint32_t &outNumIndices) const = 0; + + /** + \brief Used to determine whether type is not an aggregate (array, ref or struct) + \param [in] simpleStructs structure of simple types is also considered simple + \param [in] simpleStrings strings are considered simple + */ + virtual bool isSimpleType(bool simpleStructs = true, bool simpleStrings = true) const = 0; +}; + +/** +\brief Provides access to individual parameters within the NvParameterized object +*/ +class Handle +{ +public: + + enum { MAX_DEPTH = 16 }; + + /** + \brief The constructor takes a pointer (if the user requires an instance before the ::NvParameterized::Interface exists) + */ + PX_INLINE Handle(::NvParameterized::Interface *iface); + + /** + \brief The constructor takes a reference + */ + PX_INLINE Handle(::NvParameterized::Interface &iface); + + /** + \brief The constructor takes a const interface + \note Handles which are constructed from const objects are not allowed to modify them. + */ + PX_INLINE Handle(const ::NvParameterized::Interface &iface); + + /** + \brief Copy constructor + */ + PX_INLINE Handle(const Handle ¶m_handle); + + /** + \brief This constructor allows the user to create a handle that initially points at a particular parameter in the instance + */ + PX_INLINE Handle(::NvParameterized::Interface &instance, const char *longName); + + /** + \brief This constructor allows the user to create a handle that initially points at a particular parameter in the instance + \note Handles which are constructed from const objects are not allowed to modify them. + */ + PX_INLINE Handle(const ::NvParameterized::Interface &instance, const char *longName); + + /** + \brief Get the parameter Definition for the handle's parameter + */ + PX_INLINE const Definition *parameterDefinition(void) const { return(mParameterDefinition); } + + /** + \brief Get the depth of the handle within the NvParameterized object + */ + PX_INLINE int32_t numIndexes(void) const { return(mNumIndexes); } + + /** + \brief Get the index at the specified depth within the NvParameterized object + */ + PX_INLINE int32_t index(int32_t i) const { return(mIndexList[i]); } + + /** + \brief Reduce the handle's depth within the NvParameterized object + */ + PX_INLINE int32_t popIndex(int32_t levels = 1); + + /** + \brief Set the Handle so it references a parameter in the specified instance with the name child_long_name + */ + PX_INLINE ErrorType set(const ::NvParameterized::Interface *instance, const Definition *root, const char *child_long_name); + + /** + \brief Set the Handle so it references a parameter in the specified instance with the name child_long_name + */ + PX_INLINE ErrorType set(const ::NvParameterized::Interface *instance, const char *child_long_name); + + /** + \brief Get the parameter specified by longName and set the Handle to point it + Given a long name like "mystruct.somearray[10].foo", it will return + a handle to that specific parameter. The handle can then be used to + set/get values, as long as it's a handle to a leaf node. + \note this method will not work if an included reference's child is included in the longName + */ + PX_INLINE ErrorType getParameter(const char *longName); + + /** + \brief Set the depth of the handle within the handle's parameter + + The set method is useful for accessing indices within an array of parameters or members + within a struct. + */ + PX_INLINE ErrorType set(int32_t child_index); + + /** + \brief Get a child handle of this handle + Sets handle to point to a child of this handle, with child_long_name being + relative to the current long name. + */ + PX_INLINE ErrorType getChildHandle(const ::NvParameterized::Interface *instance, const char *child_long_name, Handle &outHandle); + + /** + \brief Get a child handle of this handle + Sets handle to point to a direct child of this handle. Works with structs and arrays. + */ + PX_INLINE ErrorType getChildHandle(int32_t index, Handle &outHandle); + + /** + \brief Returns the long name of the parameter, with indexes into str. + \returns false if the long name didn't fit in str. + */ + PX_INLINE bool getLongName(char *str, uint32_t max_str_len) const; + + /** + \brief Reset all of the state data for the handle + */ + PX_INLINE void reset(); + + /** + \brief Does handle correspond to an existing Interface? + */ + PX_INLINE bool isConst(void) const { return(mIsConst); } + + /** + \brief Does handle correspond to a valid parameter? + */ + PX_INLINE bool isValid(void) const { return(mIsValid); } + + /** + \brief Same as isValid + */ + PX_INLINE operator bool() const { return(isValid()); } + + /** + \brief Return user data stored in handle + */ + PX_INLINE const void *userData(void) const { return(mUserData); } + + /** + \brief Return user data stored in handle + */ + PX_INLINE void *userData(void) { return(mUserData); } + + /** + \brief Store user data in handle + */ + PX_INLINE void setUserData(void *user_data) { mUserData = user_data; } + + /** + \brief Get associated NvParameterized object + \note Will return NULL in case of const handle (use getConstInterface instead) + */ + PX_INLINE ::NvParameterized::Interface * getInterface(void) const { return mIsConst ? 0 : mInterface; } + + /** + \brief Get associated NvParameterized object + */ + PX_INLINE const ::NvParameterized::Interface * getConstInterface(void) const { return mInterface; } + + /** + \brief Set associated NvParameterized object + */ + PX_INLINE void setInterface(::NvParameterized::Interface *iface) { mIsConst = false; mInterface = iface; } + + /** + \brief Set associated NvParameterized object + */ + PX_INLINE void setInterface(const ::NvParameterized::Interface *iface) { mIsConst = true; mInterface = (::NvParameterized::Interface *)iface; } + + /** + \brief Initialize a Reference parameter + + \param [in] chosenRefStr This string must be one of the strings returned from + Definition::refVariantVal() + + \param [in] doDestroyOld Sets whether the previous object should be destroyed or not + + \see Interface::initParamRef(), Definition::numRefVariants(), Definition::refVariantVal() + */ + PX_INLINE ErrorType initParamRef(const char *chosenRefStr = 0, bool doDestroyOld = false); + + /** + \brief Store this Handle's parameter to a string + \param [in] buf this buffer is used to store any strings that need to be constructed + \param [in] bufSize size of buf + \param [out] ret this contains a pointer to the value as a string, it may or may not + be equal to buf, depending if the value had to be constructed dynamically or if it already exists as a static string + */ + PX_INLINE ErrorType valueToStr(char *buf, uint32_t bufSize, const char *&ret); + + /** + \brief Store the string to this Handle's parameter + \returns ERROR_TYPE_NOT_SUPPORTED if the Handle's parameter type is an array, struct, or reference + \returns ERROR_NONE if the Handle's parameter type is a simple type (u32, i32, vec3, etc) + */ + PX_INLINE ErrorType strToValue(const char *str, const char **endptr); + + /** + \brief Resize the array that the Handle points to + */ + ErrorType resizeArray(int32_t new_size); + + /** + \brief Get the array size for the given array dimension + */ + PX_INLINE ErrorType getArraySize(int32_t &size, int32_t dimension = 0) const; + + /** + \brief Swap two elements of an array + */ + PX_INLINE ErrorType swapArrayElements(uint32_t firstElement, uint32_t secondElement); + + // These functions wrap the raw(Get|Set)XXXXX() methods. They deal with + // error handling and casting. + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamBool(bool &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamBool(bool val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamBoolArray(bool *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamBoolArray(const bool *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamString(const char *&val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamString(const char *val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamStringArray(char **array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamStringArray(const char **array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamEnum(const char *&val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamEnum(const char *val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamEnumArray(char **array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamEnumArray(const char **array, int32_t n, int32_t offset = 0) ; + + /** + \see Interface::getParamRef() + */ + PX_INLINE ErrorType getParamRef(::NvParameterized::Interface *&val) const ; + + /** + \see Interface::getParamRefArray() + */ + PX_INLINE ErrorType getParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const ; + + /** + \see Interface::setParamRef() + */ + PX_INLINE ErrorType setParamRef(::NvParameterized::Interface * val, bool doDestroyOld = false) ; + + /** + \see Interface::setParamRefArray() + */ + PX_INLINE ErrorType setParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI8(int8_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI8(int8_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI8Array(int8_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI8Array(const int8_t *val, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI16(int16_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI16(int16_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI16Array(int16_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI16Array(const int16_t *val, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI32(int32_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI32(int32_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI32Array(int32_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI32Array(const int32_t *val, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI64(int64_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI64(int64_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamI64Array(int64_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamI64Array(const int64_t *val, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU8(uint8_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU8(uint8_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU8Array(uint8_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU8Array(const uint8_t *val, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU16(uint16_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU16(uint16_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU16Array(uint16_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU16Array(const uint16_t *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU32(uint32_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU32(uint32_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU32Array(uint32_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU32Array(const uint32_t *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU64(uint64_t &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU64(uint64_t val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamU64Array(uint64_t *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamU64Array(const uint64_t *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamF32(float &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamF32(float val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamF32Array(float *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamF32Array(const float *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamF64(double &val) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamF64(double val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamF64Array(double *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamF64Array(const double *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamVec2(const physx::PxVec2 &val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamVec2(physx::PxVec2 &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamVec2Array(physx::PxVec2 *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamVec2Array(const physx::PxVec2 *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType setParamVec3(const physx::PxVec3 &val) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType getParamVec3(physx::PxVec3 &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamVec3Array(physx::PxVec3 *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamVec3Array(const physx::PxVec3 *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType setParamVec4(const physx::PxVec4 &val) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType getParamVec4(physx::PxVec4 &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamVec4Array(physx::PxVec4 *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamVec4Array(const physx::PxVec4 *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType setParamQuat(const physx::PxQuat &val) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType getParamQuat(physx::PxQuat &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamQuatArray(physx::PxQuat *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamQuatArray(const physx::PxQuat *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType setParamMat33(const physx::PxMat33 &val) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType getParamMat33(physx::PxMat33 &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamMat33Array(physx::PxMat33 *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamMat33Array(const physx::PxMat33 *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamMat44(const physx::PxMat44 &val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamMat44(physx::PxMat44 &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamMat44Array(physx::PxMat44 *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamMat44Array(const physx::PxMat44 *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamMat34Legacy(const float (&val)[12]) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamMat34Legacy(float (&val)[12]) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamMat34LegacyArray(float* array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamMat34LegacyArray(const float *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamBounds3(const physx::PxBounds3 &val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamBounds3(physx::PxBounds3 &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamBounds3Array(physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamBounds3Array(const physx::PxBounds3 *array, int32_t n, int32_t offset = 0) ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamTransform(const physx::PxTransform &val) ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamTransform(physx::PxTransform &val) const ; + + /** + \brief Get param + */ + PX_INLINE ErrorType getParamTransformArray(physx::PxTransform *array, int32_t n, int32_t offset = 0) const ; + + /** + \brief Set param + */ + PX_INLINE ErrorType setParamTransformArray(const physx::PxTransform *array, int32_t n, int32_t offset = 0) ; + + + /// Template version of setParamXxx + template PX_INLINE ErrorType setParam(const T &val); + + /// Template version of getParamXxx + template PX_INLINE ErrorType getParam(T &val) const; + + /// Template version of getParamXxxArray + template PX_INLINE ErrorType getParamArray(T *array, int32_t n, int32_t offset = 0) const; + + /// Template version of setParamXxxArray + template PX_INLINE ErrorType setParamArray(const T *array, int32_t n, int32_t offset = 0); + +private: + + PX_INLINE void pushIndex(int32_t index); + + bool mIsValid, mIsConst; + int32_t mNumIndexes; + int32_t mIndexList[MAX_DEPTH]; + const Definition *mParameterDefinition; + void *mUserData; + ::NvParameterized::Interface *mInterface; +}; + +/// A callback class for notification just prior to serialization +class SerializationCallback +{ +public: + virtual ~SerializationCallback() {} + /// Callback method + virtual void preSerialize(void* userData = NULL) = 0; +}; + + +/** +\brief Represents the interface to the NvParameterized object +*/ +class Interface +{ + friend class Handle; +public: + + /** + \brief Destructor + */ + virtual ~Interface() {} + + /** + \brief Destroys the NvParameterized object and all nested dynamic objects contained within + */ + virtual void destroy() = 0; + + /** + \brief Initializes all parameters to their default value + */ + virtual void initDefaults(void) = 0; + + /** + \brief Initializes all parameters with random values + */ + virtual void initRandom(void) = 0; + + /** + \brief Get the class name + */ + virtual const char * className(void) const = 0; + + /** + \brief Sets the class name + + This method is used for named references. The input name should be one of the possible variants. + \see Definition::numRefVariants(), Definition::refVariantVal() + */ + virtual void setClassName(const char *name) = 0; + + /** + \brief Get the name of the NvParameterized object + This method is used for named references. The name will typically specify an asset to be loaded. + */ + virtual const char * name(void) const = 0; + + /** + \brief Set the name of the NvParameterized object + This method is used for named references. The name will typically specify an asset to be loaded. + */ + virtual void setName(const char *name) = 0; + + /** + \brief Get the class version + */ + virtual uint32_t version(void) const = 0; + + /** + \brief Get the major part of class version + */ + virtual uint16_t getMajorVersion(void) const = 0; + + /** + \brief Get the minor part of class version + */ + virtual uint16_t getMinorVersion(void) const = 0; + + /** + \brief Get the class checksum. + \param bits contains the number of bits contained in the checksum + \returns A pointer to a constant array of uint32_t values representing the checksum + */ + virtual const uint32_t * checksum(uint32_t &bits) const = 0; + + /** + \brief Get the number of parameters contained in the NvParameterized object + */ + virtual int32_t numParameters(void) = 0; + + /** + \brief Get the definition of i-th parameter + */ + virtual const Definition *parameterDefinition(int32_t index) = 0; + + /** + \brief Get definition of root structure + */ + virtual const Definition *rootParameterDefinition(void) = 0; + + /** + \brief Get definition of root structure + */ + virtual const Definition *rootParameterDefinition(void) const = 0; + + /** + \brief Set the Handle to point to the parameter specified by longName + Given a long name like "mystruct.somearray[10].foo", it will return + a handle to that specific parameter. The handle can then be used to + set/get values, as long as it's a handle to a leaf node. + \note this method will not work if an included reference's child is included in the longName + */ + virtual ErrorType getParameterHandle(const char *longName, Handle &handle) const = 0; + + /** + \brief Set the Handle to point to the parameter specified by longName + Given a long name like "mystruct.somearray[10].foo", it will return + a handle to that specific parameter. The handle can then be used to + set/get values, as long as it's a handle to a leaf node. + \note this method will not work if an included reference's child is included in the longName + */ + virtual ErrorType getParameterHandle(const char *longName, Handle &handle) = 0; + + /// An application may set a callback function that is called immediately before serialization + virtual void setSerializationCallback(SerializationCallback *cb, void *userData = NULL) = 0; + + /// Called prior by Serializer to serialization + virtual ErrorType callPreSerializeCallback() const = 0; + + + /** + \brief Compares two NvParameterized objects + \param [in] obj The other ::NvParameterized::Interface object (this == obj) + \param [out] handlesOfInequality If the return value is False, these handles will contain the path to where definition or data is not identical + \param [in] numHandlesOfInequality The number of handles that can be written to. + \param [in] doCompareNotSerialized If false differences of parameters with DONOTSERIALIZE-hint are ignored. + \returns true if parameter definition tree is equal as well as parameter values + */ + virtual bool equals(const ::NvParameterized::Interface &obj, Handle* handlesOfInequality = NULL, uint32_t numHandlesOfInequality = 0, bool doCompareNotSerialized = true) const = 0; + + /** + \brief Checks if object satisfies schema constraints + \param [out] invalidHandles If the return value is False, these handles will contain the path to invalid data + \param [in] numInvalidHandles The number of handles that can be written to. + \returns true if all values satisfy constraints + */ + virtual bool areParamsOK(Handle *invalidHandles = NULL, uint32_t numInvalidHandles = 0) = 0; + + /** + \brief Copies an NvParameterized object + \param [in] src the src NvParameterized object will be copied to this object. It must be of the same type (class name). + */ + virtual ErrorType copy(const ::NvParameterized::Interface &src) = 0; + + /** + \brief Clones an NvParameterized object + \param [out] nullDestObject cloned object; note this is a *reference* to a pointer; the destination cloned object will be created and stored in this pointer; should be NULL on entry! + */ + virtual ErrorType clone(Interface *&nullDestObject) const = 0; + + /** + \brief Check that alignments of internal elements match the schema + \warning Only for internal use + */ + virtual bool checkAlignments() const = 0; + +protected: + /** + \brief Initialize a Reference parameter + + \note By default previous value of parameter isn't destroyed (bool doDestroyOld = false) + */ + virtual ErrorType initParamRef(const Handle &handle, const char *chosenRefStr = 0, bool doDestroyOld = false) = 0; + + // These functions wrap the raw(Get|Set)XXXXX() methods. They deal with + // error handling and casting. + + /** + \brief Get param + */ + virtual ErrorType getParamBool(const Handle &handle, bool &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamBool(const Handle &handle, bool val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamBoolArray(const Handle &handle, bool *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamBoolArray(const Handle &handle, const bool *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamString(const Handle &handle, const char *&val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamString(const Handle &handle, const char *val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamStringArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamStringArray(const Handle &handle, const char **array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamEnum(const Handle &handle, const char *&val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamEnum(const Handle &handle, const char *val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamEnumArray(const Handle &handle, char **array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamEnumArray(const Handle &handle, const char **array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamRef(const Handle &handle, ::NvParameterized::Interface *&val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamRefArray(const Handle &handle, ::NvParameterized::Interface **array, int32_t n, int32_t offset = 0) const = 0; + + /** + \note By default previous value of parameter is not destroyed (bool doDestroyOld = false) + */ + virtual ErrorType setParamRef(const Handle &handle, ::NvParameterized::Interface * val, bool doDestroyOld = false) = 0; + + /** + \note By default previous values of parameter are not destroyed (bool doDestroyOld = false) + */ + virtual ErrorType setParamRefArray(const Handle &handle, /*const*/ ::NvParameterized::Interface **array, int32_t n, int32_t offset = 0, bool doDestroyOld = false) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI8(const Handle &handle, int8_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI8(const Handle &handle, int8_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI8Array(const Handle &handle, int8_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI8Array(const Handle &handle, const int8_t *val, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI16(const Handle &handle, int16_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI16(const Handle &handle, int16_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI16Array(const Handle &handle, int16_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI16Array(const Handle &handle, const int16_t *val, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI32(const Handle &handle, int32_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI32(const Handle &handle, int32_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI32Array(const Handle &handle, int32_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI32Array(const Handle &handle, const int32_t *val, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI64(const Handle &handle, int64_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI64(const Handle &handle, int64_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamI64Array(const Handle &handle, int64_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamI64Array(const Handle &handle, const int64_t *val, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU8(const Handle &handle, uint8_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU8(const Handle &handle, uint8_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU8Array(const Handle &handle, uint8_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU8Array(const Handle &handle, const uint8_t *val, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU16(const Handle &handle, uint16_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU16(const Handle &handle, uint16_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU16Array(const Handle &handle, uint16_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU16Array(const Handle &handle, const uint16_t *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU32(const Handle &handle, uint32_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU32(const Handle &handle, uint32_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU32Array(const Handle &handle, uint32_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU32Array(const Handle &handle, const uint32_t *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU64(const Handle &handle, uint64_t &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU64(const Handle &handle, uint64_t val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamU64Array(const Handle &handle, uint64_t *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamU64Array(const Handle &handle, const uint64_t *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamF32(const Handle &handle, float &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamF32(const Handle &handle, float val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamF32Array(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamF32Array(const Handle &handle, const float *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamF64(const Handle &handle, double &val) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamF64(const Handle &handle, double val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamF64Array(const Handle &handle, double *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamF64Array(const Handle &handle, const double *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamVec2(const Handle &handle, const physx::PxVec2 &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamVec2(const Handle &handle, physx::PxVec2 &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamVec2Array(const Handle &handle, physx::PxVec2 *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamVec2Array(const Handle &handle, const physx::PxVec2 *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamVec3(const Handle &handle, const physx::PxVec3 &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamVec3(const Handle &handle, physx::PxVec3 &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamVec3Array(const Handle &handle, physx::PxVec3 *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamVec3Array(const Handle &handle, const physx::PxVec3 *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamVec4(const Handle &handle, const physx::PxVec4 &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamVec4(const Handle &handle, physx::PxVec4 &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamVec4Array(const Handle &handle, physx::PxVec4 *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamVec4Array(const Handle &handle, const physx::PxVec4 *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamQuat(const Handle &handle, const physx::PxQuat &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamQuat(const Handle &handle, physx::PxQuat &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamQuatArray(const Handle &handle, physx::PxQuat *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamQuatArray(const Handle &handle, const physx::PxQuat *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamMat33(const Handle &handle, const physx::PxMat33 &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamMat33(const Handle &handle, physx::PxMat33 &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamMat33Array(const Handle &handle, physx::PxMat33 *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamMat33Array(const Handle &handle, const physx::PxMat33 *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamMat44(const Handle &handle, const physx::PxMat44 &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamMat44(const Handle &handle, physx::PxMat44 &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamMat44Array(const Handle &handle, physx::PxMat44 *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamMat44Array(const Handle &handle, const physx::PxMat44 *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamMat34Legacy(const Handle &handle, const float (&val)[12]) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamMat34Legacy(const Handle &handle, float (&val)[12]) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamMat34LegacyArray(const Handle &handle, float *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamMat34LegacyArray(const Handle &handle, const float *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamBounds3(const Handle &handle, const physx::PxBounds3 &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamBounds3(const Handle &handle, physx::PxBounds3 &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamBounds3Array(const Handle &handle, physx::PxBounds3 *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamTransform(const Handle &handle, const physx::PxTransform &val) = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamTransform(const Handle &handle, physx::PxTransform &val) const = 0; + + /** + \brief Get param + */ + virtual ErrorType getParamTransformArray(const Handle &handle, physx::PxTransform *array, int32_t n, int32_t offset = 0) const = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamTransformArray(const Handle &handle, const physx::PxTransform *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Set param + */ + virtual ErrorType setParamBounds3Array(const Handle &handle, const physx::PxBounds3 *array, int32_t n, int32_t offset = 0) = 0; + + /** + \brief Store value of parameter into a string + \see Handle::valueToStr + */ + virtual ErrorType valueToStr(const Handle &handle, char *buf, uint32_t bufSize, const char *&ret) = 0; + + /** + \brief Read value of parameter from string + \see Handle::strToValue + */ + virtual ErrorType strToValue(Handle &handle,const char *str, const char **endptr) = 0; // assigns this string to the value + + /** + \brief Resize array parameter + \see Handle::resizeArray + */ + virtual ErrorType resizeArray(const Handle &array_handle, int32_t new_size) = 0; + + /** + \brief Get size of array parameter + \see Handle::getArraySize + */ + virtual ErrorType getArraySize(const Handle &array_handle, int32_t &size, int32_t dimension = 0) const = 0; + + /** + \brief Swap two elements of an array + \see Handle::swapArrayElements + */ + virtual ErrorType swapArrayElements(const Handle &array_handle, uint32_t firstElement, uint32_t secondElement) = 0; +}; + +} // end of namespace + +#include "NvParameterized.inl" // inline the NvParamterHandle methods. + +PX_POP_PACK + +#endif // NV_PARAMETERIZED_H diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.inl b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.inl old mode 100644 new mode 100755 index b7c2d2c..43e1703 --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.inl +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized.inl @@ -1,1229 +1,1229 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - - -/*! -\brief NvParameterized inline implementation -*/ - -namespace NvParameterized -{ - -#include "nvparameterized/NvParameterizedMacroses.h" - -#if PX_VC && !PX_PS4 - #pragma warning(push) - #pragma warning(disable: 4996) -#endif //!PX_PS4 - -#define IS_ALPHA(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z')) -#define IS_DIGIT(c) ((c) >= '0' && (c) <= '9') -#define IS_ALPHANUM(c) (IS_ALPHA(c) || IS_DIGIT(c)) -#define IS_IDENTCHAR(c) (IS_ALPHANUM(c) || (c) == ' ' || (c) == '_') - -/** -\brief Enum of tokenizer result types -*/ -enum TokenizerResultType -{ - TOKENIZER_RESULT_NONE, - TOKENIZER_RESULT_BUFFER_OVERFLOW, - TOKENIZER_RESULT_SYNTAX_ERROR, - TOKENIZER_RESULT_STRUCT_MEMBER, - TOKENIZER_RESULT_ARRAY_INDEX -}; - -/** -\brief Get struct member token -*/ -PX_INLINE TokenizerResultType getStructMemberToken(const char *long_name, - char *token, - uint32_t max_token_len, - uint32_t &offset) -{ - PX_ASSERT(long_name != NULL); - PX_ASSERT(token != NULL); - PX_ASSERT(max_token_len > 1); - PX_ASSERT(IS_IDENTCHAR(long_name[0]) || long_name[0] == '.'); - - offset = 0; - - if(long_name[0] == '.') - offset++; - - uint32_t tokenLen = 0; - while(IS_IDENTCHAR(long_name[offset])) - { - if(offset == max_token_len - 1) - return(TOKENIZER_RESULT_BUFFER_OVERFLOW); - - token[tokenLen++] = long_name[offset++]; - } - - token[tokenLen++] = 0; - - if(long_name[offset] != 0 && long_name[offset] != '.' && long_name[offset] != '[') - return(TOKENIZER_RESULT_SYNTAX_ERROR); - - return(TOKENIZER_RESULT_STRUCT_MEMBER); -} - -/** -\brief Get array member token -*/ -PX_INLINE TokenizerResultType getArrayMemberToken(const char *long_name, - char *token, - uint32_t max_token_len, - uint32_t &offset) -{ - PX_ASSERT(long_name != NULL); - PX_ASSERT(token != NULL); - PX_ASSERT(max_token_len > 1); - PX_ASSERT(long_name[0] == '['); - - offset = 1; - - uint32_t tokenLen = 0; - while(long_name[offset] && IS_DIGIT(long_name[offset])) - { - if(tokenLen == max_token_len - 1) - return(TOKENIZER_RESULT_BUFFER_OVERFLOW); - - token[tokenLen++] = long_name[offset++]; - } - - token[tokenLen++] = 0; - - if(long_name[offset] != ']') - return(TOKENIZER_RESULT_SYNTAX_ERROR); - - offset++; - - return(TOKENIZER_RESULT_ARRAY_INDEX); -} - -/** -\brief Get next token -*/ -PX_INLINE TokenizerResultType getNextToken(const char *long_name, - char *token, - uint32_t max_token_len, - uint32_t &offset) -{ - PX_ASSERT(long_name != NULL); - PX_ASSERT(token != NULL); - PX_ASSERT(max_token_len > 1); - - if(long_name[0] == 0) - return(TOKENIZER_RESULT_NONE); - - if(long_name[0] == '.' || IS_IDENTCHAR(long_name[0])) - return(getStructMemberToken(long_name, token, max_token_len, offset)); - - if(long_name[0] == '[') - return(getArrayMemberToken(long_name, token, max_token_len, offset)); - - return(TOKENIZER_RESULT_SYNTAX_ERROR); -} - -#undef IS_ALPHA -#undef IS_DIGIT -#undef IS_ALPHANUM -#undef IS_IDENTCHAR - -/* - The local_strcat_s function appends strSource to strDestination and terminates the resulting string with a null character. - The initial character of strSource overwrites the terminating null character of strDestination. The behavior of strcat_s is - undefined if the source and destination strings overlap. Note that the second parameter is the total size of the buffer, not - the remaining size -*/ - -/** -\brief The local_strcat_s function appends strSource to strDestination and terminates the resulting string with a null character. -*/ -PX_INLINE int local_strcat_s(char* dest, size_t size, const char* src) -{ - size_t d, destStringLen, srcStringLen; - - if ( dest == NULL || - src == NULL || - size == 0 ) - { - return -1; - } - - destStringLen = strlen(dest); - srcStringLen = strlen(src); - d = srcStringLen + destStringLen; - - if ( size <= d ) - { - return -1; - } - - ::memcpy( &dest[destStringLen], src, srcStringLen ); - dest[d] = '\0'; - - return 0; -} - -/** -\brief The local_sprintf_s function wraps the va_list functionality required for PxVxprintf -*/ -int32_t local_sprintf_s( char * _DstBuf, size_t _DstSize, const char * _Format, ...); - -PX_INLINE Handle::Handle(::NvParameterized::Interface *iface) -{ - reset(); - mInterface = iface; - mIsConst = false; - if (mInterface != NULL) - mParameterDefinition = mInterface->rootParameterDefinition(); -} - -PX_INLINE Handle::Handle(::NvParameterized::Interface &iface) -{ - reset(); - mInterface = &iface; - mIsConst = false; - mParameterDefinition = mInterface->rootParameterDefinition(); -} - -PX_INLINE Handle::Handle(const ::NvParameterized::Interface &iface) -{ - reset(); - mInterface = const_cast< ::NvParameterized::Interface * >(&iface); - mIsConst = true; - mParameterDefinition = mInterface->rootParameterDefinition(); -} - -PX_INLINE Handle::Handle(const Handle ¶m_handle) -{ - reset(); - - if(param_handle.isValid()) - { - mNumIndexes = param_handle.mNumIndexes; - memcpy(mIndexList, param_handle.mIndexList, sizeof(int32_t) * mNumIndexes); - mParameterDefinition = param_handle.mParameterDefinition; - mIsValid = param_handle.mIsValid; - mIsConst = param_handle.mIsConst; - mInterface = param_handle.mInterface; - } - else - mIsConst = mIsValid = false; -} - - -PX_INLINE Handle::Handle(::NvParameterized::Interface &instance,const char *longName) -{ - mInterface = &instance; - mIsConst = false; - mInterface->getParameterHandle(longName, *this); -} - -PX_INLINE Handle::Handle(const ::NvParameterized::Interface &instance,const char *longName) -{ - mInterface = const_cast< ::NvParameterized::Interface *>(&instance); - mIsConst = true; - mInterface->getParameterHandle(longName, *this); -} - -PX_INLINE ErrorType Handle::getChildHandle(const ::NvParameterized::Interface *instance,const char *child_long_name, Handle &handle) -{ - handle = *this; - handle.mUserData = NULL; - return(handle.set(instance,child_long_name)); -} - -PX_INLINE ErrorType Handle::getParameter(const char *longName) -{ - if( !mInterface ) - { - return ERROR_HANDLE_MISSING_INTERFACE_POINTER; - } - - return mInterface->getParameterHandle(longName, *this); -} - -PX_INLINE ErrorType Handle::set(const ::NvParameterized::Interface *instance,const Definition *root,const char *child_long_name) -{ - PX_ASSERT(root->parent() == NULL); - - reset(); - mParameterDefinition = root; - mIsValid = true; - - return(set(instance,child_long_name)); -} - -PX_INLINE ErrorType Handle::set(const ::NvParameterized::Interface *instance,const char *child_long_name) -{ - PX_ASSERT(mParameterDefinition != NULL); - PX_ASSERT(child_long_name != NULL); - - if(!isValid()) - return(ERROR_INVALID_PARAMETER_HANDLE); - - mUserData = NULL; - - if(child_long_name[0] == 0) - { - return(ERROR_NONE); - } - - int32_t indexLevel = 0; - - mIsValid = false; - // while(1) causes C4127 warning - for( ; ; ) - { - char token[1024]; - uint32_t offset; - - TokenizerResultType Result = getNextToken(child_long_name, token, sizeof(token), offset); - - switch(Result) - { - case TOKENIZER_RESULT_NONE: - if(indexLevel == 0) - return(ERROR_INVALID_PARAMETER_NAME); - else - goto no_error; - - case TOKENIZER_RESULT_BUFFER_OVERFLOW: - return(ERROR_RESULT_BUFFER_OVERFLOW); - - case TOKENIZER_RESULT_SYNTAX_ERROR: - return(ERROR_SYNTAX_ERROR_IN_NAME); - - case TOKENIZER_RESULT_STRUCT_MEMBER: - { - if(mParameterDefinition->type() != TYPE_STRUCT) - return(ERROR_NAME_DOES_NOT_MATCH_DEFINITION); - - int32_t index; - mParameterDefinition = mParameterDefinition->child(token, index); - if(mParameterDefinition == NULL) - return(ERROR_INVALID_PARAMETER_NAME); - - pushIndex(index); - } - break; - - case TOKENIZER_RESULT_ARRAY_INDEX: - { - if(mParameterDefinition->type() != TYPE_ARRAY) - return(ERROR_NAME_DOES_NOT_MATCH_DEFINITION); - - int32_t index = atoi(token); - PX_ASSERT(index >= 0); - - int32_t arraySize=0; - if ( instance ) - { - Handle handle(*instance); - ErrorType err = instance->getParameterHandle( mParameterDefinition->longName(), handle ); - if(err != ERROR_NONE) - return(err); - handle.getArraySize(arraySize); - } - else - { - arraySize = mParameterDefinition->arraySize(); - } - - if(index >= arraySize ) - return(ERROR_INDEX_OUT_OF_RANGE); - - PX_ASSERT(mParameterDefinition->numChildren() == 1); - mParameterDefinition = mParameterDefinition->child(0); - - pushIndex(index); - } - break; - } - - child_long_name += offset; - indexLevel++; - } - -no_error: - - mIsValid = true; - return(ERROR_NONE); -} - -PX_INLINE ErrorType Handle::set(int32_t child_index) -{ - PX_ASSERT(mParameterDefinition != NULL); - PX_ASSERT(child_index >= 0); - - switch(parameterDefinition()->type()) - { - case TYPE_STRUCT: - if(child_index < 0 || child_index >= parameterDefinition()->numChildren()) - return(ERROR_INDEX_OUT_OF_RANGE); - mParameterDefinition = mParameterDefinition->child(child_index); - pushIndex(child_index); - - break; - - - case TYPE_ARRAY: - if(child_index < 0) - return(ERROR_INDEX_OUT_OF_RANGE); - - // parameterDefinition()->arraySize() does not work on dynamic arrays... - if( parameterDefinition()->arraySizeIsFixed() && - child_index >= parameterDefinition()->arraySize()) - return(ERROR_INDEX_OUT_OF_RANGE); - - mParameterDefinition = mParameterDefinition->child(0); - pushIndex(child_index); - break; - - NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS - default: - { - return(ERROR_IS_LEAF_NODE); - } - } - - mIsValid = true; - return(ERROR_NONE); -} - -PX_INLINE ErrorType Handle::getChildHandle(int32_t index, Handle &handle) -{ - if(parameterDefinition()->type() != TYPE_ARRAY && parameterDefinition()->type() != TYPE_STRUCT) - return(ERROR_IS_LEAF_NODE); - - if(!isValid()) - return(ERROR_INVALID_PARAMETER_HANDLE); - - handle = *this; - handle.pushIndex(index); - if(parameterDefinition()->type() == TYPE_STRUCT) - { - PX_ASSERT(parameterDefinition()->child(index) != NULL); - handle.mParameterDefinition = parameterDefinition()->child(index); - } - else - { - PX_ASSERT(parameterDefinition()->child(0) != NULL); - handle.mParameterDefinition = parameterDefinition()->child(0); - } - - return(ERROR_NONE); -} - -PX_INLINE bool Handle::getLongName(char *str, uint32_t max_str_len) const -{ - PX_ASSERT(parameterDefinition() != NULL); - - if(!isValid()) - return(false); - - if(numIndexes() < 1) - return(false); - - const Definition *root = parameterDefinition()->root(); - - *str = 0; - const Definition *node = root->child(index(0)); - char tmpStr[32]; - for(int32_t i=1; i <= numIndexes(); ++i) - { - PX_ASSERT(node != NULL); - PX_ASSERT(node->parent() != NULL); - - switch(node->parent()->type()) - { - case TYPE_STRUCT: - { - if(node->parent()->parent() != NULL) - { - local_strcat_s(str, max_str_len, "."); - } - local_strcat_s(str, max_str_len, node->name()); - break; - } - - case TYPE_ARRAY: - { - local_strcat_s(str, max_str_len, "["); - - local_sprintf_s(tmpStr, sizeof(tmpStr), "%d", index(i-1)); - - local_strcat_s(str, max_str_len, tmpStr); - local_strcat_s(str, max_str_len, "]"); - break; - } - - NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS - default: - { - local_strcat_s(str, max_str_len, node->name()); - } - } - - switch(node->type()) - { - case TYPE_STRUCT: - node = node->child(index(i)); - break; - - case TYPE_ARRAY: - node = node->child(0); - break; - - NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS - default: - node = NULL; - } - } - - return(true); -} - -PX_INLINE void Handle::reset(void) -{ - mNumIndexes = 0; - mParameterDefinition = NULL; - mUserData = NULL; - mIsValid = false; -} - -PX_INLINE void Handle::pushIndex(int32_t index) -{ - PX_ASSERT(mNumIndexes < MAX_DEPTH); - PX_ASSERT(index >= 0); - - if(mNumIndexes < MAX_DEPTH) - mIndexList[mNumIndexes++] = index; -} - -PX_INLINE int32_t Handle::popIndex(int32_t levels) -{ - PX_ASSERT(levels > 0); - PX_ASSERT(mNumIndexes >= levels); - PX_ASSERT(mParameterDefinition != NULL); - - if(mNumIndexes >= levels ) - { - mNumIndexes -= levels; - - for(; levels > 0; --levels) - mParameterDefinition = mParameterDefinition->parent(); - - return(mIndexList[mNumIndexes]); - } - - return(-1); -} - -PX_INLINE ErrorType Handle::initParamRef(const char *chosenRefStr, bool doDestroyOld) -{ - PX_ASSERT(mInterface); - return mInterface->initParamRef(*this, chosenRefStr, doDestroyOld); -} - -// These functions wrap the raw(Get|Set)XXXXX() methods. They deal with -// error handling and casting. - -#define CHECK_CONST_HANDLE if( mIsConst ) return ERROR_MODIFY_CONST_HANDLE; - -PX_INLINE ErrorType Handle::getParamBool(bool &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamBool(*this,val); -} - -PX_INLINE ErrorType Handle::setParamBool(bool val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamBool(*this,val); -} - -PX_INLINE ErrorType Handle::getParamBoolArray(bool *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamBoolArray(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamBoolArray(const bool *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamBoolArray(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::getParamString(const char *&val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamString(*this,val); -} - -PX_INLINE ErrorType Handle::setParamString(const char *val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamString(*this,val); -} - -PX_INLINE ErrorType Handle::getParamStringArray(char **array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamStringArray(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamStringArray(const char **array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamStringArray(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamEnum(const char *&val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamEnum(*this,val); -} - -PX_INLINE ErrorType Handle::setParamEnum(const char *val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamEnum(*this,val); -} - -PX_INLINE ErrorType Handle::getParamEnumArray(char **array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamEnumArray(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamEnumArray(const char **array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamEnumArray(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamRef(::NvParameterized::Interface *&val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamRef(*this,val); -} - -PX_INLINE ErrorType Handle::setParamRef(::NvParameterized::Interface *val, bool doDestroyOld) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamRef(*this, val, doDestroyOld); -} - -PX_INLINE ErrorType Handle::getParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamRefArray(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset, bool doDestroyOld) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamRefArray(*this,array,n,offset,doDestroyOld); -} - -PX_INLINE ErrorType Handle::getParamI8(int8_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI8(*this,val); -} - -PX_INLINE ErrorType Handle::setParamI8(int8_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI8(*this,val); -} - -PX_INLINE ErrorType Handle::getParamI8Array(int8_t *_array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI8Array(*this,_array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamI8Array(const int8_t *val, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI8Array(*this,val,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamI16(int16_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI16(*this,val); -} - -PX_INLINE ErrorType Handle::setParamI16(int16_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI16(*this,val); -} - -PX_INLINE ErrorType Handle::getParamI16Array(int16_t *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI16Array(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamI16Array(const int16_t *val, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI16Array(*this,val,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamI32(int32_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI32(*this,val); -} - -PX_INLINE ErrorType Handle::setParamI32(int32_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI32(*this,val); -} - -PX_INLINE ErrorType Handle::getParamI32Array(int32_t *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI32Array(*this,array,n,offset ) ; -} - -PX_INLINE ErrorType Handle::setParamI32Array(const int32_t *val, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI32Array(*this,val,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamI64(int64_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI64(*this,val) ; -} - -PX_INLINE ErrorType Handle::setParamI64(int64_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI64(*this,val); -} - -PX_INLINE ErrorType Handle::getParamI64Array(int64_t *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamI64Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamI64Array(const int64_t *val, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamI64Array(*this,val,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamU8(uint8_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU8(*this,val); -} - -PX_INLINE ErrorType Handle::setParamU8(uint8_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU8(*this,val); -} - -PX_INLINE ErrorType Handle::getParamU8Array(uint8_t *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU8Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamU8Array(const uint8_t *val, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU8Array(*this,val,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamU16(uint16_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU16(*this,val); -} - -PX_INLINE ErrorType Handle::setParamU16(uint16_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU16(*this,val); -} - -PX_INLINE ErrorType Handle::getParamU16Array(uint16_t *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU16Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamU16Array(const uint16_t *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU16Array(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamU32(uint32_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU32(*this,val); -} - -PX_INLINE ErrorType Handle::setParamU32(uint32_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU32(*this,val); -} - -PX_INLINE ErrorType Handle::getParamU32Array(uint32_t *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU32Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamU32Array(const uint32_t *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU32Array(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamU64(uint64_t &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU64(*this,val); -} - -PX_INLINE ErrorType Handle::setParamU64(uint64_t val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU64(*this,val); -} - -PX_INLINE ErrorType Handle::getParamU64Array(uint64_t *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamU64Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamU64Array(const uint64_t *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamU64Array(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::getParamF32(float &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamF32(*this,val); -} - -PX_INLINE ErrorType Handle::setParamF32(float val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamF32(*this,val); -} - -PX_INLINE ErrorType Handle::getParamF32Array(float *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamF32Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamF32Array(const float *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamF32Array(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::getParamF64(double &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamF64(*this,val); -} - -PX_INLINE ErrorType Handle::setParamF64(double val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamF64(*this,val); -} - -PX_INLINE ErrorType Handle::getParamF64Array(double *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamF64Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamF64Array(const double *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamF64Array(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::setParamVec2(const physx::PxVec2 &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamVec2(*this,val); -} - -PX_INLINE ErrorType Handle::getParamVec2(physx::PxVec2 &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamVec2(*this,val); -} - -PX_INLINE ErrorType Handle::getParamVec2Array(physx::PxVec2 *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamVec2Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamVec2Array(const physx::PxVec2 *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamVec2Array(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::setParamVec3(const physx::PxVec3 &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamVec3(*this,val); -} - -PX_INLINE ErrorType Handle::getParamVec3(physx::PxVec3 &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamVec3(*this,val); -} - -PX_INLINE ErrorType Handle::getParamVec3Array(physx::PxVec3 *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamVec3Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamVec3Array(const physx::PxVec3 *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamVec3Array(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::setParamVec4(const physx::PxVec4 &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamVec4(*this,val); -} - -PX_INLINE ErrorType Handle::getParamVec4(physx::PxVec4 &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamVec4(*this,val); -} - -PX_INLINE ErrorType Handle::getParamVec4Array(physx::PxVec4 *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamVec4Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamVec4Array(const physx::PxVec4 *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamVec4Array(*this,array,n,offset); -} - - -PX_INLINE ErrorType Handle::setParamQuat(const physx::PxQuat &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamQuat(*this,val); -} - -PX_INLINE ErrorType Handle::getParamQuat(physx::PxQuat &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamQuat(*this,val); -} - -PX_INLINE ErrorType Handle::getParamQuatArray(physx::PxQuat *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamQuatArray(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamQuatArray(const physx::PxQuat *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamQuatArray(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamMat33(const physx::PxMat33 &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamMat33(*this,val); -} - -PX_INLINE ErrorType Handle::getParamMat33(physx::PxMat33 &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamMat33(*this,val); -} - -PX_INLINE ErrorType Handle::getParamMat33Array(physx::PxMat33 *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamMat33Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamMat33Array(const physx::PxMat33 *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamMat33Array(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamMat44(const physx::PxMat44 &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamMat44(*this,val); -} - -PX_INLINE ErrorType Handle::getParamMat44(physx::PxMat44 &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamMat44(*this,val); -} - -PX_INLINE ErrorType Handle::getParamMat44Array(physx::PxMat44 *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamMat44Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamMat44Array(const physx::PxMat44 *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamMat44Array(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamMat34Legacy(const float (&val)[12]) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamMat34Legacy(*this,val); -} - -PX_INLINE ErrorType Handle::getParamMat34Legacy(float (&val)[12]) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamMat34Legacy(*this,val); -} - -PX_INLINE ErrorType Handle::getParamMat34LegacyArray(float *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamMat34LegacyArray(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamMat34LegacyArray(const float *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamMat34LegacyArray(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamBounds3(const physx::PxBounds3 &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamBounds3(*this,val); -} - -PX_INLINE ErrorType Handle::getParamBounds3(physx::PxBounds3 &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamBounds3(*this,val); -} - -PX_INLINE ErrorType Handle::getParamBounds3Array(physx::PxBounds3 *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamBounds3Array(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamBounds3Array(const physx::PxBounds3 *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamBounds3Array(*this,array,n,offset); -} - -PX_INLINE ErrorType Handle::setParamTransform(const physx::PxTransform &val) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamTransform(*this,val); -} - -PX_INLINE ErrorType Handle::getParamTransform(physx::PxTransform &val) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamTransform(*this,val); -} - -PX_INLINE ErrorType Handle::getParamTransformArray(physx::PxTransform *array, int32_t n, int32_t offset ) const -{ - PX_ASSERT(mInterface); - return mInterface->getParamTransformArray(*this,array,n,offset ); -} - -PX_INLINE ErrorType Handle::setParamTransformArray(const physx::PxTransform *array, int32_t n, int32_t offset) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->setParamTransformArray(*this,array,n,offset); -} - - - -#define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -#define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ - template <> PX_INLINE ::NvParameterized::ErrorType Handle::setParam(const c_type &val) { return setParam##type_name(val); } \ - template <> PX_INLINE ::NvParameterized::ErrorType Handle::getParam(c_type &val) const {return getParam##type_name(val); } \ - template <> PX_INLINE ::NvParameterized::ErrorType Handle::getParamArray(c_type *array, int32_t n, int32_t offset) const { return getParam##type_name##Array(array, n, offset); } \ - template <> PX_INLINE ::NvParameterized::ErrorType Handle::setParamArray(const c_type *array, int32_t n, int32_t offset) { return setParam##type_name##Array(array, n, offset); } -#include "NvParameterized_types.h" - -PX_INLINE ErrorType Handle::valueToStr(char *buf, uint32_t bufSize, const char *&ret) -{ - PX_ASSERT(mInterface); - return mInterface->valueToStr(*this, buf, bufSize, ret); -} - -PX_INLINE ErrorType Handle::strToValue(const char *str, const char **endptr) // assigns this string to the valu -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->strToValue(*this,str, endptr); // assigns this string to the value -} - - -PX_INLINE ErrorType Handle::resizeArray(int32_t new_size) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->resizeArray(*this,new_size); -} - -PX_INLINE ErrorType Handle::getArraySize(int32_t &size, int32_t dimension ) const -{ - PX_ASSERT(mInterface); - return mInterface->getArraySize(*this,size,dimension ); -} - -PX_INLINE ErrorType Handle::swapArrayElements(uint32_t firstElement, uint32_t secondElement) -{ - PX_ASSERT(mInterface); - CHECK_CONST_HANDLE - return mInterface->swapArrayElements(*this, firstElement, secondElement); -} - -#undef IS_ALPHA -#undef IS_DIGIT -#undef IS_ALPHANUM -#undef IS_IDENTCHAR -#undef CHECK_CONST_HANDLE - -#if PX_VC && !PX_PS4 - #pragma warning(pop) -#endif //!PX_PS4 - -} // end of namespace +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + + +/*! +\brief NvParameterized inline implementation +*/ + +namespace NvParameterized +{ + +#include "nvparameterized/NvParameterizedMacroses.h" + +#if PX_VC && !PX_PS4 + #pragma warning(push) + #pragma warning(disable: 4996) +#endif //!PX_PS4 + +#define IS_ALPHA(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z')) +#define IS_DIGIT(c) ((c) >= '0' && (c) <= '9') +#define IS_ALPHANUM(c) (IS_ALPHA(c) || IS_DIGIT(c)) +#define IS_IDENTCHAR(c) (IS_ALPHANUM(c) || (c) == ' ' || (c) == '_') + +/** +\brief Enum of tokenizer result types +*/ +enum TokenizerResultType +{ + TOKENIZER_RESULT_NONE, + TOKENIZER_RESULT_BUFFER_OVERFLOW, + TOKENIZER_RESULT_SYNTAX_ERROR, + TOKENIZER_RESULT_STRUCT_MEMBER, + TOKENIZER_RESULT_ARRAY_INDEX +}; + +/** +\brief Get struct member token +*/ +PX_INLINE TokenizerResultType getStructMemberToken(const char *long_name, + char *token, + uint32_t max_token_len, + uint32_t &offset) +{ + PX_ASSERT(long_name != NULL); + PX_ASSERT(token != NULL); + PX_ASSERT(max_token_len > 1); + PX_ASSERT(IS_IDENTCHAR(long_name[0]) || long_name[0] == '.'); + + offset = 0; + + if(long_name[0] == '.') + offset++; + + uint32_t tokenLen = 0; + while(IS_IDENTCHAR(long_name[offset])) + { + if(offset == max_token_len - 1) + return(TOKENIZER_RESULT_BUFFER_OVERFLOW); + + token[tokenLen++] = long_name[offset++]; + } + + token[tokenLen++] = 0; + + if(long_name[offset] != 0 && long_name[offset] != '.' && long_name[offset] != '[') + return(TOKENIZER_RESULT_SYNTAX_ERROR); + + return(TOKENIZER_RESULT_STRUCT_MEMBER); +} + +/** +\brief Get array member token +*/ +PX_INLINE TokenizerResultType getArrayMemberToken(const char *long_name, + char *token, + uint32_t max_token_len, + uint32_t &offset) +{ + PX_ASSERT(long_name != NULL); + PX_ASSERT(token != NULL); + PX_ASSERT(max_token_len > 1); + PX_ASSERT(long_name[0] == '['); + + offset = 1; + + uint32_t tokenLen = 0; + while(long_name[offset] && IS_DIGIT(long_name[offset])) + { + if(tokenLen == max_token_len - 1) + return(TOKENIZER_RESULT_BUFFER_OVERFLOW); + + token[tokenLen++] = long_name[offset++]; + } + + token[tokenLen++] = 0; + + if(long_name[offset] != ']') + return(TOKENIZER_RESULT_SYNTAX_ERROR); + + offset++; + + return(TOKENIZER_RESULT_ARRAY_INDEX); +} + +/** +\brief Get next token +*/ +PX_INLINE TokenizerResultType getNextToken(const char *long_name, + char *token, + uint32_t max_token_len, + uint32_t &offset) +{ + PX_ASSERT(long_name != NULL); + PX_ASSERT(token != NULL); + PX_ASSERT(max_token_len > 1); + + if(long_name[0] == 0) + return(TOKENIZER_RESULT_NONE); + + if(long_name[0] == '.' || IS_IDENTCHAR(long_name[0])) + return(getStructMemberToken(long_name, token, max_token_len, offset)); + + if(long_name[0] == '[') + return(getArrayMemberToken(long_name, token, max_token_len, offset)); + + return(TOKENIZER_RESULT_SYNTAX_ERROR); +} + +#undef IS_ALPHA +#undef IS_DIGIT +#undef IS_ALPHANUM +#undef IS_IDENTCHAR + +/* + The local_strcat_s function appends strSource to strDestination and terminates the resulting string with a null character. + The initial character of strSource overwrites the terminating null character of strDestination. The behavior of strcat_s is + undefined if the source and destination strings overlap. Note that the second parameter is the total size of the buffer, not + the remaining size +*/ + +/** +\brief The local_strcat_s function appends strSource to strDestination and terminates the resulting string with a null character. +*/ +PX_INLINE int local_strcat_s(char* dest, size_t size, const char* src) +{ + size_t d, destStringLen, srcStringLen; + + if ( dest == NULL || + src == NULL || + size == 0 ) + { + return -1; + } + + destStringLen = strlen(dest); + srcStringLen = strlen(src); + d = srcStringLen + destStringLen; + + if ( size <= d ) + { + return -1; + } + + ::memcpy( &dest[destStringLen], src, srcStringLen ); + dest[d] = '\0'; + + return 0; +} + +/** +\brief The local_sprintf_s function wraps the va_list functionality required for PxVxprintf +*/ +int32_t local_sprintf_s( char * _DstBuf, size_t _DstSize, const char * _Format, ...); + +PX_INLINE Handle::Handle(::NvParameterized::Interface *iface) +{ + reset(); + mInterface = iface; + mIsConst = false; + if (mInterface != NULL) + mParameterDefinition = mInterface->rootParameterDefinition(); +} + +PX_INLINE Handle::Handle(::NvParameterized::Interface &iface) +{ + reset(); + mInterface = &iface; + mIsConst = false; + mParameterDefinition = mInterface->rootParameterDefinition(); +} + +PX_INLINE Handle::Handle(const ::NvParameterized::Interface &iface) +{ + reset(); + mInterface = const_cast< ::NvParameterized::Interface * >(&iface); + mIsConst = true; + mParameterDefinition = mInterface->rootParameterDefinition(); +} + +PX_INLINE Handle::Handle(const Handle ¶m_handle) +{ + reset(); + + if(param_handle.isValid()) + { + mNumIndexes = param_handle.mNumIndexes; + memcpy(mIndexList, param_handle.mIndexList, sizeof(int32_t) * mNumIndexes); + mParameterDefinition = param_handle.mParameterDefinition; + mIsValid = param_handle.mIsValid; + mIsConst = param_handle.mIsConst; + mInterface = param_handle.mInterface; + } + else + mIsConst = mIsValid = false; +} + + +PX_INLINE Handle::Handle(::NvParameterized::Interface &instance,const char *longName) +{ + mInterface = &instance; + mIsConst = false; + mInterface->getParameterHandle(longName, *this); +} + +PX_INLINE Handle::Handle(const ::NvParameterized::Interface &instance,const char *longName) +{ + mInterface = const_cast< ::NvParameterized::Interface *>(&instance); + mIsConst = true; + mInterface->getParameterHandle(longName, *this); +} + +PX_INLINE ErrorType Handle::getChildHandle(const ::NvParameterized::Interface *instance,const char *child_long_name, Handle &handle) +{ + handle = *this; + handle.mUserData = NULL; + return(handle.set(instance,child_long_name)); +} + +PX_INLINE ErrorType Handle::getParameter(const char *longName) +{ + if( !mInterface ) + { + return ERROR_HANDLE_MISSING_INTERFACE_POINTER; + } + + return mInterface->getParameterHandle(longName, *this); +} + +PX_INLINE ErrorType Handle::set(const ::NvParameterized::Interface *instance,const Definition *root,const char *child_long_name) +{ + PX_ASSERT(root->parent() == NULL); + + reset(); + mParameterDefinition = root; + mIsValid = true; + + return(set(instance,child_long_name)); +} + +PX_INLINE ErrorType Handle::set(const ::NvParameterized::Interface *instance,const char *child_long_name) +{ + PX_ASSERT(mParameterDefinition != NULL); + PX_ASSERT(child_long_name != NULL); + + if(!isValid()) + return(ERROR_INVALID_PARAMETER_HANDLE); + + mUserData = NULL; + + if(child_long_name[0] == 0) + { + return(ERROR_NONE); + } + + int32_t indexLevel = 0; + + mIsValid = false; + // while(1) causes C4127 warning + for( ; ; ) + { + char token[1024]; + uint32_t offset; + + TokenizerResultType Result = getNextToken(child_long_name, token, sizeof(token), offset); + + switch(Result) + { + case TOKENIZER_RESULT_NONE: + if(indexLevel == 0) + return(ERROR_INVALID_PARAMETER_NAME); + else + goto no_error; + + case TOKENIZER_RESULT_BUFFER_OVERFLOW: + return(ERROR_RESULT_BUFFER_OVERFLOW); + + case TOKENIZER_RESULT_SYNTAX_ERROR: + return(ERROR_SYNTAX_ERROR_IN_NAME); + + case TOKENIZER_RESULT_STRUCT_MEMBER: + { + if(mParameterDefinition->type() != TYPE_STRUCT) + return(ERROR_NAME_DOES_NOT_MATCH_DEFINITION); + + int32_t index; + mParameterDefinition = mParameterDefinition->child(token, index); + if(mParameterDefinition == NULL) + return(ERROR_INVALID_PARAMETER_NAME); + + pushIndex(index); + } + break; + + case TOKENIZER_RESULT_ARRAY_INDEX: + { + if(mParameterDefinition->type() != TYPE_ARRAY) + return(ERROR_NAME_DOES_NOT_MATCH_DEFINITION); + + int32_t index = atoi(token); + PX_ASSERT(index >= 0); + + int32_t arraySize=0; + if ( instance ) + { + Handle handle(*instance); + ErrorType err = instance->getParameterHandle( mParameterDefinition->longName(), handle ); + if(err != ERROR_NONE) + return(err); + handle.getArraySize(arraySize); + } + else + { + arraySize = mParameterDefinition->arraySize(); + } + + if(index >= arraySize ) + return(ERROR_INDEX_OUT_OF_RANGE); + + PX_ASSERT(mParameterDefinition->numChildren() == 1); + mParameterDefinition = mParameterDefinition->child(0); + + pushIndex(index); + } + break; + } + + child_long_name += offset; + indexLevel++; + } + +no_error: + + mIsValid = true; + return(ERROR_NONE); +} + +PX_INLINE ErrorType Handle::set(int32_t child_index) +{ + PX_ASSERT(mParameterDefinition != NULL); + PX_ASSERT(child_index >= 0); + + switch(parameterDefinition()->type()) + { + case TYPE_STRUCT: + if(child_index < 0 || child_index >= parameterDefinition()->numChildren()) + return(ERROR_INDEX_OUT_OF_RANGE); + mParameterDefinition = mParameterDefinition->child(child_index); + pushIndex(child_index); + + break; + + + case TYPE_ARRAY: + if(child_index < 0) + return(ERROR_INDEX_OUT_OF_RANGE); + + // parameterDefinition()->arraySize() does not work on dynamic arrays... + if( parameterDefinition()->arraySizeIsFixed() && + child_index >= parameterDefinition()->arraySize()) + return(ERROR_INDEX_OUT_OF_RANGE); + + mParameterDefinition = mParameterDefinition->child(0); + pushIndex(child_index); + break; + + NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS + default: + { + return(ERROR_IS_LEAF_NODE); + } + } + + mIsValid = true; + return(ERROR_NONE); +} + +PX_INLINE ErrorType Handle::getChildHandle(int32_t index, Handle &handle) +{ + if(parameterDefinition()->type() != TYPE_ARRAY && parameterDefinition()->type() != TYPE_STRUCT) + return(ERROR_IS_LEAF_NODE); + + if(!isValid()) + return(ERROR_INVALID_PARAMETER_HANDLE); + + handle = *this; + handle.pushIndex(index); + if(parameterDefinition()->type() == TYPE_STRUCT) + { + PX_ASSERT(parameterDefinition()->child(index) != NULL); + handle.mParameterDefinition = parameterDefinition()->child(index); + } + else + { + PX_ASSERT(parameterDefinition()->child(0) != NULL); + handle.mParameterDefinition = parameterDefinition()->child(0); + } + + return(ERROR_NONE); +} + +PX_INLINE bool Handle::getLongName(char *str, uint32_t max_str_len) const +{ + PX_ASSERT(parameterDefinition() != NULL); + + if(!isValid()) + return(false); + + if(numIndexes() < 1) + return(false); + + const Definition *root = parameterDefinition()->root(); + + *str = 0; + const Definition *node = root->child(index(0)); + char tmpStr[32]; + for(int32_t i=1; i <= numIndexes(); ++i) + { + PX_ASSERT(node != NULL); + PX_ASSERT(node->parent() != NULL); + + switch(node->parent()->type()) + { + case TYPE_STRUCT: + { + if(node->parent()->parent() != NULL) + { + local_strcat_s(str, max_str_len, "."); + } + local_strcat_s(str, max_str_len, node->name()); + break; + } + + case TYPE_ARRAY: + { + local_strcat_s(str, max_str_len, "["); + + local_sprintf_s(tmpStr, sizeof(tmpStr), "%d", index(i-1)); + + local_strcat_s(str, max_str_len, tmpStr); + local_strcat_s(str, max_str_len, "]"); + break; + } + + NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS + default: + { + local_strcat_s(str, max_str_len, node->name()); + } + } + + switch(node->type()) + { + case TYPE_STRUCT: + node = node->child(index(i)); + break; + + case TYPE_ARRAY: + node = node->child(0); + break; + + NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS + default: + node = NULL; + } + } + + return(true); +} + +PX_INLINE void Handle::reset(void) +{ + mNumIndexes = 0; + mParameterDefinition = NULL; + mUserData = NULL; + mIsValid = false; +} + +PX_INLINE void Handle::pushIndex(int32_t index) +{ + PX_ASSERT(mNumIndexes < MAX_DEPTH); + PX_ASSERT(index >= 0); + + if(mNumIndexes < MAX_DEPTH) + mIndexList[mNumIndexes++] = index; +} + +PX_INLINE int32_t Handle::popIndex(int32_t levels) +{ + PX_ASSERT(levels > 0); + PX_ASSERT(mNumIndexes >= levels); + PX_ASSERT(mParameterDefinition != NULL); + + if(mNumIndexes >= levels ) + { + mNumIndexes -= levels; + + for(; levels > 0; --levels) + mParameterDefinition = mParameterDefinition->parent(); + + return(mIndexList[mNumIndexes]); + } + + return(-1); +} + +PX_INLINE ErrorType Handle::initParamRef(const char *chosenRefStr, bool doDestroyOld) +{ + PX_ASSERT(mInterface); + return mInterface->initParamRef(*this, chosenRefStr, doDestroyOld); +} + +// These functions wrap the raw(Get|Set)XXXXX() methods. They deal with +// error handling and casting. + +#define CHECK_CONST_HANDLE if( mIsConst ) return ERROR_MODIFY_CONST_HANDLE; + +PX_INLINE ErrorType Handle::getParamBool(bool &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamBool(*this,val); +} + +PX_INLINE ErrorType Handle::setParamBool(bool val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamBool(*this,val); +} + +PX_INLINE ErrorType Handle::getParamBoolArray(bool *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamBoolArray(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamBoolArray(const bool *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamBoolArray(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::getParamString(const char *&val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamString(*this,val); +} + +PX_INLINE ErrorType Handle::setParamString(const char *val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamString(*this,val); +} + +PX_INLINE ErrorType Handle::getParamStringArray(char **array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamStringArray(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamStringArray(const char **array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamStringArray(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamEnum(const char *&val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamEnum(*this,val); +} + +PX_INLINE ErrorType Handle::setParamEnum(const char *val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamEnum(*this,val); +} + +PX_INLINE ErrorType Handle::getParamEnumArray(char **array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamEnumArray(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamEnumArray(const char **array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamEnumArray(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamRef(::NvParameterized::Interface *&val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamRef(*this,val); +} + +PX_INLINE ErrorType Handle::setParamRef(::NvParameterized::Interface *val, bool doDestroyOld) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamRef(*this, val, doDestroyOld); +} + +PX_INLINE ErrorType Handle::getParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamRefArray(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamRefArray(::NvParameterized::Interface **array, int32_t n, int32_t offset, bool doDestroyOld) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamRefArray(*this,array,n,offset,doDestroyOld); +} + +PX_INLINE ErrorType Handle::getParamI8(int8_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI8(*this,val); +} + +PX_INLINE ErrorType Handle::setParamI8(int8_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI8(*this,val); +} + +PX_INLINE ErrorType Handle::getParamI8Array(int8_t *_array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI8Array(*this,_array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamI8Array(const int8_t *val, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI8Array(*this,val,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamI16(int16_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI16(*this,val); +} + +PX_INLINE ErrorType Handle::setParamI16(int16_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI16(*this,val); +} + +PX_INLINE ErrorType Handle::getParamI16Array(int16_t *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI16Array(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamI16Array(const int16_t *val, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI16Array(*this,val,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamI32(int32_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI32(*this,val); +} + +PX_INLINE ErrorType Handle::setParamI32(int32_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI32(*this,val); +} + +PX_INLINE ErrorType Handle::getParamI32Array(int32_t *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI32Array(*this,array,n,offset ) ; +} + +PX_INLINE ErrorType Handle::setParamI32Array(const int32_t *val, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI32Array(*this,val,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamI64(int64_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI64(*this,val) ; +} + +PX_INLINE ErrorType Handle::setParamI64(int64_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI64(*this,val); +} + +PX_INLINE ErrorType Handle::getParamI64Array(int64_t *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamI64Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamI64Array(const int64_t *val, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamI64Array(*this,val,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamU8(uint8_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU8(*this,val); +} + +PX_INLINE ErrorType Handle::setParamU8(uint8_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU8(*this,val); +} + +PX_INLINE ErrorType Handle::getParamU8Array(uint8_t *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU8Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamU8Array(const uint8_t *val, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU8Array(*this,val,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamU16(uint16_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU16(*this,val); +} + +PX_INLINE ErrorType Handle::setParamU16(uint16_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU16(*this,val); +} + +PX_INLINE ErrorType Handle::getParamU16Array(uint16_t *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU16Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamU16Array(const uint16_t *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU16Array(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamU32(uint32_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU32(*this,val); +} + +PX_INLINE ErrorType Handle::setParamU32(uint32_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU32(*this,val); +} + +PX_INLINE ErrorType Handle::getParamU32Array(uint32_t *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU32Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamU32Array(const uint32_t *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU32Array(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamU64(uint64_t &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU64(*this,val); +} + +PX_INLINE ErrorType Handle::setParamU64(uint64_t val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU64(*this,val); +} + +PX_INLINE ErrorType Handle::getParamU64Array(uint64_t *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamU64Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamU64Array(const uint64_t *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamU64Array(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::getParamF32(float &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamF32(*this,val); +} + +PX_INLINE ErrorType Handle::setParamF32(float val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamF32(*this,val); +} + +PX_INLINE ErrorType Handle::getParamF32Array(float *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamF32Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamF32Array(const float *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamF32Array(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::getParamF64(double &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamF64(*this,val); +} + +PX_INLINE ErrorType Handle::setParamF64(double val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamF64(*this,val); +} + +PX_INLINE ErrorType Handle::getParamF64Array(double *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamF64Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamF64Array(const double *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamF64Array(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::setParamVec2(const physx::PxVec2 &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamVec2(*this,val); +} + +PX_INLINE ErrorType Handle::getParamVec2(physx::PxVec2 &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamVec2(*this,val); +} + +PX_INLINE ErrorType Handle::getParamVec2Array(physx::PxVec2 *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamVec2Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamVec2Array(const physx::PxVec2 *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamVec2Array(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::setParamVec3(const physx::PxVec3 &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamVec3(*this,val); +} + +PX_INLINE ErrorType Handle::getParamVec3(physx::PxVec3 &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamVec3(*this,val); +} + +PX_INLINE ErrorType Handle::getParamVec3Array(physx::PxVec3 *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamVec3Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamVec3Array(const physx::PxVec3 *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamVec3Array(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::setParamVec4(const physx::PxVec4 &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamVec4(*this,val); +} + +PX_INLINE ErrorType Handle::getParamVec4(physx::PxVec4 &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamVec4(*this,val); +} + +PX_INLINE ErrorType Handle::getParamVec4Array(physx::PxVec4 *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamVec4Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamVec4Array(const physx::PxVec4 *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamVec4Array(*this,array,n,offset); +} + + +PX_INLINE ErrorType Handle::setParamQuat(const physx::PxQuat &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamQuat(*this,val); +} + +PX_INLINE ErrorType Handle::getParamQuat(physx::PxQuat &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamQuat(*this,val); +} + +PX_INLINE ErrorType Handle::getParamQuatArray(physx::PxQuat *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamQuatArray(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamQuatArray(const physx::PxQuat *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamQuatArray(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamMat33(const physx::PxMat33 &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamMat33(*this,val); +} + +PX_INLINE ErrorType Handle::getParamMat33(physx::PxMat33 &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamMat33(*this,val); +} + +PX_INLINE ErrorType Handle::getParamMat33Array(physx::PxMat33 *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamMat33Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamMat33Array(const physx::PxMat33 *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamMat33Array(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamMat44(const physx::PxMat44 &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamMat44(*this,val); +} + +PX_INLINE ErrorType Handle::getParamMat44(physx::PxMat44 &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamMat44(*this,val); +} + +PX_INLINE ErrorType Handle::getParamMat44Array(physx::PxMat44 *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamMat44Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamMat44Array(const physx::PxMat44 *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamMat44Array(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamMat34Legacy(const float (&val)[12]) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamMat34Legacy(*this,val); +} + +PX_INLINE ErrorType Handle::getParamMat34Legacy(float (&val)[12]) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamMat34Legacy(*this,val); +} + +PX_INLINE ErrorType Handle::getParamMat34LegacyArray(float *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamMat34LegacyArray(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamMat34LegacyArray(const float *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamMat34LegacyArray(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamBounds3(const physx::PxBounds3 &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamBounds3(*this,val); +} + +PX_INLINE ErrorType Handle::getParamBounds3(physx::PxBounds3 &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamBounds3(*this,val); +} + +PX_INLINE ErrorType Handle::getParamBounds3Array(physx::PxBounds3 *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamBounds3Array(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamBounds3Array(const physx::PxBounds3 *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamBounds3Array(*this,array,n,offset); +} + +PX_INLINE ErrorType Handle::setParamTransform(const physx::PxTransform &val) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamTransform(*this,val); +} + +PX_INLINE ErrorType Handle::getParamTransform(physx::PxTransform &val) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamTransform(*this,val); +} + +PX_INLINE ErrorType Handle::getParamTransformArray(physx::PxTransform *array, int32_t n, int32_t offset ) const +{ + PX_ASSERT(mInterface); + return mInterface->getParamTransformArray(*this,array,n,offset ); +} + +PX_INLINE ErrorType Handle::setParamTransformArray(const physx::PxTransform *array, int32_t n, int32_t offset) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->setParamTransformArray(*this,array,n,offset); +} + + + +#define NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +#define NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +#define NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +#define NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) \ + template <> PX_INLINE ::NvParameterized::ErrorType Handle::setParam(const c_type &val) { return setParam##type_name(val); } \ + template <> PX_INLINE ::NvParameterized::ErrorType Handle::getParam(c_type &val) const {return getParam##type_name(val); } \ + template <> PX_INLINE ::NvParameterized::ErrorType Handle::getParamArray(c_type *array, int32_t n, int32_t offset) const { return getParam##type_name##Array(array, n, offset); } \ + template <> PX_INLINE ::NvParameterized::ErrorType Handle::setParamArray(const c_type *array, int32_t n, int32_t offset) { return setParam##type_name##Array(array, n, offset); } +#include "NvParameterized_types.h" + +PX_INLINE ErrorType Handle::valueToStr(char *buf, uint32_t bufSize, const char *&ret) +{ + PX_ASSERT(mInterface); + return mInterface->valueToStr(*this, buf, bufSize, ret); +} + +PX_INLINE ErrorType Handle::strToValue(const char *str, const char **endptr) // assigns this string to the valu +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->strToValue(*this,str, endptr); // assigns this string to the value +} + + +PX_INLINE ErrorType Handle::resizeArray(int32_t new_size) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->resizeArray(*this,new_size); +} + +PX_INLINE ErrorType Handle::getArraySize(int32_t &size, int32_t dimension ) const +{ + PX_ASSERT(mInterface); + return mInterface->getArraySize(*this,size,dimension ); +} + +PX_INLINE ErrorType Handle::swapArrayElements(uint32_t firstElement, uint32_t secondElement) +{ + PX_ASSERT(mInterface); + CHECK_CONST_HANDLE + return mInterface->swapArrayElements(*this, firstElement, secondElement); +} + +#undef IS_ALPHA +#undef IS_DIGIT +#undef IS_ALPHANUM +#undef IS_IDENTCHAR +#undef CHECK_CONST_HANDLE + +#if PX_VC && !PX_PS4 + #pragma warning(pop) +#endif //!PX_PS4 + +} // end of namespace diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedMacroses.h b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedMacroses.h old mode 100644 new mode 100755 index 71ca9c6..d39a062 --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedMacroses.h +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedMacroses.h @@ -1,136 +1,136 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. - -#ifndef NV_PARAMETERIZED_MACROSES_H -#define NV_PARAMETERIZED_MACROSES_H - -/** Case labels for different NvParameterized::DataType's -*/ -#define NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS \ -case NvParameterized::TYPE_ARRAY:\ -case NvParameterized::TYPE_STRUCT:\ - -#define NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ -case NvParameterized::TYPE_VEC2:\ -case NvParameterized::TYPE_VEC3:\ -case NvParameterized::TYPE_VEC4:\ -case NvParameterized::TYPE_QUAT:\ -case NvParameterized::TYPE_MAT33:\ -case NvParameterized::TYPE_BOUNDS3:\ -case NvParameterized::TYPE_MAT44:\ -case NvParameterized::TYPE_TRANSFORM:\ -case NvParameterized::TYPE_MAT34: - -#define NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS \ -case NvParameterized::TYPE_I8:\ -case NvParameterized::TYPE_I16:\ -case NvParameterized::TYPE_I32:\ -case NvParameterized::TYPE_I64:\ -case NvParameterized::TYPE_U8:\ -case NvParameterized::TYPE_U16:\ -case NvParameterized::TYPE_U32:\ -case NvParameterized::TYPE_U64:\ -case NvParameterized::TYPE_F32:\ -case NvParameterized::TYPE_F64:\ -case NvParameterized::TYPE_BOOL: - -#define NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ -case NvParameterized::TYPE_STRING: - -#define NV_PARAMETRIZED_REF_DATATYPE_LABELS \ -case NvParameterized::TYPE_REF: - -#define NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ -case NvParameterized::TYPE_ENUM: - -#define NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ -case NvParameterized::TYPE_POINTER: - -#define NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS \ -case NvParameterized::TYPE_UNDEFINED:\ -case NvParameterized::TYPE_LAST: - -/** Case labels for composite conditions of switch conditions*/ -/***********************************************************************/ -#define NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS \ -/* NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS*/ \ -NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ -NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS \ -NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ -NV_PARAMETRIZED_REF_DATATYPE_LABELS \ -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - -#define NV_PARAMETRIZED_NO_AGGREGATE_AND_ARITHMETIC_DATATYPE_LABELS \ -/* NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS*/ \ -NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ -/*NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS*/ \ -NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ -NV_PARAMETRIZED_REF_DATATYPE_LABELS \ -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - -#define NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS \ -/* NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS*/ \ -NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ -NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS \ -NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ -/*NV_PARAMETRIZED_REF_DATATYPE_LABELS*/ \ -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - -#define NV_PARAMETRIZED_NO_ARITHMETIC_AND_LINAL_DATATYPE_LABELS \ -NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS \ -/*NV_PARAMETRIZED_LINAL_DATATYPE_LABELS*/ \ -/*NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS*/ \ -NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ -NV_PARAMETRIZED_REF_DATATYPE_LABELS \ -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - -#define NV_PARAMETRIZED_SERVICE_AND_LAST_DATATYPE_LABELS \ -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ -case NvParameterized::TYPE_LAST: - -#define NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS \ -case NvParameterized::TYPE_MAT34: - -#define NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS \ -NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS \ -NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ -NV_PARAMETRIZED_REF_DATATYPE_LABELS \ -NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ -NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ -NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS - -/***********************************************************************/ - -#endif // NV_PARAMETERIZED_MACROSES_H +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2018 NVIDIA Corporation. All rights reserved. + +#ifndef NV_PARAMETERIZED_MACROSES_H +#define NV_PARAMETERIZED_MACROSES_H + +/** Case labels for different NvParameterized::DataType's +*/ +#define NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS \ +case NvParameterized::TYPE_ARRAY:\ +case NvParameterized::TYPE_STRUCT:\ + +#define NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ +case NvParameterized::TYPE_VEC2:\ +case NvParameterized::TYPE_VEC3:\ +case NvParameterized::TYPE_VEC4:\ +case NvParameterized::TYPE_QUAT:\ +case NvParameterized::TYPE_MAT33:\ +case NvParameterized::TYPE_BOUNDS3:\ +case NvParameterized::TYPE_MAT44:\ +case NvParameterized::TYPE_TRANSFORM:\ +case NvParameterized::TYPE_MAT34: + +#define NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS \ +case NvParameterized::TYPE_I8:\ +case NvParameterized::TYPE_I16:\ +case NvParameterized::TYPE_I32:\ +case NvParameterized::TYPE_I64:\ +case NvParameterized::TYPE_U8:\ +case NvParameterized::TYPE_U16:\ +case NvParameterized::TYPE_U32:\ +case NvParameterized::TYPE_U64:\ +case NvParameterized::TYPE_F32:\ +case NvParameterized::TYPE_F64:\ +case NvParameterized::TYPE_BOOL: + +#define NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ +case NvParameterized::TYPE_STRING: + +#define NV_PARAMETRIZED_REF_DATATYPE_LABELS \ +case NvParameterized::TYPE_REF: + +#define NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ +case NvParameterized::TYPE_ENUM: + +#define NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ +case NvParameterized::TYPE_POINTER: + +#define NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS \ +case NvParameterized::TYPE_UNDEFINED:\ +case NvParameterized::TYPE_LAST: + +/** Case labels for composite conditions of switch conditions*/ +/***********************************************************************/ +#define NV_PARAMETRIZED_NO_AGGREGATE_DATATYPE_LABELS \ +/* NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS*/ \ +NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ +NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS \ +NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ +NV_PARAMETRIZED_REF_DATATYPE_LABELS \ +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + +#define NV_PARAMETRIZED_NO_AGGREGATE_AND_ARITHMETIC_DATATYPE_LABELS \ +/* NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS*/ \ +NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ +/*NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS*/ \ +NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ +NV_PARAMETRIZED_REF_DATATYPE_LABELS \ +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + +#define NV_PARAMETRIZED_NO_AGGREGATE_AND_REF_DATATYPE_LABELS \ +/* NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS*/ \ +NV_PARAMETRIZED_LINAL_DATATYPE_LABELS \ +NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS \ +NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ +/*NV_PARAMETRIZED_REF_DATATYPE_LABELS*/ \ +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + +#define NV_PARAMETRIZED_NO_ARITHMETIC_AND_LINAL_DATATYPE_LABELS \ +NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS \ +/*NV_PARAMETRIZED_LINAL_DATATYPE_LABELS*/ \ +/*NV_PARAMETRIZED_ARITHMETIC_DATATYPE_LABELS*/ \ +NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ +NV_PARAMETRIZED_REF_DATATYPE_LABELS \ +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + +#define NV_PARAMETRIZED_SERVICE_AND_LAST_DATATYPE_LABELS \ +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ +case NvParameterized::TYPE_LAST: + +#define NV_PARAMETRIZED_LEGACY_DATATYPE_LABELS \ +case NvParameterized::TYPE_MAT34: + +#define NV_PARAMETRIZED_NO_MATH_DATATYPE_LABELS \ +NV_PARAMETRIZED_AGGREGATE_DATATYPE_LABELS \ +NV_PARAMETRIZED_STRING_DATATYPE_LABELS \ +NV_PARAMETRIZED_REF_DATATYPE_LABELS \ +NV_PARAMETRIZED_ENUM_DATATYPE_LABELS \ +NV_PARAMETRIZED_SERVICE_DATATYPE_LABELS \ +NV_PARAMETRIZED_UNDEFINED_AND_LAST_DATATYPE_LABELS + +/***********************************************************************/ + +#endif // NV_PARAMETERIZED_MACROSES_H diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedTraits.h b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedTraits.h old mode 100644 new mode 100755 index ba97ebc..a05d0d0 --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedTraits.h +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterizedTraits.h @@ -1,373 +1,373 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef NV_PARAMETERIZED_TRAITS_H -#define NV_PARAMETERIZED_TRAITS_H - -/*! -\file -\brief NvParameterized traits class -*/ - -#include -#include "foundation/PxAssert.h" - -namespace NvParameterized -{ - -PX_PUSH_PACK_DEFAULT - -class Traits; -class Interface; - -/** -\brief Interface class for NvParameterized factories -*/ -class Factory -{ -public: - - /** - \brief Creates NvParameterized object of class - */ - virtual ::NvParameterized::Interface *create( Traits *paramTraits ) = 0; - - /** - \brief Finishes initialization of inplace-deserialized objects (vptr and stuff) - */ - virtual ::NvParameterized::Interface *finish( Traits *paramTraits, void *obj, void *buf, int32_t *refCount ) = 0; - - /** - \brief Returns name of class whose objects are created by factory - */ - virtual const char * getClassName() = 0; - - /** - \brief Returns version of class whose objects are created by factory - */ - virtual uint32_t getVersion() = 0; - - /** - \brief Returns memory alignment required for objects of class - */ - virtual uint32_t getAlignment() = 0; - - /** - \brief Returns checksum of class whose objects are created by factory - */ - virtual const uint32_t * getChecksum( uint32_t &bits ) = 0; - - /** - \brief Destructor - */ - virtual ~Factory() {} - - /** - \brief Clean reflection definition table. Call it if you don't have any instances of classes. - */ - virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) = 0; -}; - -/** -\brief Interface class for legacy object conversions -*/ -class Conversion -{ -public: - virtual ~Conversion() {} - - /** - \brief Initialize object using data from legacy object - \param [in] legacyObj legacy object to be converter - \param [in] obj destination object - \return true if conversion succeeded, false otherwise - \warning You may assume that all nested references were already converted. - */ - virtual bool operator()(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) = 0; - - /** - \brief Release converter and any memory allocations associated with it - */ - virtual void release() = 0; -}; - -/** -\brief Interface class for user traits - -This class is a collection of loosely-related functions provided by application or framework -and used by NvParameterized library to do memory allocation, object creation, user notification, etc. -*/ -class Traits -{ -public: - virtual ~Traits() {} - - /** - \brief Register NvParameterized class factory - */ - virtual void registerFactory( ::NvParameterized::Factory & factory ) = 0; - - /** - \brief Remove NvParameterized class factory for current version of class - \return Removed factory or NULL if it is not found - */ - virtual ::NvParameterized::Factory *removeFactory( const char * className ) = 0; - - /** - \brief Remove NvParameterized class factory for given version of class - \return Removed factory or NULL if it is not found - */ - virtual ::NvParameterized::Factory *removeFactory( const char * className, uint32_t version ) = 0; - - /** - \brief Checks whether any class factory is registered - */ - virtual bool doesFactoryExist(const char* className) = 0; - - /** - \brief Checks whether class factory for given version is registered - */ - virtual bool doesFactoryExist(const char* className, uint32_t version) = 0; - - /** - \brief Create object of NvParameterized class using its staticClassName() - - \param [in] name static class name of the instance to create - - Most probably this just calls Factory::create on appropriate factory. - */ - virtual ::NvParameterized::Interface * createNvParameterized( const char * name ) = 0; - - /** - \brief Create object of NvParameterized class using its staticClassName() - - \param [in] name static class name of the instance to create - \param [in] ver version of the class - - Most probably this just calls Factory::create on appropriate factory. - */ - virtual ::NvParameterized::Interface * createNvParameterized( const char * name, uint32_t ver ) = 0; - - /** - \brief Finish construction of inplace object of NvParameterized class - - Most probably this just calls Factory::finish using appropriate factory. - */ - virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, void *obj, void *buf, int32_t *refCount ) = 0; - - /** - \brief Finish construction of inplace object of NvParameterized class - - Most probably this just calls Factory::finish using appropriate factory. - */ - virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, uint32_t ver, void *obj, void *buf, int32_t *refCount ) = 0; - - /** - \brief Get version of class which is currently used - */ - virtual uint32_t getCurrentVersion(const char *className) const = 0; - - /** - \brief Get memory alignment required for objects of class - */ - virtual uint32_t getAlignment(const char *className, uint32_t classVersion) const = 0; - - /** - \brief Register converter for legacy version of class - */ - virtual void registerConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/, Conversion & /*conv*/) {} - - /** - \brief Remove converter for legacy version of class - */ - virtual ::NvParameterized::Conversion *removeConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/) { return 0; } - - /** - \brief Update legacy object (most probably using appropriate registered converter) - \param [in] legacyObj legacy object to be converted - \param [in] obj destination object - \return True if conversion was successful, false otherwise - \warning Note that update is intrusive - legacyObj may be modified as a result of update - */ - virtual bool updateLegacyNvParameterized(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) - { - PX_UNUSED(&legacyObj); - PX_UNUSED(&obj); - - return false; - } - - /** - \brief Get a list of the NvParameterized class type names - - \param [in] names buffer for names - \param [out] outCount minimal required length of buffer - \param [in] inCount length of buffer - \return False if 'inCount' is not large enough to contain all of the names, true otherwise - - \warning The memory for the strings returned is owned by the traits class - and should only be read, not written or freed. - */ - virtual bool getNvParameterizedNames( const char ** names, uint32_t &outCount, uint32_t inCount) const = 0; - - /** - \brief Get a list of versions of particular NvParameterized class - - \param [in] className Name of the class - \param [in] versions buffer for versions - \param [out] outCount minimal required length of buffer - \param [in] inCount length of buffer - \return False if 'inCount' is not large enough to contain all of version names, true otherwise - - \warning The memory for the strings returned is owned by the traits class - and should only be read, not written or freed. - */ - virtual bool getNvParameterizedVersions(const char* className, uint32_t* versions, uint32_t &outCount, uint32_t inCount) const = 0; - - /** - \brief Increment reference counter - */ - virtual int32_t incRefCount(int32_t *refCount) = 0; - - /** - \brief Decrement reference counter - */ - virtual int32_t decRefCount(int32_t *refCount) = 0; - - /** - \brief Called when inplace object is destroyed - */ - virtual void onInplaceObjectDestroyed(void * /*buf*/, ::NvParameterized::Interface * /*obj*/) {} - - /** - \brief Called when all inplace objects are destroyed - */ - virtual void onAllInplaceObjectsDestroyed(void *buf) { free(buf); } - - /** - \brief Allocate memory with default alignment of 8 - */ - virtual void *alloc(uint32_t nbytes) = 0; - - /** - \brief Allocate aligned memory - */ - virtual void *alloc(uint32_t nbytes, uint32_t align) = 0; - - /** - \brief Deallocate memory - */ - virtual void free(void *buf) = 0; - - /** - \brief Copy string - */ - virtual char *strdup(const char *str) - { - if( !str ) - return NULL; - - uint32_t strLen = (uint32_t)strlen(str) + 1; - char *retStr = (char *)this->alloc(strLen, 1); - - PX_ASSERT( retStr ); - - if( NULL != retStr ) -#if PX_WINDOWS_FAMILY || PX_XBOXONE - strcpy_s( retStr, strLen, str ); -#else - strncpy(retStr, str, strLen); -#endif - return retStr; - } - - /** - \brief Release copied string - */ - virtual void strfree(char *str) - { - if( NULL != str ) - this->free( str ); - } - - /** - \brief Warns user - */ - virtual void traitsWarn(const char * /*msg*/) const {} - - /** - \brief Release Traits - */ - virtual void release(void) = 0; - - /** - \brief Adapter for allocator classes in PxAlloctor.h - */ - class Allocator - { - ::NvParameterized::Traits *mTraits; - - public: - - /** - \brief Constructor - */ - Allocator(Traits *traits): mTraits(traits) {} - - /** - \brief Allocate memory - */ - void *allocate(size_t size) - { - return allocate(size, __FILE__, __LINE__); - } - - /** - \brief Allocate memory - */ - void *allocate(size_t size, const char * /*filename*/, int /*line*/) - { - PX_ASSERT( static_cast(size) == size ); - return mTraits->alloc(static_cast(size)); - } - - /** - \brief Release memory - */ - void deallocate(void *ptr) - { - return mTraits->free(ptr); - } - }; -}; - - -PX_POP_PACK - -} // namespace NvParameterized - -#endif // NV_PARAMETERIZED_TRAITS_H +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef NV_PARAMETERIZED_TRAITS_H +#define NV_PARAMETERIZED_TRAITS_H + +/*! +\file +\brief NvParameterized traits class +*/ + +#include +#include "foundation/PxAssert.h" + +namespace NvParameterized +{ + +PX_PUSH_PACK_DEFAULT + +class Traits; +class Interface; + +/** +\brief Interface class for NvParameterized factories +*/ +class Factory +{ +public: + + /** + \brief Creates NvParameterized object of class + */ + virtual ::NvParameterized::Interface *create( Traits *paramTraits ) = 0; + + /** + \brief Finishes initialization of inplace-deserialized objects (vptr and stuff) + */ + virtual ::NvParameterized::Interface *finish( Traits *paramTraits, void *obj, void *buf, int32_t *refCount ) = 0; + + /** + \brief Returns name of class whose objects are created by factory + */ + virtual const char * getClassName() = 0; + + /** + \brief Returns version of class whose objects are created by factory + */ + virtual uint32_t getVersion() = 0; + + /** + \brief Returns memory alignment required for objects of class + */ + virtual uint32_t getAlignment() = 0; + + /** + \brief Returns checksum of class whose objects are created by factory + */ + virtual const uint32_t * getChecksum( uint32_t &bits ) = 0; + + /** + \brief Destructor + */ + virtual ~Factory() {} + + /** + \brief Clean reflection definition table. Call it if you don't have any instances of classes. + */ + virtual void freeParameterDefinitionTable(NvParameterized::Traits* traits) = 0; +}; + +/** +\brief Interface class for legacy object conversions +*/ +class Conversion +{ +public: + virtual ~Conversion() {} + + /** + \brief Initialize object using data from legacy object + \param [in] legacyObj legacy object to be converter + \param [in] obj destination object + \return true if conversion succeeded, false otherwise + \warning You may assume that all nested references were already converted. + */ + virtual bool operator()(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) = 0; + + /** + \brief Release converter and any memory allocations associated with it + */ + virtual void release() = 0; +}; + +/** +\brief Interface class for user traits + +This class is a collection of loosely-related functions provided by application or framework +and used by NvParameterized library to do memory allocation, object creation, user notification, etc. +*/ +class Traits +{ +public: + virtual ~Traits() {} + + /** + \brief Register NvParameterized class factory + */ + virtual void registerFactory( ::NvParameterized::Factory & factory ) = 0; + + /** + \brief Remove NvParameterized class factory for current version of class + \return Removed factory or NULL if it is not found + */ + virtual ::NvParameterized::Factory *removeFactory( const char * className ) = 0; + + /** + \brief Remove NvParameterized class factory for given version of class + \return Removed factory or NULL if it is not found + */ + virtual ::NvParameterized::Factory *removeFactory( const char * className, uint32_t version ) = 0; + + /** + \brief Checks whether any class factory is registered + */ + virtual bool doesFactoryExist(const char* className) = 0; + + /** + \brief Checks whether class factory for given version is registered + */ + virtual bool doesFactoryExist(const char* className, uint32_t version) = 0; + + /** + \brief Create object of NvParameterized class using its staticClassName() + + \param [in] name static class name of the instance to create + + Most probably this just calls Factory::create on appropriate factory. + */ + virtual ::NvParameterized::Interface * createNvParameterized( const char * name ) = 0; + + /** + \brief Create object of NvParameterized class using its staticClassName() + + \param [in] name static class name of the instance to create + \param [in] ver version of the class + + Most probably this just calls Factory::create on appropriate factory. + */ + virtual ::NvParameterized::Interface * createNvParameterized( const char * name, uint32_t ver ) = 0; + + /** + \brief Finish construction of inplace object of NvParameterized class + + Most probably this just calls Factory::finish using appropriate factory. + */ + virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, void *obj, void *buf, int32_t *refCount ) = 0; + + /** + \brief Finish construction of inplace object of NvParameterized class + + Most probably this just calls Factory::finish using appropriate factory. + */ + virtual ::NvParameterized::Interface * finishNvParameterized( const char * name, uint32_t ver, void *obj, void *buf, int32_t *refCount ) = 0; + + /** + \brief Get version of class which is currently used + */ + virtual uint32_t getCurrentVersion(const char *className) const = 0; + + /** + \brief Get memory alignment required for objects of class + */ + virtual uint32_t getAlignment(const char *className, uint32_t classVersion) const = 0; + + /** + \brief Register converter for legacy version of class + */ + virtual void registerConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/, Conversion & /*conv*/) {} + + /** + \brief Remove converter for legacy version of class + */ + virtual ::NvParameterized::Conversion *removeConversion(const char * /*className*/, uint32_t /*from*/, uint32_t /*to*/) { return 0; } + + /** + \brief Update legacy object (most probably using appropriate registered converter) + \param [in] legacyObj legacy object to be converted + \param [in] obj destination object + \return True if conversion was successful, false otherwise + \warning Note that update is intrusive - legacyObj may be modified as a result of update + */ + virtual bool updateLegacyNvParameterized(::NvParameterized::Interface &legacyObj, ::NvParameterized::Interface &obj) + { + PX_UNUSED(&legacyObj); + PX_UNUSED(&obj); + + return false; + } + + /** + \brief Get a list of the NvParameterized class type names + + \param [in] names buffer for names + \param [out] outCount minimal required length of buffer + \param [in] inCount length of buffer + \return False if 'inCount' is not large enough to contain all of the names, true otherwise + + \warning The memory for the strings returned is owned by the traits class + and should only be read, not written or freed. + */ + virtual bool getNvParameterizedNames( const char ** names, uint32_t &outCount, uint32_t inCount) const = 0; + + /** + \brief Get a list of versions of particular NvParameterized class + + \param [in] className Name of the class + \param [in] versions buffer for versions + \param [out] outCount minimal required length of buffer + \param [in] inCount length of buffer + \return False if 'inCount' is not large enough to contain all of version names, true otherwise + + \warning The memory for the strings returned is owned by the traits class + and should only be read, not written or freed. + */ + virtual bool getNvParameterizedVersions(const char* className, uint32_t* versions, uint32_t &outCount, uint32_t inCount) const = 0; + + /** + \brief Increment reference counter + */ + virtual int32_t incRefCount(int32_t *refCount) = 0; + + /** + \brief Decrement reference counter + */ + virtual int32_t decRefCount(int32_t *refCount) = 0; + + /** + \brief Called when inplace object is destroyed + */ + virtual void onInplaceObjectDestroyed(void * /*buf*/, ::NvParameterized::Interface * /*obj*/) {} + + /** + \brief Called when all inplace objects are destroyed + */ + virtual void onAllInplaceObjectsDestroyed(void *buf) { free(buf); } + + /** + \brief Allocate memory with default alignment of 8 + */ + virtual void *alloc(uint32_t nbytes) = 0; + + /** + \brief Allocate aligned memory + */ + virtual void *alloc(uint32_t nbytes, uint32_t align) = 0; + + /** + \brief Deallocate memory + */ + virtual void free(void *buf) = 0; + + /** + \brief Copy string + */ + virtual char *strdup(const char *str) + { + if( !str ) + return NULL; + + uint32_t strLen = (uint32_t)strlen(str) + 1; + char *retStr = (char *)this->alloc(strLen, 1); + + PX_ASSERT( retStr ); + + if( NULL != retStr ) +#if PX_WINDOWS_FAMILY || PX_XBOXONE + strcpy_s( retStr, strLen, str ); +#else + strncpy(retStr, str, strLen); +#endif + return retStr; + } + + /** + \brief Release copied string + */ + virtual void strfree(char *str) + { + if( NULL != str ) + this->free( str ); + } + + /** + \brief Warns user + */ + virtual void traitsWarn(const char * /*msg*/) const {} + + /** + \brief Release Traits + */ + virtual void release(void) = 0; + + /** + \brief Adapter for allocator classes in PxAlloctor.h + */ + class Allocator + { + ::NvParameterized::Traits *mTraits; + + public: + + /** + \brief Constructor + */ + Allocator(Traits *traits): mTraits(traits) {} + + /** + \brief Allocate memory + */ + void *allocate(size_t size) + { + return allocate(size, __FILE__, __LINE__); + } + + /** + \brief Allocate memory + */ + void *allocate(size_t size, const char * /*filename*/, int /*line*/) + { + PX_ASSERT( static_cast(size) == size ); + return mTraits->alloc(static_cast(size)); + } + + /** + \brief Release memory + */ + void deallocate(void *ptr) + { + return mTraits->free(ptr); + } + }; +}; + + +PX_POP_PACK + +} // namespace NvParameterized + +#endif // NV_PARAMETERIZED_TRAITS_H diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized_types.h b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized_types.h old mode 100644 new mode 100755 index 289595a..d0e7281 --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized_types.h +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvParameterized_types.h @@ -1,107 +1,107 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -/*! -\brief NvParameterized type X-macro template -\note See http://en.wikipedia.org/wiki/C_preprocessor#X-Macros for more details -*/ - - -// NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) - -#if PX_VC && !PX_PS4 - #pragma warning(push) - #pragma warning(disable:4555) -#endif //!PX_PS4 - -PX_PUSH_PACK_DEFAULT - -#ifndef NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -#ifndef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES -NV_PARAMETERIZED_TYPE(Array, ARRAY, void *) -NV_PARAMETERIZED_TYPE(Struct, STRUCT, void *) -NV_PARAMETERIZED_TYPE(Ref, REF, NvParameterized::Interface *) -#endif -#endif - -#ifndef NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -#ifndef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES -NV_PARAMETERIZED_TYPE(String, STRING, const char *) -NV_PARAMETERIZED_TYPE(Enum, ENUM, const char *) -#endif -#endif - -NV_PARAMETERIZED_TYPE(Bool, BOOL, bool) - -NV_PARAMETERIZED_TYPE(I8, I8, int8_t) -NV_PARAMETERIZED_TYPE(I16, I16, int16_t) -NV_PARAMETERIZED_TYPE(I32, I32, int32_t) -NV_PARAMETERIZED_TYPE(I64, I64, int64_t) - -NV_PARAMETERIZED_TYPE(U8, U8, uint8_t) -NV_PARAMETERIZED_TYPE(U16, U16, uint16_t) -NV_PARAMETERIZED_TYPE(U32, U32, uint32_t) -NV_PARAMETERIZED_TYPE(U64, U64, uint64_t) - -NV_PARAMETERIZED_TYPE(F32, F32, float) -NV_PARAMETERIZED_TYPE(F64, F64, double) - -#ifndef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES -NV_PARAMETERIZED_TYPE(Vec2, VEC2, physx::PxVec2) -NV_PARAMETERIZED_TYPE(Vec3, VEC3, physx::PxVec3) -NV_PARAMETERIZED_TYPE(Vec4, VEC4, physx::PxVec4) -NV_PARAMETERIZED_TYPE(Quat, QUAT, physx::PxQuat) -NV_PARAMETERIZED_TYPE(Bounds3, BOUNDS3, physx::PxBounds3) -NV_PARAMETERIZED_TYPE(Mat33, MAT33, physx::PxMat33) -NV_PARAMETERIZED_TYPE(Mat44, MAT44, physx::PxMat44) -NV_PARAMETERIZED_TYPE(Transform, TRANSFORM, physx::PxTransform) -#endif - - -#ifdef NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -# undef NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES -#endif - -#ifdef NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -# undef NV_PARAMETERIZED_TYPES_NO_STRING_TYPES -#endif - -#ifdef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES -# undef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES -#endif - -#ifdef NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -# undef NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES -#endif - -#if PX_VC && !PX_PS4 - #pragma warning(pop) -#endif //!PX_PS4 - -PX_POP_PACK - -#undef NV_PARAMETERIZED_TYPE +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +/*! +\brief NvParameterized type X-macro template +\note See http://en.wikipedia.org/wiki/C_preprocessor#X-Macros for more details +*/ + + +// NV_PARAMETERIZED_TYPE(type_name, enum_name, c_type) + +#if PX_VC && !PX_PS4 + #pragma warning(push) + #pragma warning(disable:4555) +#endif //!PX_PS4 + +PX_PUSH_PACK_DEFAULT + +#ifndef NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +#ifndef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES +NV_PARAMETERIZED_TYPE(Array, ARRAY, void *) +NV_PARAMETERIZED_TYPE(Struct, STRUCT, void *) +NV_PARAMETERIZED_TYPE(Ref, REF, NvParameterized::Interface *) +#endif +#endif + +#ifndef NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +#ifndef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES +NV_PARAMETERIZED_TYPE(String, STRING, const char *) +NV_PARAMETERIZED_TYPE(Enum, ENUM, const char *) +#endif +#endif + +NV_PARAMETERIZED_TYPE(Bool, BOOL, bool) + +NV_PARAMETERIZED_TYPE(I8, I8, int8_t) +NV_PARAMETERIZED_TYPE(I16, I16, int16_t) +NV_PARAMETERIZED_TYPE(I32, I32, int32_t) +NV_PARAMETERIZED_TYPE(I64, I64, int64_t) + +NV_PARAMETERIZED_TYPE(U8, U8, uint8_t) +NV_PARAMETERIZED_TYPE(U16, U16, uint16_t) +NV_PARAMETERIZED_TYPE(U32, U32, uint32_t) +NV_PARAMETERIZED_TYPE(U64, U64, uint64_t) + +NV_PARAMETERIZED_TYPE(F32, F32, float) +NV_PARAMETERIZED_TYPE(F64, F64, double) + +#ifndef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES +NV_PARAMETERIZED_TYPE(Vec2, VEC2, physx::PxVec2) +NV_PARAMETERIZED_TYPE(Vec3, VEC3, physx::PxVec3) +NV_PARAMETERIZED_TYPE(Vec4, VEC4, physx::PxVec4) +NV_PARAMETERIZED_TYPE(Quat, QUAT, physx::PxQuat) +NV_PARAMETERIZED_TYPE(Bounds3, BOUNDS3, physx::PxBounds3) +NV_PARAMETERIZED_TYPE(Mat33, MAT33, physx::PxMat33) +NV_PARAMETERIZED_TYPE(Mat44, MAT44, physx::PxMat44) +NV_PARAMETERIZED_TYPE(Transform, TRANSFORM, physx::PxTransform) +#endif + + +#ifdef NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +# undef NV_PARAMETERIZED_TYPES_ONLY_SIMPLE_TYPES +#endif + +#ifdef NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +# undef NV_PARAMETERIZED_TYPES_NO_STRING_TYPES +#endif + +#ifdef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES +# undef NV_PARAMETERIZED_TYPES_ONLY_SCALAR_TYPES +#endif + +#ifdef NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +# undef NV_PARAMETERIZED_TYPES_NO_LEGACY_TYPES +#endif + +#if PX_VC && !PX_PS4 + #pragma warning(pop) +#endif //!PX_PS4 + +PX_POP_PACK + +#undef NV_PARAMETERIZED_TYPE diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.h b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.h old mode 100644 new mode 100755 index 810e064..83b085a --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.h +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.h @@ -1,463 +1,463 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#ifndef NV_SERIALIZER_H -#define NV_SERIALIZER_H - -/*! -\file -\brief NvParameterized serializer class -*/ - - -#include - - -namespace NvParameterized -{ - -PX_PUSH_PACK_DEFAULT - -/** -\brief Platform descriptor - -This class describes target serialization platform which consists of processor architecture, compiler and OS. -*/ -struct SerializePlatform -{ - /** - \brief Processor architectures enumeration - \warning Do not change values of enums! - */ - typedef enum - { - ARCH_GEN = 0, - ARCH_X86 = 1, - ARCH_X86_64 = 2, - ARCH_PPC = 3, - ARCH_CELL = 4, - ARCH_ARM = 5, - ARCH_ARM_64 = 6, - ARCH_LAST - } ArchType; - - /** - \brief Platform processor architecture - */ - ArchType archType; - - /** - \brief Compilers enumeration - \warning Do not change values of enums! - */ - typedef enum - { - COMP_GEN = 0, - COMP_GCC = 1, - COMP_VC = 2, - COMP_MW = 3, - COMP_LAST - } CompilerType; - - /** - \brief Platform compiler - */ - CompilerType compilerType; - - /** - \brief Platform compiler version - */ - uint32_t compilerVer; - - /** - \brief OSes enumeration - \warning Do not change values of enums! - */ - typedef enum - { - OS_WINDOWS = 0, - OS_LINUX = 1, - OS_LV2 = 2, // PS3 - OS_MACOSX = 3, - OS_XBOX = 4, - OS_GEN = 5, - OS_ANDROID = 6, - OS_XBOXONE = 7, - OS_PS4 = 8, - OS_HOS = 9, - OS_LAST - } OsType; - - /** - \brief Platform OS - */ - OsType osType; - - /** - \brief Platform OS version - */ - uint32_t osVer; - - /** - \brief This value identfies that version is unknown - */ - static const uint32_t ANY_VERSION = (uint32_t)-1; - - PX_INLINE SerializePlatform(); - - /** - \brief Constructor of SerializePlatform - */ - PX_INLINE SerializePlatform(ArchType archType, CompilerType compType, uint32_t compVer, OsType osType, uint32_t osVer); - - /** - \brief Checks if platforms are binary-compatible - */ - PX_INLINE bool operator ==(const SerializePlatform &p) const; - - /** - \brief Checks if platforms are binary-incompatible - */ - PX_INLINE bool operator !=(const SerializePlatform &p) const; -}; - -class Interface; -class Definition; -class Traits; -struct SerializePlatform; - -/** -\brief Interface class for serializer-deserializer of NvParameterized objects - -Serializer serializes and deserializes one or more NvParameterized objects to file using various output formats -(see SerializeType). -*/ -class Serializer -{ -public: - - /** - \brief Status enums that the Serializer methods may return - */ - enum ErrorType - { - ERROR_NONE = 0, - - ERROR_UNKNOWN, - ERROR_NOT_IMPLEMENTED, - - // File format related errors - ERROR_INVALID_PLATFORM, - ERROR_INVALID_PLATFORM_NAME, - ERROR_INVALID_FILE_VERSION, - ERROR_INVALID_FILE_FORMAT, - ERROR_INVALID_MAGIC, - ERROR_INVALID_CHAR, - - // External errors - ERROR_STREAM_ERROR, - ERROR_MEMORY_ALLOCATION_FAILURE, - ERROR_UNALIGNED_MEMORY, - ERROR_PRESERIALIZE_FAILED, - ERROR_INTERNAL_BUFFER_OVERFLOW, - ERROR_OBJECT_CREATION_FAILED, - ERROR_CONVERSION_FAILED, - - // Xml-specific errors - ERROR_VAL2STRING_FAILED, - ERROR_STRING2VAL_FAILED, - ERROR_INVALID_TYPE_ATTRIBUTE, - ERROR_UNKNOWN_XML_TAG, - ERROR_MISSING_DOCTYPE, - ERROR_MISSING_ROOT_ELEMENT, - ERROR_INVALID_NESTING, - ERROR_INVALID_ATTR, - - // Other stuff - ERROR_INVALID_ARRAY, - ERROR_ARRAY_INDEX_OUT_OF_RANGE, - ERROR_INVALID_VALUE, - ERROR_INVALID_INTERNAL_PTR, - ERROR_INVALID_PARAM_HANDLE, - ERROR_INVALID_RELOC_TYPE, - ERROR_INVALID_DATA_TYPE, - ERROR_INVALID_REFERENCE - }; - - /** - \brief The supported serialization formats - */ - enum SerializeType - { - /// serialize in XML format. - NST_XML = 0, - - /// serialize in a binary format - NST_BINARY, - - NST_LAST - }; - - /** - \brief Get type of stream (binary or xml) - \param [in] stream stream to be analyzed - */ - static SerializeType peekSerializeType(physx::general_PxIOStream2::PxFileBuf &stream); - - /** - \brief Get stream native platform - \param [in] stream stream to be analyzed - \param [out] platform stream native platform - */ - static ErrorType peekPlatform(physx::general_PxIOStream2::PxFileBuf &stream, SerializePlatform &platform); - - virtual ~Serializer() {} - - /** - \brief Set platform to use in platform-dependent serialization - \param [in] platform target platform - - \warning Currently this is used only in binary serializer - - Application running on target platforms may potentially make use of extremely fast - inplace deserialization (using method deserializeInplace) on files which were serialized - for this platform. - */ - virtual ErrorType setTargetPlatform(const SerializePlatform &platform) = 0; - - /** - \brief Sets whether serializer will automatically update - objects after deserialization - \param [in] doUpdate should automatic update be done? - - \warning Normally you will not need this - \warning This is true by default - */ - virtual void setAutoUpdate(bool doUpdate) = 0; - - /** - \brief Serialize array of NvParameterized-objects to a stream - \param [in] stream the stream to which the object will be serialized - \param [in] objs NvParameterized-objects which will be serialized - \param [in] nobjs number of objects - \param [in] doSerializeMetadata set this to store object metadata in file - - \warning Serialized file may depend on selected target platform - */ - virtual ErrorType serialize( - physx::general_PxIOStream2::PxFileBuf &stream, - const ::NvParameterized::Interface **objs, - uint32_t nobjs, - bool doSerializeMetadata = false) = 0; - - /** - \brief Peek number of NvParameterized-objects in stream with serialized data - \param [in] stream the stream from which the object will be deserialized - \param [out] numObjects number of objects - - \warning Not all streams support peeking - */ - virtual ErrorType peekNumObjects(physx::general_PxIOStream2::PxFileBuf &stream, uint32_t &numObjects) = 0; - - /** - \brief Peek number of NvParameterized-objects in stream with serialized data - \param [in] stream the stream from which objects will be deserialized - \param [in] classNames pointer to buffer for resulting names - \param [in,out] numClassNames limit on number of returned classNames; number of returned names - - \warning User is responsible for releasing every element of classNames via Traits::strfree() - */ - virtual ErrorType peekClassNames(physx::general_PxIOStream2::PxFileBuf &stream, char **classNames, uint32_t &numClassNames) = 0; - - /** - \brief Peek number of NvParameterized-objects in memory buffer with serialized data - \param [in] data pointer to memory buffer - \param [in] dataLen length of memory buffer - \param [out] numObjects number of objects - */ - virtual ErrorType peekNumObjectsInplace(const void *data, uint32_t dataLen, uint32_t &numObjects) = 0; - - /// TODO - template < typename T, int bufSize = 8 > class DeserializedResults - { - T buf[bufSize]; //For small number of objects - - T *objs; - - uint32_t nobjs; - - Traits *traits; - - void clear(); - - public: - - PX_INLINE DeserializedResults(); - - PX_INLINE ~DeserializedResults(); - - /** - \brief Copy constructor - */ - PX_INLINE DeserializedResults(const DeserializedResults &data); - - /** - \brief Assignment operator - */ - PX_INLINE DeserializedResults &operator =(const DeserializedResults &rhs); - - /** - \brief Allocate memory for values - */ - PX_INLINE void init(Traits *traits_, uint32_t nobjs_); - - /** - \brief Allocate memory and set values - */ - PX_INLINE void init(Traits *traits_, T *objs_, uint32_t nobjs_); - - /** - \brief Number of objects in a container - */ - PX_INLINE uint32_t size() const; - - /** - \brief Access individual object in container - */ - PX_INLINE T &operator[](uint32_t i); - - /** - \brief Const-access individual object in container - */ - PX_INLINE const T &operator[](uint32_t i) const; - - /** - \brief Read all NvParameterized objects in container to buffer outObjs - \warning outObjs must be large enough to hold all contained objects - */ - PX_INLINE void getObjects(T *outObjs); - - /** - \brief Release all objects - */ - PX_INLINE void releaseAll(); - }; - - /** - \brief Container for results of deserialization - - DeserializedData holds array of NvParameterized objects obtained during deserialization. - */ - typedef DeserializedResults< ::NvParameterized::Interface *> DeserializedData; - - /// This class keeps metadata of a single NvParameterized class - struct MetadataEntry - { - /// Class name - const char *className; - - /// Class version - uint32_t version; - - /// Class metadata - Definition *def; - }; - - /** - \brief Container for results of metadata deserialization - - DeserializedMetadata holds array of MetadataEntry obtained during metadata deserialization. - */ - typedef DeserializedResults DeserializedMetadata; - - /** - \brief Deserialize metadata from a stream into one or more definitions - \param [in] stream the stream from which metadata will be deserialized - \param [out] desData storage for deserialized metadata - \warning This is a draft implementation! - */ - virtual ErrorType deserializeMetadata(physx::general_PxIOStream2::PxFileBuf &stream, DeserializedMetadata &desData); - - /** - \brief Deserialize a stream into one or more NvParameterized objects - \param [in] stream the stream from which objects will be deserialized - \param [out] desData storage for deserialized data - */ - virtual ErrorType deserialize(physx::general_PxIOStream2::PxFileBuf &stream, DeserializedData &desData); - - /** - \brief Deserialize a stream into one or more NvParameterized objects - \param [in] stream the stream from which objects will be deserialized - \param [out] desData storage for deserialized data - \param [out] isUpdated true if any legacy object was updated, false otherwise - */ - virtual ErrorType deserialize(physx::general_PxIOStream2::PxFileBuf &stream, DeserializedData &desData, bool &isUpdated) = 0; - - /** - \brief Deserialize memory buffer into one or more NvParameterized objects - \param [in] data pointer to serialized data. It should be allocated via Traits. - \param [in] dataLen length of serialized data - \param [out] desData storage for deserialized data - - \warning Currently only binary serializer supports inplace deserialization - \warning Memory must be aligned to 8 byte boundary - */ - virtual ErrorType deserializeInplace(void *data, uint32_t dataLen, DeserializedData &desData); - - /** - \brief Deserialize memory buffer into one or more NvParameterized objects - \param [in] data pointer to serialized data - \param [in] dataLen length of serialized data - \param [out] desData storage for deserialized data - \param [out] isUpdated true if any legacy object was updated, false otherwise - - \warning Currently only binary serializer supports inplace deserialization - \warning Memory must be aligned to the boundary required by the data (see getInplaceAlignment) - */ - virtual ErrorType deserializeInplace(void *data, uint32_t dataLen, DeserializedData &desData, bool &isUpdated) = 0; - - /** - \brief Get minimum alignment required for inplace deserialization of data in stream - \param [in] stream stream which will be inplace deserialized - \param [out] align alignment required for inplace deserialization of stream - \note For most of the objects this will return default alignment of 8 bytes - */ - virtual ErrorType peekInplaceAlignment(physx::general_PxIOStream2::PxFileBuf& stream, uint32_t& align) = 0; - - /** - \brief Release deserializer and any memory allocations associated with it - */ - virtual void release() = 0; -}; - -PX_POP_PACK - -} // namespace NvParameterized - -#include "NvSerializer.inl" - -#endif // NV_SERIALIZER_H +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#ifndef NV_SERIALIZER_H +#define NV_SERIALIZER_H + +/*! +\file +\brief NvParameterized serializer class +*/ + + +#include + + +namespace NvParameterized +{ + +PX_PUSH_PACK_DEFAULT + +/** +\brief Platform descriptor + +This class describes target serialization platform which consists of processor architecture, compiler and OS. +*/ +struct SerializePlatform +{ + /** + \brief Processor architectures enumeration + \warning Do not change values of enums! + */ + typedef enum + { + ARCH_GEN = 0, + ARCH_X86 = 1, + ARCH_X86_64 = 2, + ARCH_PPC = 3, + ARCH_CELL = 4, + ARCH_ARM = 5, + ARCH_ARM_64 = 6, + ARCH_LAST + } ArchType; + + /** + \brief Platform processor architecture + */ + ArchType archType; + + /** + \brief Compilers enumeration + \warning Do not change values of enums! + */ + typedef enum + { + COMP_GEN = 0, + COMP_GCC = 1, + COMP_VC = 2, + COMP_MW = 3, + COMP_LAST + } CompilerType; + + /** + \brief Platform compiler + */ + CompilerType compilerType; + + /** + \brief Platform compiler version + */ + uint32_t compilerVer; + + /** + \brief OSes enumeration + \warning Do not change values of enums! + */ + typedef enum + { + OS_WINDOWS = 0, + OS_LINUX = 1, + OS_LV2 = 2, // PS3 + OS_MACOSX = 3, + OS_XBOX = 4, + OS_GEN = 5, + OS_ANDROID = 6, + OS_XBOXONE = 7, + OS_PS4 = 8, + OS_HOS = 9, + OS_LAST + } OsType; + + /** + \brief Platform OS + */ + OsType osType; + + /** + \brief Platform OS version + */ + uint32_t osVer; + + /** + \brief This value identfies that version is unknown + */ + static const uint32_t ANY_VERSION = (uint32_t)-1; + + PX_INLINE SerializePlatform(); + + /** + \brief Constructor of SerializePlatform + */ + PX_INLINE SerializePlatform(ArchType archType, CompilerType compType, uint32_t compVer, OsType osType, uint32_t osVer); + + /** + \brief Checks if platforms are binary-compatible + */ + PX_INLINE bool operator ==(const SerializePlatform &p) const; + + /** + \brief Checks if platforms are binary-incompatible + */ + PX_INLINE bool operator !=(const SerializePlatform &p) const; +}; + +class Interface; +class Definition; +class Traits; +struct SerializePlatform; + +/** +\brief Interface class for serializer-deserializer of NvParameterized objects + +Serializer serializes and deserializes one or more NvParameterized objects to file using various output formats +(see SerializeType). +*/ +class Serializer +{ +public: + + /** + \brief Status enums that the Serializer methods may return + */ + enum ErrorType + { + ERROR_NONE = 0, + + ERROR_UNKNOWN, + ERROR_NOT_IMPLEMENTED, + + // File format related errors + ERROR_INVALID_PLATFORM, + ERROR_INVALID_PLATFORM_NAME, + ERROR_INVALID_FILE_VERSION, + ERROR_INVALID_FILE_FORMAT, + ERROR_INVALID_MAGIC, + ERROR_INVALID_CHAR, + + // External errors + ERROR_STREAM_ERROR, + ERROR_MEMORY_ALLOCATION_FAILURE, + ERROR_UNALIGNED_MEMORY, + ERROR_PRESERIALIZE_FAILED, + ERROR_INTERNAL_BUFFER_OVERFLOW, + ERROR_OBJECT_CREATION_FAILED, + ERROR_CONVERSION_FAILED, + + // Xml-specific errors + ERROR_VAL2STRING_FAILED, + ERROR_STRING2VAL_FAILED, + ERROR_INVALID_TYPE_ATTRIBUTE, + ERROR_UNKNOWN_XML_TAG, + ERROR_MISSING_DOCTYPE, + ERROR_MISSING_ROOT_ELEMENT, + ERROR_INVALID_NESTING, + ERROR_INVALID_ATTR, + + // Other stuff + ERROR_INVALID_ARRAY, + ERROR_ARRAY_INDEX_OUT_OF_RANGE, + ERROR_INVALID_VALUE, + ERROR_INVALID_INTERNAL_PTR, + ERROR_INVALID_PARAM_HANDLE, + ERROR_INVALID_RELOC_TYPE, + ERROR_INVALID_DATA_TYPE, + ERROR_INVALID_REFERENCE + }; + + /** + \brief The supported serialization formats + */ + enum SerializeType + { + /// serialize in XML format. + NST_XML = 0, + + /// serialize in a binary format + NST_BINARY, + + NST_LAST + }; + + /** + \brief Get type of stream (binary or xml) + \param [in] stream stream to be analyzed + */ + static SerializeType peekSerializeType(physx::general_PxIOStream2::PxFileBuf &stream); + + /** + \brief Get stream native platform + \param [in] stream stream to be analyzed + \param [out] platform stream native platform + */ + static ErrorType peekPlatform(physx::general_PxIOStream2::PxFileBuf &stream, SerializePlatform &platform); + + virtual ~Serializer() {} + + /** + \brief Set platform to use in platform-dependent serialization + \param [in] platform target platform + + \warning Currently this is used only in binary serializer + + Application running on target platforms may potentially make use of extremely fast + inplace deserialization (using method deserializeInplace) on files which were serialized + for this platform. + */ + virtual ErrorType setTargetPlatform(const SerializePlatform &platform) = 0; + + /** + \brief Sets whether serializer will automatically update + objects after deserialization + \param [in] doUpdate should automatic update be done? + + \warning Normally you will not need this + \warning This is true by default + */ + virtual void setAutoUpdate(bool doUpdate) = 0; + + /** + \brief Serialize array of NvParameterized-objects to a stream + \param [in] stream the stream to which the object will be serialized + \param [in] objs NvParameterized-objects which will be serialized + \param [in] nobjs number of objects + \param [in] doSerializeMetadata set this to store object metadata in file + + \warning Serialized file may depend on selected target platform + */ + virtual ErrorType serialize( + physx::general_PxIOStream2::PxFileBuf &stream, + const ::NvParameterized::Interface **objs, + uint32_t nobjs, + bool doSerializeMetadata = false) = 0; + + /** + \brief Peek number of NvParameterized-objects in stream with serialized data + \param [in] stream the stream from which the object will be deserialized + \param [out] numObjects number of objects + + \warning Not all streams support peeking + */ + virtual ErrorType peekNumObjects(physx::general_PxIOStream2::PxFileBuf &stream, uint32_t &numObjects) = 0; + + /** + \brief Peek number of NvParameterized-objects in stream with serialized data + \param [in] stream the stream from which objects will be deserialized + \param [in] classNames pointer to buffer for resulting names + \param [in,out] numClassNames limit on number of returned classNames; number of returned names + + \warning User is responsible for releasing every element of classNames via Traits::strfree() + */ + virtual ErrorType peekClassNames(physx::general_PxIOStream2::PxFileBuf &stream, char **classNames, uint32_t &numClassNames) = 0; + + /** + \brief Peek number of NvParameterized-objects in memory buffer with serialized data + \param [in] data pointer to memory buffer + \param [in] dataLen length of memory buffer + \param [out] numObjects number of objects + */ + virtual ErrorType peekNumObjectsInplace(const void *data, uint32_t dataLen, uint32_t &numObjects) = 0; + + /// TODO + template < typename T, int bufSize = 8 > class DeserializedResults + { + T buf[bufSize]; //For small number of objects + + T *objs; + + uint32_t nobjs; + + Traits *traits; + + void clear(); + + public: + + PX_INLINE DeserializedResults(); + + PX_INLINE ~DeserializedResults(); + + /** + \brief Copy constructor + */ + PX_INLINE DeserializedResults(const DeserializedResults &data); + + /** + \brief Assignment operator + */ + PX_INLINE DeserializedResults &operator =(const DeserializedResults &rhs); + + /** + \brief Allocate memory for values + */ + PX_INLINE void init(Traits *traits_, uint32_t nobjs_); + + /** + \brief Allocate memory and set values + */ + PX_INLINE void init(Traits *traits_, T *objs_, uint32_t nobjs_); + + /** + \brief Number of objects in a container + */ + PX_INLINE uint32_t size() const; + + /** + \brief Access individual object in container + */ + PX_INLINE T &operator[](uint32_t i); + + /** + \brief Const-access individual object in container + */ + PX_INLINE const T &operator[](uint32_t i) const; + + /** + \brief Read all NvParameterized objects in container to buffer outObjs + \warning outObjs must be large enough to hold all contained objects + */ + PX_INLINE void getObjects(T *outObjs); + + /** + \brief Release all objects + */ + PX_INLINE void releaseAll(); + }; + + /** + \brief Container for results of deserialization + + DeserializedData holds array of NvParameterized objects obtained during deserialization. + */ + typedef DeserializedResults< ::NvParameterized::Interface *> DeserializedData; + + /// This class keeps metadata of a single NvParameterized class + struct MetadataEntry + { + /// Class name + const char *className; + + /// Class version + uint32_t version; + + /// Class metadata + Definition *def; + }; + + /** + \brief Container for results of metadata deserialization + + DeserializedMetadata holds array of MetadataEntry obtained during metadata deserialization. + */ + typedef DeserializedResults DeserializedMetadata; + + /** + \brief Deserialize metadata from a stream into one or more definitions + \param [in] stream the stream from which metadata will be deserialized + \param [out] desData storage for deserialized metadata + \warning This is a draft implementation! + */ + virtual ErrorType deserializeMetadata(physx::general_PxIOStream2::PxFileBuf &stream, DeserializedMetadata &desData); + + /** + \brief Deserialize a stream into one or more NvParameterized objects + \param [in] stream the stream from which objects will be deserialized + \param [out] desData storage for deserialized data + */ + virtual ErrorType deserialize(physx::general_PxIOStream2::PxFileBuf &stream, DeserializedData &desData); + + /** + \brief Deserialize a stream into one or more NvParameterized objects + \param [in] stream the stream from which objects will be deserialized + \param [out] desData storage for deserialized data + \param [out] isUpdated true if any legacy object was updated, false otherwise + */ + virtual ErrorType deserialize(physx::general_PxIOStream2::PxFileBuf &stream, DeserializedData &desData, bool &isUpdated) = 0; + + /** + \brief Deserialize memory buffer into one or more NvParameterized objects + \param [in] data pointer to serialized data. It should be allocated via Traits. + \param [in] dataLen length of serialized data + \param [out] desData storage for deserialized data + + \warning Currently only binary serializer supports inplace deserialization + \warning Memory must be aligned to 8 byte boundary + */ + virtual ErrorType deserializeInplace(void *data, uint32_t dataLen, DeserializedData &desData); + + /** + \brief Deserialize memory buffer into one or more NvParameterized objects + \param [in] data pointer to serialized data + \param [in] dataLen length of serialized data + \param [out] desData storage for deserialized data + \param [out] isUpdated true if any legacy object was updated, false otherwise + + \warning Currently only binary serializer supports inplace deserialization + \warning Memory must be aligned to the boundary required by the data (see getInplaceAlignment) + */ + virtual ErrorType deserializeInplace(void *data, uint32_t dataLen, DeserializedData &desData, bool &isUpdated) = 0; + + /** + \brief Get minimum alignment required for inplace deserialization of data in stream + \param [in] stream stream which will be inplace deserialized + \param [out] align alignment required for inplace deserialization of stream + \note For most of the objects this will return default alignment of 8 bytes + */ + virtual ErrorType peekInplaceAlignment(physx::general_PxIOStream2::PxFileBuf& stream, uint32_t& align) = 0; + + /** + \brief Release deserializer and any memory allocations associated with it + */ + virtual void release() = 0; +}; + +PX_POP_PACK + +} // namespace NvParameterized + +#include "NvSerializer.inl" + +#endif // NV_SERIALIZER_H diff --git a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.inl b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.inl old mode 100644 new mode 100755 index e9298bb..d3989e9 --- a/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.inl +++ b/sdk/extensions/import/apexmodules/nvparutils/nvparameterized/NvSerializer.inl @@ -1,177 +1,177 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. - -#include "NvParameterized.h" -#include "NvParameterizedTraits.h" - -namespace NvParameterized -{ - -/*! -\brief Serializer::SerializePlatform and Serializer::DeserializedData inline implementation -*/ - -/** -\brief Check binary compatibility of compiler versions -*/ -PX_INLINE bool DoCompilerVersMatch(SerializePlatform::CompilerType t, uint32_t v1, uint32_t v2) -{ - PX_UNUSED(t); - if( SerializePlatform::ANY_VERSION == v1 || SerializePlatform::ANY_VERSION == v2 ) - return true; - - //In future we should distinguish compiler versions which have different ABI - //but now we are optimistic - - return true; -} - -/** -\brief Check binary compatibility of OS versions -*/ -PX_INLINE bool DoOsVersMatch(SerializePlatform::OsType t, uint32_t v1, uint32_t v2) -{ - PX_UNUSED(t); - if( SerializePlatform::ANY_VERSION == v1 || SerializePlatform::ANY_VERSION == v2 ) - return true; - - return true; //See comment for doCompilerVersMatch -} - -PX_INLINE SerializePlatform::SerializePlatform() - : archType(ARCH_LAST), - compilerType(COMP_LAST), - compilerVer(ANY_VERSION), - osType(OS_LAST), - osVer(ANY_VERSION) -{} - -PX_INLINE SerializePlatform::SerializePlatform(ArchType archType_, CompilerType compType_, uint32_t compVer_, OsType osType_, uint32_t osVer_) - : archType(archType_), - compilerType(compType_), - compilerVer(compVer_), - osType(osType_), - osVer(osVer_) -{} - -PX_INLINE bool SerializePlatform::operator ==(const SerializePlatform &p) const -{ - return archType == p.archType - && compilerType == p.compilerType - && osType == p.osType - && DoCompilerVersMatch(compilerType, compilerVer, p.compilerVer) - && DoOsVersMatch(osType, osVer, p.osVer); -} - -PX_INLINE bool SerializePlatform::operator !=(const SerializePlatform &p) const -{ - return !(*this == p); -} - -template PX_INLINE Serializer::DeserializedResults::DeserializedResults(): objs(0), nobjs(0), traits(0) {} - -template PX_INLINE Serializer::DeserializedResults::DeserializedResults(const Serializer::DeserializedResults &data) -{ - *this = data; -} - -template PX_INLINE Serializer::DeserializedResults &Serializer::DeserializedResults::operator =(const Serializer::DeserializedResults &rhs) -{ - if( this == &rhs ) - return *this; - - init(rhs.traits, rhs.objs, rhs.nobjs); - return *this; -} - -template PX_INLINE void Serializer::DeserializedResults::clear() -{ - if ( objs && objs != buf ) //Memory was allocated? - { - PX_ASSERT(traits); - traits->free(objs); - } -} - -template PX_INLINE Serializer::DeserializedResults::~DeserializedResults() -{ - clear(); -} - -template PX_INLINE void Serializer::DeserializedResults::init(Traits *traits_, T *objs_, uint32_t nobjs_) -{ - init(traits_, nobjs_); - ::memcpy(objs, objs_, nobjs * sizeof(T)); -} - -template PX_INLINE void Serializer::DeserializedResults::init(Traits *traits_, uint32_t nobjs_) -{ - clear(); - - traits = traits_; - nobjs = nobjs_; - - //Allocate memory if buf is too small - objs = nobjs <= bufSize - ? buf - : (T *)traits->alloc(nobjs * sizeof(T)); -} - -template PX_INLINE uint32_t Serializer::DeserializedResults::size() const -{ - return nobjs; -} - -template PX_INLINE T &Serializer::DeserializedResults::operator[](uint32_t i) -{ - PX_ASSERT( i < nobjs ); - return objs[i]; -} - -template PX_INLINE const T &Serializer::DeserializedResults::operator[](uint32_t i) const -{ - PX_ASSERT( i < nobjs ); - return objs[i]; -} - -template PX_INLINE void Serializer::DeserializedResults::getObjects(T *outObjs) -{ - ::memcpy(outObjs, objs, nobjs * sizeof(T)); -} - -template PX_INLINE void Serializer::DeserializedResults::releaseAll() -{ - for(uint32_t i = 0; i < nobjs; ++i) - { - if (objs[i]) - { - objs[i]->destroy(); // FIXME What should we do with buf. And should we delete T* obj? - } - } -} - -} // namespace NvParameterized +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2008-2013 NVIDIA Corporation. All rights reserved. + +#include "NvParameterized.h" +#include "NvParameterizedTraits.h" + +namespace NvParameterized +{ + +/*! +\brief Serializer::SerializePlatform and Serializer::DeserializedData inline implementation +*/ + +/** +\brief Check binary compatibility of compiler versions +*/ +PX_INLINE bool DoCompilerVersMatch(SerializePlatform::CompilerType t, uint32_t v1, uint32_t v2) +{ + PX_UNUSED(t); + if( SerializePlatform::ANY_VERSION == v1 || SerializePlatform::ANY_VERSION == v2 ) + return true; + + //In future we should distinguish compiler versions which have different ABI + //but now we are optimistic + + return true; +} + +/** +\brief Check binary compatibility of OS versions +*/ +PX_INLINE bool DoOsVersMatch(SerializePlatform::OsType t, uint32_t v1, uint32_t v2) +{ + PX_UNUSED(t); + if( SerializePlatform::ANY_VERSION == v1 || SerializePlatform::ANY_VERSION == v2 ) + return true; + + return true; //See comment for doCompilerVersMatch +} + +PX_INLINE SerializePlatform::SerializePlatform() + : archType(ARCH_LAST), + compilerType(COMP_LAST), + compilerVer(ANY_VERSION), + osType(OS_LAST), + osVer(ANY_VERSION) +{} + +PX_INLINE SerializePlatform::SerializePlatform(ArchType archType_, CompilerType compType_, uint32_t compVer_, OsType osType_, uint32_t osVer_) + : archType(archType_), + compilerType(compType_), + compilerVer(compVer_), + osType(osType_), + osVer(osVer_) +{} + +PX_INLINE bool SerializePlatform::operator ==(const SerializePlatform &p) const +{ + return archType == p.archType + && compilerType == p.compilerType + && osType == p.osType + && DoCompilerVersMatch(compilerType, compilerVer, p.compilerVer) + && DoOsVersMatch(osType, osVer, p.osVer); +} + +PX_INLINE bool SerializePlatform::operator !=(const SerializePlatform &p) const +{ + return !(*this == p); +} + +template PX_INLINE Serializer::DeserializedResults::DeserializedResults(): objs(0), nobjs(0), traits(0) {} + +template PX_INLINE Serializer::DeserializedResults::DeserializedResults(const Serializer::DeserializedResults &data) +{ + *this = data; +} + +template PX_INLINE Serializer::DeserializedResults &Serializer::DeserializedResults::operator =(const Serializer::DeserializedResults &rhs) +{ + if( this == &rhs ) + return *this; + + init(rhs.traits, rhs.objs, rhs.nobjs); + return *this; +} + +template PX_INLINE void Serializer::DeserializedResults::clear() +{ + if ( objs && objs != buf ) //Memory was allocated? + { + PX_ASSERT(traits); + traits->free(objs); + } +} + +template PX_INLINE Serializer::DeserializedResults::~DeserializedResults() +{ + clear(); +} + +template PX_INLINE void Serializer::DeserializedResults::init(Traits *traits_, T *objs_, uint32_t nobjs_) +{ + init(traits_, nobjs_); + ::memcpy(objs, objs_, nobjs * sizeof(T)); +} + +template PX_INLINE void Serializer::DeserializedResults::init(Traits *traits_, uint32_t nobjs_) +{ + clear(); + + traits = traits_; + nobjs = nobjs_; + + //Allocate memory if buf is too small + objs = nobjs <= bufSize + ? buf + : (T *)traits->alloc(nobjs * sizeof(T)); +} + +template PX_INLINE uint32_t Serializer::DeserializedResults::size() const +{ + return nobjs; +} + +template PX_INLINE T &Serializer::DeserializedResults::operator[](uint32_t i) +{ + PX_ASSERT( i < nobjs ); + return objs[i]; +} + +template PX_INLINE const T &Serializer::DeserializedResults::operator[](uint32_t i) const +{ + PX_ASSERT( i < nobjs ); + return objs[i]; +} + +template PX_INLINE void Serializer::DeserializedResults::getObjects(T *outObjs) +{ + ::memcpy(outObjs, objs, nobjs * sizeof(T)); +} + +template PX_INLINE void Serializer::DeserializedResults::releaseAll() +{ + for(uint32_t i = 0; i < nobjs; ++i) + { + if (objs[i]) + { + objs[i]->destroy(); // FIXME What should we do with buf. And should we delete T* obj? + } + } +} + +} // namespace NvParameterized diff --git a/sdk/extensions/import/include/NvBlastExtApexImportTool.h b/sdk/extensions/import/include/NvBlastExtApexImportTool.h old mode 100644 new mode 100755 index 2867eac..3eb4f71 --- a/sdk/extensions/import/include/NvBlastExtApexImportTool.h +++ b/sdk/extensions/import/include/NvBlastExtApexImportTool.h @@ -1,209 +1,209 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved. - - -#ifndef NVBLASTEXTAPEXIMPORTTOOL_H -#define NVBLASTEXTAPEXIMPORTTOOL_H - -#include "NvBlast.h" -#include -#include -#include "NvBlastExtPxAsset.h" -#include -#include - -namespace physx -{ - class PxFoundation; - class PxPhysics; - class PxCooking; - -namespace general_PxIOStream2 -{ -class PxFileBuf; -} -} - -namespace NvParameterized -{ - class Interface; -} - -namespace nvidia -{ -namespace apex -{ -class ApexSDK; -class ModuleDestructible; -class DestructibleAsset; -} -using namespace physx::general_PxIOStream2; -} - - -namespace Nv -{ -namespace Blast -{ - -struct CollisionHull; -class TkFramework; - -namespace ApexImporter -{ - -struct ApexImporterConfig -{ - /** - Interface search mode: - - EXACT - - Importer tries to find triangles from two chunks which lay in common surface. - If such triangles are found, their intersections are considered as the interface. - - FORCED - Bond creation is forced no matter how far chunks from each other. - - */ - enum InterfaceSearchMode { EXACT, FORCED, MODE_COUNT }; - - ApexImporterConfig() - { - setDefaults(); - } - - void setDefaults() - { - infSearchMode = EXACT; - } - InterfaceSearchMode infSearchMode; -}; - - -class ApexDestruction; - - -/** - ApexImportTool provides routines to create NvBlastAssets from APEX assets. -*/ -class ApexImportTool -{ -public: - ApexImportTool(); - ~ApexImportTool(); - - /** - Method loads APEX Destruction asset from file - \param[in] stream Pointer on PxFileBuf stream with Apex Destruction asset - \return If not 0, pointer on DestructibleAsset object is returned. - */ - bool loadAssetFromFile(nvidia::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData& data); - - - /** - Method builds NvBlastAsset form provided DestructibleAsset. DestructibleAsset must contain support graph! - \param[out] chunkReorderInvMap Chunk map from blast chunk to apex chunk to be filled. - \param[in] apexAsset Pointer on DestructibleAsset object which should be converted to NvBlastAsset - \param[out] chunkDescriptors Reference on chunk descriptors array to be filled. - \param[out] bondDescriptors Reference on bond descriptors array to be filled. - \param[out] flags Reference on chunk flags to be filled. - - \return If true, output arrays are filled. - */ - bool importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, - std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& flags); - - /** - Method builds NvBlastAsset form provided DestructibleAsset. DestructibleAsset must contain support graph! - Parameteres of conversion could be provided with ApexImporterConfig. - \param[out] chunkReorderInvMap Chunk map from blast chunk to apex chunk to be filled. - \param[in] apexAsset Pointer on DestructibleAsset object which should be converted to NvBlastAsset - \param[out] chunkDescriptors Reference on chunk descriptors array to be filled. - \param[out] bondDescriptors Reference on bond descriptors array to be filled. - \param[out] flags Reference on chunk flags to be filled. - \param[in] config ApexImporterConfig object with conversion parameters, see above. - \return If true, output arrays are filled. - */ - bool importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, - std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& flags, - const ApexImporterConfig& config); - - /** - Method builds NvBlastAsset form provided DestructibleAsset. DestructibleAsset must contain support graph! - */ - bool importRendermesh(const std::vector& chunkReorderInvMap, const NvParameterized::Interface* assetNvIfc, Nv::Blast::ExporterMeshData* outputData, const char* materialsDir); - - - /** - Method serializes user-supplied NvBlastAsset object to user-supplied PxFileBuf stream. - \param[in] asset Pointer on NvBlastAsset object which should be serialized - \param[in] stream Pointer on PxFileBuf object in which NvBlastAsset should be serialized. - \return If true, NvBlastAsset object serialized successfully. - */ - bool saveAsset(const NvBlastAsset* asset, nvidia::PxFileBuf* stream); - - /** - Method creates collision geometry from user-supplied APEX Destructible asset. - \param[in] apexAsset Pointer on DestructibleAsset object for which collision geometry should be created. - \param[in] chunkCount Blast asset chunk count, should be equal to number of blast chunk descriptors which are gathered at ApexImportTool::importApexAsset(...) - \param[in] chunkReorderInvMap Chunk map from blast chunk to apex chunk filled in ApexImportTool::importApexAsset(...) - \param[in] apexChunkFlags Chunk flags array - \param[out] physicsChunks Chunk physics info output array - \param[out] physicsSubchunks Chunk collision geometry and transformation data output array - \param[out] hullsDescs Chunk collision geometry descriptors, can be used to save to some third party format - \return If true - success, output arrays are filled. - */ - bool getCollisionGeometry(const NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector& chunkReorderInvMap, - const std::vector& apexChunkFlags, std::vector& physicsChunks, - std::vector& physicsSubchunks, std::vector >& hullsDesc); - - ////////////////////////////////////////////////////////////////////////////// - - bool isValid(); - - physx::PxPhysics* getPxSdk() { return m_PhysxSDK; } - physx::PxCooking* getCooking() { return m_Cooking; }; - -private: - bool importApexAssetInternal(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, - std::vector& chunkDescriptors, std::vector& bondDesc, std::vector& flags, - const ApexImporterConfig& configDesc); - -protected: - ApexImportTool(const ApexImportTool&); - ApexImportTool& operator=(const ApexImportTool&); - - physx::PxFoundation* m_Foundation; - physx::PxPhysics* m_PhysxSDK; - physx::PxCooking* m_Cooking; - -}; - -} // namespace ApexImporter - -} // namespace Blast -} // namespace Nv - -#endif // NVBLASTEXTAPEXIMPORTTOOL_H +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved. + + +#ifndef NVBLASTEXTAPEXIMPORTTOOL_H +#define NVBLASTEXTAPEXIMPORTTOOL_H + +#include "NvBlast.h" +#include +#include +#include "NvBlastExtPxAsset.h" +#include +#include + +namespace physx +{ + class PxFoundation; + class PxPhysics; + class PxCooking; + +namespace general_PxIOStream2 +{ +class PxFileBuf; +} +} + +namespace NvParameterized +{ + class Interface; +} + +namespace nvidia +{ +namespace apex +{ +class ApexSDK; +class ModuleDestructible; +class DestructibleAsset; +} +using namespace physx::general_PxIOStream2; +} + + +namespace Nv +{ +namespace Blast +{ + +struct CollisionHull; +class TkFramework; + +namespace ApexImporter +{ + +struct ApexImporterConfig +{ + /** + Interface search mode: + + EXACT - - Importer tries to find triangles from two chunks which lay in common surface. + If such triangles are found, their intersections are considered as the interface. + + FORCED - Bond creation is forced no matter how far chunks from each other. + + */ + enum InterfaceSearchMode { EXACT, FORCED, MODE_COUNT }; + + ApexImporterConfig() + { + setDefaults(); + } + + void setDefaults() + { + infSearchMode = EXACT; + } + InterfaceSearchMode infSearchMode; +}; + + +class ApexDestruction; + + +/** + ApexImportTool provides routines to create NvBlastAssets from APEX assets. +*/ +class ApexImportTool +{ +public: + ApexImportTool(); + ~ApexImportTool(); + + /** + Method loads APEX Destruction asset from file + \param[in] stream Pointer on PxFileBuf stream with Apex Destruction asset + \return If not 0, pointer on DestructibleAsset object is returned. + */ + bool loadAssetFromFile(nvidia::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData& data); + + + /** + Method builds NvBlastAsset form provided DestructibleAsset. DestructibleAsset must contain support graph! + \param[out] chunkReorderInvMap Chunk map from blast chunk to apex chunk to be filled. + \param[in] apexAsset Pointer on DestructibleAsset object which should be converted to NvBlastAsset + \param[out] chunkDescriptors Reference on chunk descriptors array to be filled. + \param[out] bondDescriptors Reference on bond descriptors array to be filled. + \param[out] flags Reference on chunk flags to be filled. + + \return If true, output arrays are filled. + */ + bool importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, + std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& flags); + + /** + Method builds NvBlastAsset form provided DestructibleAsset. DestructibleAsset must contain support graph! + Parameteres of conversion could be provided with ApexImporterConfig. + \param[out] chunkReorderInvMap Chunk map from blast chunk to apex chunk to be filled. + \param[in] apexAsset Pointer on DestructibleAsset object which should be converted to NvBlastAsset + \param[out] chunkDescriptors Reference on chunk descriptors array to be filled. + \param[out] bondDescriptors Reference on bond descriptors array to be filled. + \param[out] flags Reference on chunk flags to be filled. + \param[in] config ApexImporterConfig object with conversion parameters, see above. + \return If true, output arrays are filled. + */ + bool importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, + std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& flags, + const ApexImporterConfig& config); + + /** + Method builds NvBlastAsset form provided DestructibleAsset. DestructibleAsset must contain support graph! + */ + bool importRendermesh(const std::vector& chunkReorderInvMap, const NvParameterized::Interface* assetNvIfc, Nv::Blast::ExporterMeshData* outputData, const char* materialsDir); + + + /** + Method serializes user-supplied NvBlastAsset object to user-supplied PxFileBuf stream. + \param[in] asset Pointer on NvBlastAsset object which should be serialized + \param[in] stream Pointer on PxFileBuf object in which NvBlastAsset should be serialized. + \return If true, NvBlastAsset object serialized successfully. + */ + bool saveAsset(const NvBlastAsset* asset, nvidia::PxFileBuf* stream); + + /** + Method creates collision geometry from user-supplied APEX Destructible asset. + \param[in] apexAsset Pointer on DestructibleAsset object for which collision geometry should be created. + \param[in] chunkCount Blast asset chunk count, should be equal to number of blast chunk descriptors which are gathered at ApexImportTool::importApexAsset(...) + \param[in] chunkReorderInvMap Chunk map from blast chunk to apex chunk filled in ApexImportTool::importApexAsset(...) + \param[in] apexChunkFlags Chunk flags array + \param[out] physicsChunks Chunk physics info output array + \param[out] physicsSubchunks Chunk collision geometry and transformation data output array + \param[out] hullsDescs Chunk collision geometry descriptors, can be used to save to some third party format + \return If true - success, output arrays are filled. + */ + bool getCollisionGeometry(const NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector& chunkReorderInvMap, + const std::vector& apexChunkFlags, std::vector& physicsChunks, + std::vector& physicsSubchunks, std::vector >& hullsDesc); + + ////////////////////////////////////////////////////////////////////////////// + + bool isValid(); + + physx::PxPhysics* getPxSdk() { return m_PhysxSDK; } + physx::PxCooking* getCooking() { return m_Cooking; }; + +private: + bool importApexAssetInternal(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, + std::vector& chunkDescriptors, std::vector& bondDesc, std::vector& flags, + const ApexImporterConfig& configDesc); + +protected: + ApexImportTool(const ApexImportTool&); + ApexImportTool& operator=(const ApexImportTool&); + + physx::PxFoundation* m_Foundation; + physx::PxPhysics* m_PhysxSDK; + physx::PxCooking* m_Cooking; + +}; + +} // namespace ApexImporter + +} // namespace Blast +} // namespace Nv + +#endif // NVBLASTEXTAPEXIMPORTTOOL_H diff --git a/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp b/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp old mode 100644 new mode 100755 index ad3acaf..fad9ade --- a/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp +++ b/sdk/extensions/import/source/NvBlastExtApexImportTool.cpp @@ -1,944 +1,944 @@ -// This code contains NVIDIA Confidential Information and is disclosed to you -// under a form of NVIDIA software license agreement provided separately to you. -// -// Notice -// NVIDIA Corporation and its licensors retain all intellectual property and -// proprietary rights in and to this software and 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. -// -// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES -// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO -// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, -// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Information and code furnished is believed to be accurate and reliable. -// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such -// information or for any infringement of patents or other rights of third parties that may -// result from its use. No license is granted by implication or otherwise under any patent -// or patent rights of NVIDIA Corporation. Details are subject to change without notice. -// This code supersedes and replaces all information previously supplied. -// NVIDIA Corporation products are not authorized for use as critical -// components in life support devices or systems without express written approval of -// NVIDIA Corporation. -// -// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved. - - -#include "NvBlastExtApexImportTool.h" - -#if NV_VC -#pragma warning(push) -#pragma warning(disable: 4996) // 'fopen' unsafe warning, from NxFileBuffer.h -#endif - -#include "PxFoundation.h" - -#include "NvBlastIndexFns.h" -#include "NvBlastGlobals.h" -#include -#include -#include "PxPhysics.h" -#include "NvBlastExtAuthoringCollisionBuilder.h" -#include "NvBlastExtPxAsset.h" -#include "NvBlastExtAuthoring.h" -#include "NvBlastExtAuthoringBondGenerator.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include "PsFastXml.h" -#include "PsFileBuffer.h" -#include -#include -#include -#include -#include -#include - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "NvBlastPxCallbacks.h" - -using namespace nvidia; -using namespace physx; -using namespace apex; - -using nvidia::destructible::DestructibleAssetParameters; - -namespace Nv -{ -namespace Blast -{ - -namespace ApexImporter -{ - /** - Should be consistent with IntPair in APEX - */ - struct IntPair - { - void set(int32_t _i0, int32_t _i1) - { - i0 = _i0; - i1 = _i1; - } - - int32_t i0, i1; - - static int compare(const void* a, const void* b) - { - const int32_t diff0 = ((IntPair*)a)->i0 - ((IntPair*)b)->i0; - return diff0 ? diff0 : (((IntPair*)a)->i1 - ((IntPair*)b)->i1); - } - }; - -bool ApexImportTool::loadAssetFromFile(physx::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData& data) -{ - if (stream && stream->isOpen()) - { - NvParameterized::Serializer::SerializeType serType = NvParameterized::Serializer::peekSerializeType(*stream); - NvParameterized::Serializer::ErrorType serError; - - NvParameterized::Traits* traits = new NvParameterized::DefaultTraits(NvParameterized::DefaultTraits::BehaviourFlags::DEFAULT_POLICY); - - nvidia::destructible::ModuleDestructibleRegistration::invokeRegistration(traits); - ModuleDestructibleLegacyRegistration::invokeRegistration(traits); - ModuleCommonRegistration::invokeRegistration(traits); - ModuleCommonLegacyRegistration::invokeRegistration(traits); - ModuleFrameworkLegacyRegistration::invokeRegistration(traits); - ModuleFrameworkRegistration::invokeRegistration(traits); - NvParameterized::Serializer* ser = NvParameterized::internalCreateSerializer(serType, traits); - - PX_ASSERT(ser); - - serError = ser->deserialize(*stream, data); - - if (serError == NvParameterized::Serializer::ERROR_NONE && data.size() == 1) - { - NvParameterized::Interface* params = data[0]; - if (!physx::shdfnd::strcmp(params->className(), "DestructibleAssetParameters")) - { - return true; - } - else - { - NVBLAST_LOG_ERROR("Error: deserialized data is not an APEX Destructible\n"); - } - } - else - { - NVBLAST_LOG_ERROR("Error: failed to deserialize\n"); - } - ser->release(); - } - return false; -} - -bool ApexImportTool::isValid() -{ - return m_Foundation && m_PhysxSDK && m_Cooking; -} - -enum ChunkFlags -{ - SupportChunk = (1 << 0), - UnfracturableChunk = (1 << 1), - DescendantUnfractureable = (1 << 2), - UndamageableChunk = (1 << 3), - UncrumbleableChunk = (1 << 4), - RuntimeFracturableChunk = (1 << 5), - Instanced = (1 << 8), -}; - -uint32_t getPartIndex(const DestructibleAssetParameters* prm, uint32_t id) -{ - auto& sch = prm->chunks.buf[id]; - - return (sch.flags & ChunkFlags::Instanced) == 0 ? sch.meshPartIndex : prm->chunkInstanceInfo.buf[sch.meshPartIndex].partIndex; -} - -ApexImportTool::ApexImportTool() -{ - m_Foundation = PxCreateFoundation(PX_FOUNDATION_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback()); - if (!m_Foundation) - { - NVBLAST_LOG_ERROR("Error: failed to create Foundation\n"); - return; - } - physx::PxTolerancesScale scale; - m_PhysxSDK = PxCreatePhysics(PX_PHYSICS_VERSION, *m_Foundation, scale, true); - if (!m_PhysxSDK) - { - NVBLAST_LOG_ERROR("Error: failed to create PhysX\n"); - - return; - } - - physx::PxCookingParams cookingParams(scale); - cookingParams.buildGPUData = true; - m_Cooking = PxCreateCooking(PX_PHYSICS_VERSION, m_PhysxSDK->getFoundation(), cookingParams); - if (!m_Cooking) - { - NVBLAST_LOG_ERROR("Error: failed to create PhysX Cooking\n"); - return; - } - - -} - - -bool ApexImportTool::getCollisionGeometry(const NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector& chunkReorderInvMap, - const std::vector& apexChunkFlags, std::vector& physicsChunks, - std::vector& physicsSubchunks, std::vector >& hullsDesc) -{ - physicsChunks.clear(); - physicsChunks.resize(chunkCount); - // prepare physics asset desc (convexes, transforms) - std::shared_ptr collisionBuilder( - NvBlastExtAuthoringCreateConvexMeshBuilder(m_Cooking, &m_PhysxSDK->getPhysicsInsertionCallback()), - [](ConvexMeshBuilder* cmb) { cmb->release(); }); - - const DestructibleAssetParameters* params = static_cast(assetPrm); - - int32_t apexHullCount = 0; - const uint32_t apexChunkCount = params->chunks.arraySizes[0]; - - for (uint32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) - { - uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; - if (apexChunkIndex < apexChunkCount) - { - uint32_t partIndex = getPartIndex(params, apexChunkIndex); - uint32_t partConvexHullCount = params->chunkConvexHullStartIndices.buf[partIndex + 1] - params->chunkConvexHullStartIndices.buf[partIndex]; - apexHullCount += partConvexHullCount; - } - } - physicsSubchunks.reserve(chunkCount); - { - hullsDesc.clear(); - hullsDesc.resize(chunkCount); - for (uint32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) - { - uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; - if (apexChunkIndex < apexChunkCount) - { - uint32_t partIndex = getPartIndex(params, apexChunkIndex); - uint32_t partConvexHullCount = params->chunkConvexHullStartIndices.buf[partIndex + 1] - params->chunkConvexHullStartIndices.buf[partIndex]; - NvParameterized::Interface** cxInterfaceArray = params->chunkConvexHulls.buf + params->chunkConvexHullStartIndices.buf[partIndex]; - physicsChunks[chunkIndex].subchunkCount = partConvexHullCount; - for (uint32_t hull = 0; hull < partConvexHullCount; ++hull) - { - NvParameterized::Handle paramHandle(cxInterfaceArray[hull]); - int32_t verticesCount = 0; - paramHandle.getParameter("vertices"); - paramHandle.getArraySize(verticesCount); - std::vector vertexData(verticesCount); - paramHandle.getParamVec3Array(vertexData.data(), verticesCount); - hullsDesc[chunkIndex].push_back(nullptr); - hullsDesc[chunkIndex].back() = collisionBuilder.get()->buildCollisionGeometry(verticesCount, vertexData.data()); - PxConvexMesh* convexMesh = collisionBuilder.get()->buildConvexMesh(verticesCount, vertexData.data()); - - const ExtPxAssetDesc::SubchunkDesc subchunk = - { - PxTransform(PxIdentity), - PxConvexMeshGeometry(convexMesh) - }; - physicsSubchunks.push_back(subchunk); - } - physicsChunks[chunkIndex].subchunks = partConvexHullCount ? (&physicsSubchunks.back() + 1 - partConvexHullCount) : nullptr; - - // static flag set - physicsChunks[chunkIndex].isStatic = (apexChunkFlags[apexChunkIndex] & (1 << 1)) != 0; - } - else - { - NVBLAST_LOG_ERROR("Error: chunk index is invalid."); - } - } - } - - // check that vector didn't grow - if (static_cast(physicsSubchunks.size()) > apexHullCount) - { - NVBLAST_LOG_ERROR("Error: sub chunk count seems to be wrong."); - return false; - } - return true; -} - -PxBounds3 gatherChunkTriangles(std::vector& chunkToPartMp, const nvidia::apex::RenderMeshAssetParameters* rmAsset, std::vector& chunkTrianglesOffsets, std::vector& chunkTriangles, int32_t posBufferIndex, float scale, PxVec3 offset ) -{ - - PxBounds3 bnd; - bnd.setEmpty(); - chunkTrianglesOffsets.clear(); - uint32_t chunkCount = chunkToPartMp.size(); - chunkTrianglesOffsets.resize(chunkCount + 1); - chunkTrianglesOffsets[0] = 0; - for (uint32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) - { - uint32_t part = chunkToPartMp[chunkIndex]; - uint32_t submeshCount = rmAsset->submeshes.arraySizes[0]; - for (uint32_t submeshIndex = 0; submeshIndex < submeshCount; ++submeshIndex) - { - nvidia::apex::SubmeshParameters* submeshPrm = static_cast(rmAsset->submeshes.buf[submeshIndex]); - - const uint32_t* indexArray = submeshPrm->indexBuffer.buf + submeshPrm->indexPartition.buf[part]; - uint32_t indexCount = submeshPrm->indexPartition.buf[part + 1] - submeshPrm->indexPartition.buf[part]; - - nvidia::apex::VertexBufferParameters* vbuf = static_cast(submeshPrm->vertexBuffer); - - nvidia::apex::BufferF32x3* pbuf = static_cast(vbuf->buffers.buf[posBufferIndex]); - - const PxVec3* positions = reinterpret_cast(pbuf->data.buf); - - for (uint32_t i = 0; i < indexCount; i += 3) - { - Vertex a; - Vertex b; - Vertex c; - bnd.include(positions[indexArray[i]]); - bnd.include(positions[indexArray[i + 1]]); - bnd.include(positions[indexArray[i + 2]]); - - a.p = positions[indexArray[i]] - offset; - b.p = positions[indexArray[i + 1]] - offset; - c.p = positions[indexArray[i + 2]] - offset; - a.p *= scale; - b.p *= scale; - c.p *= scale; - chunkTriangles.push_back(Nv::Blast::Triangle(a, b, c)); - } - } - chunkTrianglesOffsets[chunkIndex + 1] = chunkTriangles.size(); - } - return bnd; -} - -bool ApexImportTool::importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, - std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& apexChunkFlags) -{ - ApexImporterConfig configDesc; - configDesc.setDefaults(); - return importApexAsset(chunkReorderInvMap, assetNvIfc, chunkDescriptors, bondDescriptors, apexChunkFlags, configDesc); -} - - -bool ApexImportTool::importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, - std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& apexChunkFlags, const ApexImporterConfig& configDesc) -{ - return importApexAssetInternal(chunkReorderInvMap, assetNvIfc, chunkDescriptors, bondDescriptors, apexChunkFlags, configDesc); -} - - - - - -bool ApexImportTool::importApexAssetInternal(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, - std::vector& chunkDescriptors, std::vector& bondsDescriptors, std::vector& apexChunkFlags, const ApexImporterConfig& configDesc) -{ - if (!assetNvIfc) - { - NVBLAST_LOG_ERROR("Error: attempting to import NULL Apex asset."); - return false; - } - DestructibleAssetParameters* params = static_cast(assetNvIfc); - - int32_t apexChunkCount = params->chunks.arraySizes[0]; - uint32_t rootChunkIndex = 0; - - std::vector chunkToPartMapping(apexChunkCount); - - chunkDescriptors.resize(apexChunkCount); - - nvidia::apex::RenderMeshAssetParameters* rmParam = static_cast(params->renderMeshAsset); - - std::vector perChunkBounds(apexChunkCount); - PxBounds3 allRmBound; - allRmBound.setEmpty(); - - for (uint32_t i = 0; i < (uint32_t)apexChunkCount; ++i) - { - // Use bounds center for centroid - uint32_t partIndex = getPartIndex(params, i); - chunkToPartMapping[i] = partIndex; - const PxBounds3 bounds = rmParam->partBounds.buf[partIndex]; - - perChunkBounds[i] = bounds; - allRmBound.include(bounds); - - const PxVec3 center = bounds.getCenter(); - memcpy(chunkDescriptors[i].centroid, ¢er.x, 3 * sizeof(float)); - - // Find chunk volume - uint32_t partConvexHullCount = params->chunkConvexHullStartIndices.buf[partIndex + 1] - params->chunkConvexHullStartIndices.buf[partIndex]; - NvParameterized::Interface** cxInterfaceArray = params->chunkConvexHulls.buf + params->chunkConvexHullStartIndices.buf[partIndex]; - chunkDescriptors[i].volume = 0.0f; - for (uint32_t hull = 0; hull < partConvexHullCount; ++hull) - { - NvParameterized::Handle paramHandle(cxInterfaceArray[hull]); - float hullVolume; - paramHandle.getParameter("volume"); - paramHandle.getParamF32(hullVolume); - chunkDescriptors[i].volume += hullVolume; - } - - int16_t parent = params->chunks.buf[i].parentIndex; - if (parent == -1) - { - rootChunkIndex = i; - chunkDescriptors[i].parentChunkIndex = UINT32_MAX; - } - else - { - chunkDescriptors[i].parentChunkIndex = parent; - } - - chunkDescriptors[i].flags = 0; - chunkDescriptors[i].userData = i; - } - // Get support graph data from Apex asset // - - const NvParameterized::Interface* assetParameterized = assetNvIfc; - uint32_t maximumSupportDepth = 0; - - NvParameterized::Handle parameterHandle(*assetParameterized); - parameterHandle.getParameter("supportDepth"); - parameterHandle.getParamU32(maximumSupportDepth); - std::vector > overlapsBuffer; - nvidia::destructible::CachedOverlaps* overlapsArray = static_cast(params->overlapsAtDepth.buf[maximumSupportDepth]); - uint32_t overlapsCount = overlapsArray->overlaps.arraySizes[0]; - if (overlapsCount != 0) - { - for (uint32_t i = 0; i < overlapsCount; ++i) - { - uint32_t ov0 = overlapsArray->overlaps.buf[i].i0; - uint32_t ov1 = overlapsArray->overlaps.buf[i].i1; - - chunkDescriptors[ov0].flags = NvBlastChunkDesc::SupportFlag; - chunkDescriptors[ov1].flags = NvBlastChunkDesc::SupportFlag; - overlapsBuffer.push_back(std::make_pair(ov0, ov1)); - } - } - - // Format all connections as (chunk with lower index) -> (chunk with higher index) // - - for (uint32_t i = 0; i < overlapsBuffer.size(); ++i) - { - if (overlapsBuffer[i].first > overlapsBuffer[i].second) - { - std::swap(overlapsBuffer[i].first, overlapsBuffer[i].second); - } - } - - // Unique all connections // - std::sort(overlapsBuffer.begin(), overlapsBuffer.end()); - overlapsBuffer.resize(std::unique(overlapsBuffer.begin(), overlapsBuffer.end()) - overlapsBuffer.begin()); - - // Build bond descriptors (acquire area, normal, centroid) - bondsDescriptors.clear(); - bondsDescriptors.resize(overlapsBuffer.size()); - - std::shared_ptr bondGenTool( - NvBlastExtAuthoringCreateBondGenerator(m_Cooking, &m_PhysxSDK->getPhysicsInsertionCallback()), - [](Nv::Blast::BlastBondGenerator* bg) {bg->release(); }); - - std::vector chunkTrianglesOffsets; - std::vector chunkTriangles; - - PxBounds3 bnds = allRmBound; - PxVec3 offset = bnds.getCenter(); - float scale = 1.0f / PxMax(PxAbs(bnds.getExtents(0)), PxMax(PxAbs(bnds.getExtents(1)), PxAbs(bnds.getExtents(2)))); - - bnds = gatherChunkTriangles(chunkToPartMapping, rmParam, chunkTrianglesOffsets, chunkTriangles, 0, scale, offset); - - - BondGenerationConfig cf; - cf.bondMode = BondGenerationConfig::AVERAGE; - if (configDesc.infSearchMode == configDesc.EXACT) - { - cf.bondMode = BondGenerationConfig::EXACT; - } - NvBlastBondDesc* bondsDesc; - std::vector overlapsA, overlapsB; - for (auto it : overlapsBuffer) - { - overlapsA.push_back(it.first); - overlapsB.push_back(it.second); - } - bondGenTool.get()->createBondBetweenMeshes(chunkTrianglesOffsets.size() - 1, chunkTrianglesOffsets.data(), chunkTriangles.data(), - overlapsBuffer.size(), overlapsA.data(), overlapsB.data(), bondsDesc, cf); - memcpy(bondsDescriptors.data(), bondsDesc, sizeof(NvBlastBondDesc) * bondsDescriptors.size()); - NVBLAST_FREE(bondsDesc); - - float inverScale = 1.0f / scale; - - for (uint32_t i = 0; i < bondsDescriptors.size(); ++i) - { - bondsDescriptors[i].bond.area *= inverScale * inverScale; - bondsDescriptors[i].bond.centroid[0] *= inverScale; - bondsDescriptors[i].bond.centroid[1] *= inverScale; - bondsDescriptors[i].bond.centroid[2] *= inverScale; - - bondsDescriptors[i].bond.centroid[0] += offset.x; - bondsDescriptors[i].bond.centroid[1] += offset.y; - bondsDescriptors[i].bond.centroid[2] += offset.z; - - } - - /// Delete all bonds with zero area /// - for (uint32_t i = 0; i < bondsDescriptors.size(); ++i) - { - if (bondsDescriptors[i].bond.area == 0) - { - bondsDescriptors[i].chunkIndices[0] = bondsDescriptors.back().chunkIndices[0]; - bondsDescriptors[i].chunkIndices[1] = bondsDescriptors.back().chunkIndices[1]; - bondsDescriptors[i].bond = bondsDescriptors.back().bond; - bondsDescriptors.pop_back(); - --i; - } - } - - apexChunkFlags.clear(); - apexChunkFlags.resize(chunkDescriptors.size()); - // externally supported chunks - { - for (uint32_t i = 0; i < chunkDescriptors.size(); i++) - { - uint32_t chunkID = i; - const NvParameterized::Interface* assetInterface = assetNvIfc; - NvParameterized::Handle chunksHandle(*assetInterface, "chunks"); - chunksHandle.set(chunkID); - NvParameterized::Handle flagsHandle(*assetInterface); - chunksHandle.getChildHandle(assetInterface, "flags", flagsHandle); - uint32_t flags; - flagsHandle.getParamU32(flags); - - apexChunkFlags[chunkID] = flags; - - // world support flag - if (flags & (1 << 0)) - { - NvBlastBondDesc bond; - bond.chunkIndices[0] = i; - bond.chunkIndices[1] = UINT32_MAX; // invalid index for "world" - bond.bond.area = 0.1f; // ??? - PxVec3 center = perChunkBounds[i].getCenter(); - memcpy(&bond.bond.centroid, ¢er.x, sizeof(PxVec3)); - PxVec3 normal = PxVec3(0, 0, 1); - memcpy(&bond.bond.normal, &normal.x, sizeof(PxVec3)); - bondsDescriptors.push_back(bond); - } - } - } - - const uint32_t chunkCount = static_cast(chunkDescriptors.size()); - const uint32_t bondCount = static_cast(bondsDescriptors.size()); - std::vector chunkReorderMap(chunkCount); - std::vector scratch(chunkCount); - NvBlastEnsureAssetExactSupportCoverage(chunkDescriptors.data(), chunkCount, scratch.data(), logLL); - NvBlastBuildAssetDescChunkReorderMap(chunkReorderMap.data(), chunkDescriptors.data(), chunkCount, scratch.data(), logLL); - NvBlastApplyAssetDescChunkReorderMapInPlace(chunkDescriptors.data(), chunkCount, bondsDescriptors.data(), bondCount, chunkReorderMap.data(), true, scratch.data(), logLL); - chunkReorderInvMap.resize(chunkReorderMap.size()); - Nv::Blast::invertMap(chunkReorderInvMap.data(), chunkReorderMap.data(), static_cast(chunkReorderMap.size())); - return true; -} - -const float VEC_EPS = 1e-4f; - -class MaterialXmlParser : public physx::shdfnd::FastXml::Callback -{ -public: - std::string textureFile; - -protected: - // encountered a comment in the XML - virtual bool processComment(const char* /*comment*/) - { - return true; - } - - virtual bool processClose(const char* /*element*/, unsigned int /*depth*/, bool& /*isError*/) - { - return true; - } - - // return true to continue processing the XML document, false to skip. - virtual bool processElement(const char* elementName, // name of the element - const char* elementData, // element data, null if none - const physx::shdfnd::FastXml::AttributePairs& attr, - int /*lineno*/) // line number in the source XML file - { - PX_UNUSED(attr); - if (::strcmp(elementName, "sampler2D") == 0) - { - int nameIndex = -1; - for (int i = 0; i < attr.getNbAttr(); i += 2) - { - if (::strcmp(attr.getKey(i), "name") == 0) - { - nameIndex = i; - break; - } - } - - if (::strcmp(attr.getValue(nameIndex), "diffuseTexture") == 0) - { - textureFile = elementData; - } - } - - return true; - } -}; - -class PxInputDataFromPxFileBuf : public physx::PxInputData -{ -public: - PxInputDataFromPxFileBuf(physx::PxFileBuf& fileBuf) : mFileBuf(fileBuf) {} - - // physx::PxInputData interface - virtual uint32_t getLength() const - { - return mFileBuf.getFileLength(); - } - - virtual void seek(uint32_t offset) - { - mFileBuf.seekRead(offset); - } - - virtual uint32_t tell() const - { - return mFileBuf.tellRead(); - } - - // physx::PxInputStream interface - virtual uint32_t read(void* dest, uint32_t count) - { - return mFileBuf.read(dest, count); - } - - PX_NOCOPY(PxInputDataFromPxFileBuf) -private: - physx::PxFileBuf& mFileBuf; -}; - - -std::string getTextureFromMaterial(const char* materialPath) -{ - PsFileBuffer fileBuffer(materialPath, general_PxIOStream2::PxFileBuf::OPEN_READ_ONLY); - PxInputDataFromPxFileBuf inputData(fileBuffer); - MaterialXmlParser parser; - physx::shdfnd::FastXml* xml = physx::shdfnd::createFastXml(&parser); - xml->processXml(inputData, false); - - xml->release(); - - // trim folders - std::string textureFile = parser.textureFile.substr(parser.textureFile.find_last_of("/\\") + 1); - - return textureFile; -} - -#define MAX_PATH_LEN 260 - -bool ApexImportTool::importRendermesh(const std::vector& chunkReorderInvMap, const NvParameterized::Interface* assetNvIfc, ExporterMeshData* outputData, const char* materialsDir) -{ - const nvidia::destructible::DestructibleAssetParameters* dasset = static_cast(assetNvIfc); - const nvidia::apex::RenderMeshAssetParameters* rmAsset = static_cast(dasset->renderMeshAsset); - - - outputData->submeshCount = rmAsset->submeshes.arraySizes[0]; - outputData->submeshMats = new Material[outputData->submeshCount]; - std::vector materialArray(outputData->submeshCount); - std::vector materialPathes; - materialPathes.reserve(outputData->submeshCount); - // gather materials - { - for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) - { - const char* materialName = rmAsset->materialNames.buf[submeshIndex].buf; - if (materialsDir != nullptr) - { - std::ostringstream materialPath; - materialPath << materialsDir << "\\" << materialName; - std::string texturePath = getTextureFromMaterial(materialPath.str().c_str()); - int32_t bfs = texturePath.length(); - char* texPath = new char[bfs + 1]; - char* matName = new char[bfs + 1]; - memset(texPath, 0, sizeof(char) * (bfs + 1)); - memset(matName, 0, sizeof(char) * (bfs + 1)); - memcpy(texPath, texturePath.data(), sizeof(char) * bfs); - memcpy(matName, texturePath.data(), sizeof(char) * bfs); - outputData->submeshMats[submeshIndex].diffuse_tex = texPath; - outputData->submeshMats[submeshIndex].name = matName; - } - else - { - int32_t bfs = strnlen(materialName, MAX_PATH_LEN); - char* texPath = new char[bfs]; - char* matName = new char[bfs]; - memset(texPath, 0, sizeof(char) * (bfs + 1)); - memset(matName, 0, sizeof(char) * (bfs + 1)); - memcpy(texPath, materialName, sizeof(char) * bfs); - memcpy(matName, materialName, sizeof(char) * bfs); - outputData->submeshMats[submeshIndex].diffuse_tex = texPath; - outputData->submeshMats[submeshIndex].name = matName; - } - } - } - struct vc3Comp - { - bool operator()(const PxVec3& a, const PxVec3& b) const - { - if (a.x + VEC_EPS < b.x) return true; - if (a.x - VEC_EPS > b.x) return false; - if (a.y + VEC_EPS < b.y) return true; - if (a.y - VEC_EPS > b.y) return false; - if (a.z + VEC_EPS < b.z) return true; - return false; - } - }; - struct vc2Comp - { - bool operator()(const PxVec2& a, const PxVec2& b) const - { - if (a.x + VEC_EPS < b.x) return true; - if (a.x - VEC_EPS > b.x) return false; - if (a.y + VEC_EPS < b.y) return true; - return false; - } - }; - - std::vector compressedPositions; - std::vector compressedNormals; - std::vector compressedTextures; - - std::vector positionsMapping; - std::vector normalsMapping; - std::vector texturesMapping; - - std::map posMap; - std::map normMap; - std::map texMap; - - - // gather data for export - { - for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) - { - nvidia::apex::SubmeshParameters* currentSubmesh = static_cast(rmAsset->submeshes.buf[submeshIndex]); - nvidia::apex::VertexBufferParameters* vbuf = static_cast(currentSubmesh->vertexBuffer); - nvidia::apex::VertexFormatParameters* vbufFormat = static_cast(vbuf->vertexFormat); - uint32_t indexCount = vbuf->vertexCount; - // Find position buffer index - int32_t vbufIds[3]; // 0 - pos, 1 - normals, 2 - t-coord - vbufIds[0] = vbufIds[1] = vbufIds[2] = -1; - { - for (int32_t bid = 0; bid < vbufFormat->bufferFormats.arraySizes[0]; ++bid) - { - if (vbufFormat->bufferFormats.buf[bid].semantic == RenderVertexSemantic::POSITION) - { - vbufIds[0] = bid; - } - if (vbufFormat->bufferFormats.buf[bid].semantic == RenderVertexSemantic::NORMAL) - { - vbufIds[1] = bid; - } - if (vbufFormat->bufferFormats.buf[bid].semantic == RenderVertexSemantic::TEXCOORD0) - { - vbufIds[2] = bid; - } - } - } - if (vbufIds[0] != -1) - { - BufferF32x3* pbuf = static_cast(vbuf->buffers.buf[vbufIds[0]]); - const PxVec3* posistions = pbuf->data.buf; - uint32_t oldSize = (uint32_t)positionsMapping.size(); - - positionsMapping.resize(oldSize + indexCount); - for (uint32_t i = 0; i < indexCount; ++i) - { - auto it = posMap.find(posistions[i]); - if (it == posMap.end()) - { - posMap[posistions[i]] = (uint32_t)compressedPositions.size(); - positionsMapping[oldSize + i] = (uint32_t)compressedPositions.size(); - compressedPositions.push_back(posistions[i]); - } - else - { - positionsMapping[oldSize + i] = it->second; - } - } - } - - if (vbufIds[1] != -1) - { - BufferF32x3* pbuf = static_cast(vbuf->buffers.buf[vbufIds[1]]); - const PxVec3* normals = pbuf->data.buf; - uint32_t oldSize = (uint32_t)normalsMapping.size(); - normalsMapping.resize(oldSize + indexCount); - for (uint32_t i = 0; i < indexCount; ++i) - { - auto it = normMap.find(normals[i]); - if (it == normMap.end()) - { - normMap[normals[i]] = (uint32_t)compressedNormals.size(); - normalsMapping[oldSize + i] = (uint32_t)compressedNormals.size(); - compressedNormals.push_back(normals[i]); - } - else - { - normalsMapping[oldSize + i] = it->second; - } - } - } - if (vbufIds[2] != -1) - { - BufferF32x2* pbuf = static_cast(vbuf->buffers.buf[vbufIds[2]]); - const PxVec2* texCoord = reinterpret_cast(pbuf->data.buf); - uint32_t oldSize = (uint32_t)texturesMapping.size(); - texturesMapping.resize(oldSize + indexCount); - for (uint32_t i = 0; i < indexCount; ++i) - { - auto it = texMap.find(texCoord[i]); - if (it == texMap.end()) - { - texMap[texCoord[i]] = (uint32_t)compressedTextures.size(); - texturesMapping[oldSize + i] = (uint32_t)compressedTextures.size(); - compressedTextures.push_back(texCoord[i]); - } - else - { - texturesMapping[oldSize + i] = it->second; - } - } - } - } - } - for (uint32_t i = 0; i < compressedTextures.size(); ++i) - { - std::swap(compressedTextures[i].x, compressedTextures[i].y); - } - - outputData->positionsCount = (uint32_t)compressedPositions.size(); - //meshData.positions = compressedPositions.data(); - outputData->positions = new PxVec3[outputData->positionsCount]; - memcpy(outputData->positions, compressedPositions.data(), sizeof(PxVec3) * outputData->positionsCount); - outputData->normalsCount = (uint32_t)compressedNormals.size(); - //meshData.normals = compressedNormals.data(); - outputData->normals = new PxVec3[outputData->normalsCount]; - memcpy(outputData->normals, compressedNormals.data(), sizeof(PxVec3) * outputData->normalsCount); - outputData->uvsCount = (uint32_t)compressedTextures.size(); - //meshData.uvs = compressedTextures.data(); - outputData->uvs = new PxVec2[outputData->uvsCount]; - memcpy(outputData->uvs, compressedTextures.data(), sizeof(PxVec2) * outputData->uvsCount); - - uint32_t apexChunkCount = dasset->chunks.arraySizes[0]; - outputData->meshCount = (uint32_t)chunkReorderInvMap.size(); - outputData->submeshOffsets = new uint32_t[outputData->meshCount * outputData->submeshCount + 1]{ 0 }; - - //count total number of indices - for (uint32_t chunkIndex = 0; chunkIndex < apexChunkCount; ++chunkIndex) - { - uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; - if (apexChunkIndex >= apexChunkCount) - { - PX_ALWAYS_ASSERT(); - continue; - } - uint32_t part = getPartIndex(dasset, chunkIndex); - for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) - { - SubmeshParameters* sm = static_cast(rmAsset->submeshes.buf[submeshIndex]); - - uint32_t indexCount = sm->indexPartition.buf[part + 1] - sm->indexPartition.buf[part]; - uint32_t* firstIdx = outputData->submeshOffsets + chunkIndex * outputData->submeshCount + submeshIndex; - *(firstIdx + 1) = *firstIdx + indexCount; - } - } - outputData->posIndex = new uint32_t[outputData->submeshOffsets[outputData->meshCount * outputData->submeshCount]]; - outputData->normIndex = new uint32_t[outputData->submeshOffsets[outputData->meshCount * outputData->submeshCount]]; - outputData->texIndex = new uint32_t[outputData->submeshOffsets[outputData->meshCount * outputData->submeshCount]]; - //copy indices - for (uint32_t chunkIndex = 0; chunkIndex < outputData->meshCount; ++chunkIndex) - { - uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; - if (apexChunkIndex >= apexChunkCount) - { - PX_ALWAYS_ASSERT(); - continue; - } - uint32_t part = getPartIndex(dasset, chunkIndex); - uint32_t offset = 0; - for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) - { - SubmeshParameters* sm = static_cast(rmAsset->submeshes.buf[submeshIndex]); - const uint32_t* indexArray = sm->indexBuffer.buf + sm->indexPartition.buf[part]; - uint32_t indexCount = sm->indexPartition.buf[part + 1] - sm->indexPartition.buf[part]; - - uint32_t firstIdx = outputData->submeshOffsets[chunkIndex * outputData->submeshCount + submeshIndex]; - - for (uint32_t i = 0; i < indexCount; ++i) - { - outputData->posIndex[firstIdx + i] = positionsMapping[indexArray[i] + offset]; - outputData->normIndex[firstIdx + i] = normalsMapping[indexArray[i] + offset]; - outputData->texIndex[firstIdx + i] = texturesMapping[indexArray[i] + offset]; - } - nvidia::apex::VertexBufferParameters* vbuf = static_cast(sm->vertexBuffer); - offset += vbuf->vertexCount; - } - } - return true; -} - - - -bool ApexImportTool::saveAsset(const NvBlastAsset* asset, PxFileBuf* stream) -{ - if (!asset) - { - NVBLAST_LOG_ERROR("Error: attempting to serialize NULL asset."); - return false; - } - if (!stream) - { - NVBLAST_LOG_ERROR("Error: bad output stream."); - return false; - } - const void* assetData = asset; - uint32_t assetDataSize = NvBlastAssetGetSize(asset, logLL); - stream->write(assetData, assetDataSize); - stream->close(); - NVBLAST_LOG_INFO("Saving finished."); - return true; -} - - -ApexImportTool::~ApexImportTool() -{ -} - -} // namespace ApexImporter - -} // namespace Blast -} // namespace Nv +// This code contains NVIDIA Confidential Information and is disclosed to you +// under a form of NVIDIA software license agreement provided separately to you. +// +// Notice +// NVIDIA Corporation and its licensors retain all intellectual property and +// proprietary rights in and to this software and 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. +// +// ALL NVIDIA DESIGN SPECIFICATIONS, CODE ARE PROVIDED "AS IS.". NVIDIA MAKES +// NO WARRANTIES, EXPRESSED, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO +// THE MATERIALS, AND EXPRESSLY DISCLAIMS ALL IMPLIED WARRANTIES OF NONINFRINGEMENT, +// MERCHANTABILITY, AND FITNESS FOR A PARTICULAR PURPOSE. +// +// Information and code furnished is believed to be accurate and reliable. +// However, NVIDIA Corporation assumes no responsibility for the consequences of use of such +// information or for any infringement of patents or other rights of third parties that may +// result from its use. No license is granted by implication or otherwise under any patent +// or patent rights of NVIDIA Corporation. Details are subject to change without notice. +// This code supersedes and replaces all information previously supplied. +// NVIDIA Corporation products are not authorized for use as critical +// components in life support devices or systems without express written approval of +// NVIDIA Corporation. +// +// Copyright (c) 2016-2018 NVIDIA Corporation. All rights reserved. + + +#include "NvBlastExtApexImportTool.h" + +#if NV_VC +#pragma warning(push) +#pragma warning(disable: 4996) // 'fopen' unsafe warning, from NxFileBuffer.h +#endif + +#include "PxFoundation.h" + +#include "NvBlastIndexFns.h" +#include "NvBlastGlobals.h" +#include +#include +#include "PxPhysics.h" +#include "NvBlastExtAuthoringCollisionBuilder.h" +#include "NvBlastExtPxAsset.h" +#include "NvBlastExtAuthoring.h" +#include "NvBlastExtAuthoringBondGenerator.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include "PsFastXml.h" +#include "PsFileBuffer.h" +#include +#include +#include +#include +#include +#include + + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "NvBlastPxCallbacks.h" + +using namespace nvidia; +using namespace physx; +using namespace apex; + +using nvidia::destructible::DestructibleAssetParameters; + +namespace Nv +{ +namespace Blast +{ + +namespace ApexImporter +{ + /** + Should be consistent with IntPair in APEX + */ + struct IntPair + { + void set(int32_t _i0, int32_t _i1) + { + i0 = _i0; + i1 = _i1; + } + + int32_t i0, i1; + + static int compare(const void* a, const void* b) + { + const int32_t diff0 = ((IntPair*)a)->i0 - ((IntPair*)b)->i0; + return diff0 ? diff0 : (((IntPair*)a)->i1 - ((IntPair*)b)->i1); + } + }; + +bool ApexImportTool::loadAssetFromFile(physx::PxFileBuf* stream, NvParameterized::Serializer::DeserializedData& data) +{ + if (stream && stream->isOpen()) + { + NvParameterized::Serializer::SerializeType serType = NvParameterized::Serializer::peekSerializeType(*stream); + NvParameterized::Serializer::ErrorType serError; + + NvParameterized::Traits* traits = new NvParameterized::DefaultTraits(NvParameterized::DefaultTraits::BehaviourFlags::DEFAULT_POLICY); + + nvidia::destructible::ModuleDestructibleRegistration::invokeRegistration(traits); + ModuleDestructibleLegacyRegistration::invokeRegistration(traits); + ModuleCommonRegistration::invokeRegistration(traits); + ModuleCommonLegacyRegistration::invokeRegistration(traits); + ModuleFrameworkLegacyRegistration::invokeRegistration(traits); + ModuleFrameworkRegistration::invokeRegistration(traits); + NvParameterized::Serializer* ser = NvParameterized::internalCreateSerializer(serType, traits); + + PX_ASSERT(ser); + + serError = ser->deserialize(*stream, data); + + if (serError == NvParameterized::Serializer::ERROR_NONE && data.size() == 1) + { + NvParameterized::Interface* params = data[0]; + if (!physx::shdfnd::strcmp(params->className(), "DestructibleAssetParameters")) + { + return true; + } + else + { + NVBLAST_LOG_ERROR("Error: deserialized data is not an APEX Destructible\n"); + } + } + else + { + NVBLAST_LOG_ERROR("Error: failed to deserialize\n"); + } + ser->release(); + } + return false; +} + +bool ApexImportTool::isValid() +{ + return m_Foundation && m_PhysxSDK && m_Cooking; +} + +enum ChunkFlags +{ + SupportChunk = (1 << 0), + UnfracturableChunk = (1 << 1), + DescendantUnfractureable = (1 << 2), + UndamageableChunk = (1 << 3), + UncrumbleableChunk = (1 << 4), + RuntimeFracturableChunk = (1 << 5), + Instanced = (1 << 8), +}; + +uint32_t getPartIndex(const DestructibleAssetParameters* prm, uint32_t id) +{ + auto& sch = prm->chunks.buf[id]; + + return (sch.flags & ChunkFlags::Instanced) == 0 ? sch.meshPartIndex : prm->chunkInstanceInfo.buf[sch.meshPartIndex].partIndex; +} + +ApexImportTool::ApexImportTool() +{ + m_Foundation = PxCreateFoundation(PX_FOUNDATION_VERSION, NvBlastGetPxAllocatorCallback(), NvBlastGetPxErrorCallback()); + if (!m_Foundation) + { + NVBLAST_LOG_ERROR("Error: failed to create Foundation\n"); + return; + } + physx::PxTolerancesScale scale; + m_PhysxSDK = PxCreatePhysics(PX_PHYSICS_VERSION, *m_Foundation, scale, true); + if (!m_PhysxSDK) + { + NVBLAST_LOG_ERROR("Error: failed to create PhysX\n"); + + return; + } + + physx::PxCookingParams cookingParams(scale); + cookingParams.buildGPUData = true; + m_Cooking = PxCreateCooking(PX_PHYSICS_VERSION, m_PhysxSDK->getFoundation(), cookingParams); + if (!m_Cooking) + { + NVBLAST_LOG_ERROR("Error: failed to create PhysX Cooking\n"); + return; + } + + +} + + +bool ApexImportTool::getCollisionGeometry(const NvParameterized::Interface* assetPrm, uint32_t chunkCount, std::vector& chunkReorderInvMap, + const std::vector& apexChunkFlags, std::vector& physicsChunks, + std::vector& physicsSubchunks, std::vector >& hullsDesc) +{ + physicsChunks.clear(); + physicsChunks.resize(chunkCount); + // prepare physics asset desc (convexes, transforms) + std::shared_ptr collisionBuilder( + NvBlastExtAuthoringCreateConvexMeshBuilder(m_Cooking, &m_PhysxSDK->getPhysicsInsertionCallback()), + [](ConvexMeshBuilder* cmb) { cmb->release(); }); + + const DestructibleAssetParameters* params = static_cast(assetPrm); + + int32_t apexHullCount = 0; + const uint32_t apexChunkCount = params->chunks.arraySizes[0]; + + for (uint32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) + { + uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; + if (apexChunkIndex < apexChunkCount) + { + uint32_t partIndex = getPartIndex(params, apexChunkIndex); + uint32_t partConvexHullCount = params->chunkConvexHullStartIndices.buf[partIndex + 1] - params->chunkConvexHullStartIndices.buf[partIndex]; + apexHullCount += partConvexHullCount; + } + } + physicsSubchunks.reserve(chunkCount); + { + hullsDesc.clear(); + hullsDesc.resize(chunkCount); + for (uint32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) + { + uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; + if (apexChunkIndex < apexChunkCount) + { + uint32_t partIndex = getPartIndex(params, apexChunkIndex); + uint32_t partConvexHullCount = params->chunkConvexHullStartIndices.buf[partIndex + 1] - params->chunkConvexHullStartIndices.buf[partIndex]; + NvParameterized::Interface** cxInterfaceArray = params->chunkConvexHulls.buf + params->chunkConvexHullStartIndices.buf[partIndex]; + physicsChunks[chunkIndex].subchunkCount = partConvexHullCount; + for (uint32_t hull = 0; hull < partConvexHullCount; ++hull) + { + NvParameterized::Handle paramHandle(cxInterfaceArray[hull]); + int32_t verticesCount = 0; + paramHandle.getParameter("vertices"); + paramHandle.getArraySize(verticesCount); + std::vector vertexData(verticesCount); + paramHandle.getParamVec3Array(vertexData.data(), verticesCount); + hullsDesc[chunkIndex].push_back(nullptr); + hullsDesc[chunkIndex].back() = collisionBuilder.get()->buildCollisionGeometry(verticesCount, vertexData.data()); + PxConvexMesh* convexMesh = collisionBuilder.get()->buildConvexMesh(verticesCount, vertexData.data()); + + const ExtPxAssetDesc::SubchunkDesc subchunk = + { + PxTransform(PxIdentity), + PxConvexMeshGeometry(convexMesh) + }; + physicsSubchunks.push_back(subchunk); + } + physicsChunks[chunkIndex].subchunks = partConvexHullCount ? (&physicsSubchunks.back() + 1 - partConvexHullCount) : nullptr; + + // static flag set + physicsChunks[chunkIndex].isStatic = (apexChunkFlags[apexChunkIndex] & (1 << 1)) != 0; + } + else + { + NVBLAST_LOG_ERROR("Error: chunk index is invalid."); + } + } + } + + // check that vector didn't grow + if (static_cast(physicsSubchunks.size()) > apexHullCount) + { + NVBLAST_LOG_ERROR("Error: sub chunk count seems to be wrong."); + return false; + } + return true; +} + +PxBounds3 gatherChunkTriangles(std::vector& chunkToPartMp, const nvidia::apex::RenderMeshAssetParameters* rmAsset, std::vector& chunkTrianglesOffsets, std::vector& chunkTriangles, int32_t posBufferIndex, float scale, PxVec3 offset ) +{ + + PxBounds3 bnd; + bnd.setEmpty(); + chunkTrianglesOffsets.clear(); + uint32_t chunkCount = chunkToPartMp.size(); + chunkTrianglesOffsets.resize(chunkCount + 1); + chunkTrianglesOffsets[0] = 0; + for (uint32_t chunkIndex = 0; chunkIndex < chunkCount; ++chunkIndex) + { + uint32_t part = chunkToPartMp[chunkIndex]; + uint32_t submeshCount = rmAsset->submeshes.arraySizes[0]; + for (uint32_t submeshIndex = 0; submeshIndex < submeshCount; ++submeshIndex) + { + nvidia::apex::SubmeshParameters* submeshPrm = static_cast(rmAsset->submeshes.buf[submeshIndex]); + + const uint32_t* indexArray = submeshPrm->indexBuffer.buf + submeshPrm->indexPartition.buf[part]; + uint32_t indexCount = submeshPrm->indexPartition.buf[part + 1] - submeshPrm->indexPartition.buf[part]; + + nvidia::apex::VertexBufferParameters* vbuf = static_cast(submeshPrm->vertexBuffer); + + nvidia::apex::BufferF32x3* pbuf = static_cast(vbuf->buffers.buf[posBufferIndex]); + + const PxVec3* positions = reinterpret_cast(pbuf->data.buf); + + for (uint32_t i = 0; i < indexCount; i += 3) + { + Vertex a; + Vertex b; + Vertex c; + bnd.include(positions[indexArray[i]]); + bnd.include(positions[indexArray[i + 1]]); + bnd.include(positions[indexArray[i + 2]]); + + a.p = positions[indexArray[i]] - offset; + b.p = positions[indexArray[i + 1]] - offset; + c.p = positions[indexArray[i + 2]] - offset; + a.p *= scale; + b.p *= scale; + c.p *= scale; + chunkTriangles.push_back(Nv::Blast::Triangle(a, b, c)); + } + } + chunkTrianglesOffsets[chunkIndex + 1] = chunkTriangles.size(); + } + return bnd; +} + +bool ApexImportTool::importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, + std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& apexChunkFlags) +{ + ApexImporterConfig configDesc; + configDesc.setDefaults(); + return importApexAsset(chunkReorderInvMap, assetNvIfc, chunkDescriptors, bondDescriptors, apexChunkFlags, configDesc); +} + + +bool ApexImportTool::importApexAsset(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, + std::vector& chunkDescriptors, std::vector& bondDescriptors, std::vector& apexChunkFlags, const ApexImporterConfig& configDesc) +{ + return importApexAssetInternal(chunkReorderInvMap, assetNvIfc, chunkDescriptors, bondDescriptors, apexChunkFlags, configDesc); +} + + + + + +bool ApexImportTool::importApexAssetInternal(std::vector& chunkReorderInvMap, NvParameterized::Interface* assetNvIfc, + std::vector& chunkDescriptors, std::vector& bondsDescriptors, std::vector& apexChunkFlags, const ApexImporterConfig& configDesc) +{ + if (!assetNvIfc) + { + NVBLAST_LOG_ERROR("Error: attempting to import NULL Apex asset."); + return false; + } + DestructibleAssetParameters* params = static_cast(assetNvIfc); + + int32_t apexChunkCount = params->chunks.arraySizes[0]; + uint32_t rootChunkIndex = 0; + + std::vector chunkToPartMapping(apexChunkCount); + + chunkDescriptors.resize(apexChunkCount); + + nvidia::apex::RenderMeshAssetParameters* rmParam = static_cast(params->renderMeshAsset); + + std::vector perChunkBounds(apexChunkCount); + PxBounds3 allRmBound; + allRmBound.setEmpty(); + + for (uint32_t i = 0; i < (uint32_t)apexChunkCount; ++i) + { + // Use bounds center for centroid + uint32_t partIndex = getPartIndex(params, i); + chunkToPartMapping[i] = partIndex; + const PxBounds3 bounds = rmParam->partBounds.buf[partIndex]; + + perChunkBounds[i] = bounds; + allRmBound.include(bounds); + + const PxVec3 center = bounds.getCenter(); + memcpy(chunkDescriptors[i].centroid, ¢er.x, 3 * sizeof(float)); + + // Find chunk volume + uint32_t partConvexHullCount = params->chunkConvexHullStartIndices.buf[partIndex + 1] - params->chunkConvexHullStartIndices.buf[partIndex]; + NvParameterized::Interface** cxInterfaceArray = params->chunkConvexHulls.buf + params->chunkConvexHullStartIndices.buf[partIndex]; + chunkDescriptors[i].volume = 0.0f; + for (uint32_t hull = 0; hull < partConvexHullCount; ++hull) + { + NvParameterized::Handle paramHandle(cxInterfaceArray[hull]); + float hullVolume; + paramHandle.getParameter("volume"); + paramHandle.getParamF32(hullVolume); + chunkDescriptors[i].volume += hullVolume; + } + + int16_t parent = params->chunks.buf[i].parentIndex; + if (parent == -1) + { + rootChunkIndex = i; + chunkDescriptors[i].parentChunkIndex = UINT32_MAX; + } + else + { + chunkDescriptors[i].parentChunkIndex = parent; + } + + chunkDescriptors[i].flags = 0; + chunkDescriptors[i].userData = i; + } + // Get support graph data from Apex asset // + + const NvParameterized::Interface* assetParameterized = assetNvIfc; + uint32_t maximumSupportDepth = 0; + + NvParameterized::Handle parameterHandle(*assetParameterized); + parameterHandle.getParameter("supportDepth"); + parameterHandle.getParamU32(maximumSupportDepth); + std::vector > overlapsBuffer; + nvidia::destructible::CachedOverlaps* overlapsArray = static_cast(params->overlapsAtDepth.buf[maximumSupportDepth]); + uint32_t overlapsCount = overlapsArray->overlaps.arraySizes[0]; + if (overlapsCount != 0) + { + for (uint32_t i = 0; i < overlapsCount; ++i) + { + uint32_t ov0 = overlapsArray->overlaps.buf[i].i0; + uint32_t ov1 = overlapsArray->overlaps.buf[i].i1; + + chunkDescriptors[ov0].flags = NvBlastChunkDesc::SupportFlag; + chunkDescriptors[ov1].flags = NvBlastChunkDesc::SupportFlag; + overlapsBuffer.push_back(std::make_pair(ov0, ov1)); + } + } + + // Format all connections as (chunk with lower index) -> (chunk with higher index) // + + for (uint32_t i = 0; i < overlapsBuffer.size(); ++i) + { + if (overlapsBuffer[i].first > overlapsBuffer[i].second) + { + std::swap(overlapsBuffer[i].first, overlapsBuffer[i].second); + } + } + + // Unique all connections // + std::sort(overlapsBuffer.begin(), overlapsBuffer.end()); + overlapsBuffer.resize(std::unique(overlapsBuffer.begin(), overlapsBuffer.end()) - overlapsBuffer.begin()); + + // Build bond descriptors (acquire area, normal, centroid) + bondsDescriptors.clear(); + bondsDescriptors.resize(overlapsBuffer.size()); + + std::shared_ptr bondGenTool( + NvBlastExtAuthoringCreateBondGenerator(m_Cooking, &m_PhysxSDK->getPhysicsInsertionCallback()), + [](Nv::Blast::BlastBondGenerator* bg) {bg->release(); }); + + std::vector chunkTrianglesOffsets; + std::vector chunkTriangles; + + PxBounds3 bnds = allRmBound; + PxVec3 offset = bnds.getCenter(); + float scale = 1.0f / PxMax(PxAbs(bnds.getExtents(0)), PxMax(PxAbs(bnds.getExtents(1)), PxAbs(bnds.getExtents(2)))); + + bnds = gatherChunkTriangles(chunkToPartMapping, rmParam, chunkTrianglesOffsets, chunkTriangles, 0, scale, offset); + + + BondGenerationConfig cf; + cf.bondMode = BondGenerationConfig::AVERAGE; + if (configDesc.infSearchMode == configDesc.EXACT) + { + cf.bondMode = BondGenerationConfig::EXACT; + } + NvBlastBondDesc* bondsDesc; + std::vector overlapsA, overlapsB; + for (auto it : overlapsBuffer) + { + overlapsA.push_back(it.first); + overlapsB.push_back(it.second); + } + bondGenTool.get()->createBondBetweenMeshes(chunkTrianglesOffsets.size() - 1, chunkTrianglesOffsets.data(), chunkTriangles.data(), + overlapsBuffer.size(), overlapsA.data(), overlapsB.data(), bondsDesc, cf); + memcpy(bondsDescriptors.data(), bondsDesc, sizeof(NvBlastBondDesc) * bondsDescriptors.size()); + NVBLAST_FREE(bondsDesc); + + float inverScale = 1.0f / scale; + + for (uint32_t i = 0; i < bondsDescriptors.size(); ++i) + { + bondsDescriptors[i].bond.area *= inverScale * inverScale; + bondsDescriptors[i].bond.centroid[0] *= inverScale; + bondsDescriptors[i].bond.centroid[1] *= inverScale; + bondsDescriptors[i].bond.centroid[2] *= inverScale; + + bondsDescriptors[i].bond.centroid[0] += offset.x; + bondsDescriptors[i].bond.centroid[1] += offset.y; + bondsDescriptors[i].bond.centroid[2] += offset.z; + + } + + /// Delete all bonds with zero area /// + for (uint32_t i = 0; i < bondsDescriptors.size(); ++i) + { + if (bondsDescriptors[i].bond.area == 0) + { + bondsDescriptors[i].chunkIndices[0] = bondsDescriptors.back().chunkIndices[0]; + bondsDescriptors[i].chunkIndices[1] = bondsDescriptors.back().chunkIndices[1]; + bondsDescriptors[i].bond = bondsDescriptors.back().bond; + bondsDescriptors.pop_back(); + --i; + } + } + + apexChunkFlags.clear(); + apexChunkFlags.resize(chunkDescriptors.size()); + // externally supported chunks + { + for (uint32_t i = 0; i < chunkDescriptors.size(); i++) + { + uint32_t chunkID = i; + const NvParameterized::Interface* assetInterface = assetNvIfc; + NvParameterized::Handle chunksHandle(*assetInterface, "chunks"); + chunksHandle.set(chunkID); + NvParameterized::Handle flagsHandle(*assetInterface); + chunksHandle.getChildHandle(assetInterface, "flags", flagsHandle); + uint32_t flags; + flagsHandle.getParamU32(flags); + + apexChunkFlags[chunkID] = flags; + + // world support flag + if (flags & (1 << 0)) + { + NvBlastBondDesc bond; + bond.chunkIndices[0] = i; + bond.chunkIndices[1] = UINT32_MAX; // invalid index for "world" + bond.bond.area = 0.1f; // ??? + PxVec3 center = perChunkBounds[i].getCenter(); + memcpy(&bond.bond.centroid, ¢er.x, sizeof(PxVec3)); + PxVec3 normal = PxVec3(0, 0, 1); + memcpy(&bond.bond.normal, &normal.x, sizeof(PxVec3)); + bondsDescriptors.push_back(bond); + } + } + } + + const uint32_t chunkCount = static_cast(chunkDescriptors.size()); + const uint32_t bondCount = static_cast(bondsDescriptors.size()); + std::vector chunkReorderMap(chunkCount); + std::vector scratch(chunkCount); + NvBlastEnsureAssetExactSupportCoverage(chunkDescriptors.data(), chunkCount, scratch.data(), logLL); + NvBlastBuildAssetDescChunkReorderMap(chunkReorderMap.data(), chunkDescriptors.data(), chunkCount, scratch.data(), logLL); + NvBlastApplyAssetDescChunkReorderMapInPlace(chunkDescriptors.data(), chunkCount, bondsDescriptors.data(), bondCount, chunkReorderMap.data(), true, scratch.data(), logLL); + chunkReorderInvMap.resize(chunkReorderMap.size()); + Nv::Blast::invertMap(chunkReorderInvMap.data(), chunkReorderMap.data(), static_cast(chunkReorderMap.size())); + return true; +} + +const float VEC_EPS = 1e-4f; + +class MaterialXmlParser : public physx::shdfnd::FastXml::Callback +{ +public: + std::string textureFile; + +protected: + // encountered a comment in the XML + virtual bool processComment(const char* /*comment*/) + { + return true; + } + + virtual bool processClose(const char* /*element*/, unsigned int /*depth*/, bool& /*isError*/) + { + return true; + } + + // return true to continue processing the XML document, false to skip. + virtual bool processElement(const char* elementName, // name of the element + const char* elementData, // element data, null if none + const physx::shdfnd::FastXml::AttributePairs& attr, + int /*lineno*/) // line number in the source XML file + { + PX_UNUSED(attr); + if (::strcmp(elementName, "sampler2D") == 0) + { + int nameIndex = -1; + for (int i = 0; i < attr.getNbAttr(); i += 2) + { + if (::strcmp(attr.getKey(i), "name") == 0) + { + nameIndex = i; + break; + } + } + + if (::strcmp(attr.getValue(nameIndex), "diffuseTexture") == 0) + { + textureFile = elementData; + } + } + + return true; + } +}; + +class PxInputDataFromPxFileBuf : public physx::PxInputData +{ +public: + PxInputDataFromPxFileBuf(physx::PxFileBuf& fileBuf) : mFileBuf(fileBuf) {} + + // physx::PxInputData interface + virtual uint32_t getLength() const + { + return mFileBuf.getFileLength(); + } + + virtual void seek(uint32_t offset) + { + mFileBuf.seekRead(offset); + } + + virtual uint32_t tell() const + { + return mFileBuf.tellRead(); + } + + // physx::PxInputStream interface + virtual uint32_t read(void* dest, uint32_t count) + { + return mFileBuf.read(dest, count); + } + + PX_NOCOPY(PxInputDataFromPxFileBuf) +private: + physx::PxFileBuf& mFileBuf; +}; + + +std::string getTextureFromMaterial(const char* materialPath) +{ + PsFileBuffer fileBuffer(materialPath, general_PxIOStream2::PxFileBuf::OPEN_READ_ONLY); + PxInputDataFromPxFileBuf inputData(fileBuffer); + MaterialXmlParser parser; + physx::shdfnd::FastXml* xml = physx::shdfnd::createFastXml(&parser); + xml->processXml(inputData, false); + + xml->release(); + + // trim folders + std::string textureFile = parser.textureFile.substr(parser.textureFile.find_last_of("/\\") + 1); + + return textureFile; +} + +#define MAX_PATH_LEN 260 + +bool ApexImportTool::importRendermesh(const std::vector& chunkReorderInvMap, const NvParameterized::Interface* assetNvIfc, ExporterMeshData* outputData, const char* materialsDir) +{ + const nvidia::destructible::DestructibleAssetParameters* dasset = static_cast(assetNvIfc); + const nvidia::apex::RenderMeshAssetParameters* rmAsset = static_cast(dasset->renderMeshAsset); + + + outputData->submeshCount = rmAsset->submeshes.arraySizes[0]; + outputData->submeshMats = new Material[outputData->submeshCount]; + std::vector materialArray(outputData->submeshCount); + std::vector materialPathes; + materialPathes.reserve(outputData->submeshCount); + // gather materials + { + for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) + { + const char* materialName = rmAsset->materialNames.buf[submeshIndex].buf; + if (materialsDir != nullptr) + { + std::ostringstream materialPath; + materialPath << materialsDir << "\\" << materialName; + std::string texturePath = getTextureFromMaterial(materialPath.str().c_str()); + int32_t bfs = texturePath.length(); + char* texPath = new char[bfs + 1]; + char* matName = new char[bfs + 1]; + memset(texPath, 0, sizeof(char) * (bfs + 1)); + memset(matName, 0, sizeof(char) * (bfs + 1)); + memcpy(texPath, texturePath.data(), sizeof(char) * bfs); + memcpy(matName, texturePath.data(), sizeof(char) * bfs); + outputData->submeshMats[submeshIndex].diffuse_tex = texPath; + outputData->submeshMats[submeshIndex].name = matName; + } + else + { + int32_t bfs = strnlen(materialName, MAX_PATH_LEN); + char* texPath = new char[bfs]; + char* matName = new char[bfs]; + memset(texPath, 0, sizeof(char) * (bfs + 1)); + memset(matName, 0, sizeof(char) * (bfs + 1)); + memcpy(texPath, materialName, sizeof(char) * bfs); + memcpy(matName, materialName, sizeof(char) * bfs); + outputData->submeshMats[submeshIndex].diffuse_tex = texPath; + outputData->submeshMats[submeshIndex].name = matName; + } + } + } + struct vc3Comp + { + bool operator()(const PxVec3& a, const PxVec3& b) const + { + if (a.x + VEC_EPS < b.x) return true; + if (a.x - VEC_EPS > b.x) return false; + if (a.y + VEC_EPS < b.y) return true; + if (a.y - VEC_EPS > b.y) return false; + if (a.z + VEC_EPS < b.z) return true; + return false; + } + }; + struct vc2Comp + { + bool operator()(const PxVec2& a, const PxVec2& b) const + { + if (a.x + VEC_EPS < b.x) return true; + if (a.x - VEC_EPS > b.x) return false; + if (a.y + VEC_EPS < b.y) return true; + return false; + } + }; + + std::vector compressedPositions; + std::vector compressedNormals; + std::vector compressedTextures; + + std::vector positionsMapping; + std::vector normalsMapping; + std::vector texturesMapping; + + std::map posMap; + std::map normMap; + std::map texMap; + + + // gather data for export + { + for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) + { + nvidia::apex::SubmeshParameters* currentSubmesh = static_cast(rmAsset->submeshes.buf[submeshIndex]); + nvidia::apex::VertexBufferParameters* vbuf = static_cast(currentSubmesh->vertexBuffer); + nvidia::apex::VertexFormatParameters* vbufFormat = static_cast(vbuf->vertexFormat); + uint32_t indexCount = vbuf->vertexCount; + // Find position buffer index + int32_t vbufIds[3]; // 0 - pos, 1 - normals, 2 - t-coord + vbufIds[0] = vbufIds[1] = vbufIds[2] = -1; + { + for (int32_t bid = 0; bid < vbufFormat->bufferFormats.arraySizes[0]; ++bid) + { + if (vbufFormat->bufferFormats.buf[bid].semantic == RenderVertexSemantic::POSITION) + { + vbufIds[0] = bid; + } + if (vbufFormat->bufferFormats.buf[bid].semantic == RenderVertexSemantic::NORMAL) + { + vbufIds[1] = bid; + } + if (vbufFormat->bufferFormats.buf[bid].semantic == RenderVertexSemantic::TEXCOORD0) + { + vbufIds[2] = bid; + } + } + } + if (vbufIds[0] != -1) + { + BufferF32x3* pbuf = static_cast(vbuf->buffers.buf[vbufIds[0]]); + const PxVec3* posistions = pbuf->data.buf; + uint32_t oldSize = (uint32_t)positionsMapping.size(); + + positionsMapping.resize(oldSize + indexCount); + for (uint32_t i = 0; i < indexCount; ++i) + { + auto it = posMap.find(posistions[i]); + if (it == posMap.end()) + { + posMap[posistions[i]] = (uint32_t)compressedPositions.size(); + positionsMapping[oldSize + i] = (uint32_t)compressedPositions.size(); + compressedPositions.push_back(posistions[i]); + } + else + { + positionsMapping[oldSize + i] = it->second; + } + } + } + + if (vbufIds[1] != -1) + { + BufferF32x3* pbuf = static_cast(vbuf->buffers.buf[vbufIds[1]]); + const PxVec3* normals = pbuf->data.buf; + uint32_t oldSize = (uint32_t)normalsMapping.size(); + normalsMapping.resize(oldSize + indexCount); + for (uint32_t i = 0; i < indexCount; ++i) + { + auto it = normMap.find(normals[i]); + if (it == normMap.end()) + { + normMap[normals[i]] = (uint32_t)compressedNormals.size(); + normalsMapping[oldSize + i] = (uint32_t)compressedNormals.size(); + compressedNormals.push_back(normals[i]); + } + else + { + normalsMapping[oldSize + i] = it->second; + } + } + } + if (vbufIds[2] != -1) + { + BufferF32x2* pbuf = static_cast(vbuf->buffers.buf[vbufIds[2]]); + const PxVec2* texCoord = reinterpret_cast(pbuf->data.buf); + uint32_t oldSize = (uint32_t)texturesMapping.size(); + texturesMapping.resize(oldSize + indexCount); + for (uint32_t i = 0; i < indexCount; ++i) + { + auto it = texMap.find(texCoord[i]); + if (it == texMap.end()) + { + texMap[texCoord[i]] = (uint32_t)compressedTextures.size(); + texturesMapping[oldSize + i] = (uint32_t)compressedTextures.size(); + compressedTextures.push_back(texCoord[i]); + } + else + { + texturesMapping[oldSize + i] = it->second; + } + } + } + } + } + for (uint32_t i = 0; i < compressedTextures.size(); ++i) + { + std::swap(compressedTextures[i].x, compressedTextures[i].y); + } + + outputData->positionsCount = (uint32_t)compressedPositions.size(); + //meshData.positions = compressedPositions.data(); + outputData->positions = new PxVec3[outputData->positionsCount]; + memcpy(outputData->positions, compressedPositions.data(), sizeof(PxVec3) * outputData->positionsCount); + outputData->normalsCount = (uint32_t)compressedNormals.size(); + //meshData.normals = compressedNormals.data(); + outputData->normals = new PxVec3[outputData->normalsCount]; + memcpy(outputData->normals, compressedNormals.data(), sizeof(PxVec3) * outputData->normalsCount); + outputData->uvsCount = (uint32_t)compressedTextures.size(); + //meshData.uvs = compressedTextures.data(); + outputData->uvs = new PxVec2[outputData->uvsCount]; + memcpy(outputData->uvs, compressedTextures.data(), sizeof(PxVec2) * outputData->uvsCount); + + uint32_t apexChunkCount = dasset->chunks.arraySizes[0]; + outputData->meshCount = (uint32_t)chunkReorderInvMap.size(); + outputData->submeshOffsets = new uint32_t[outputData->meshCount * outputData->submeshCount + 1]{ 0 }; + + //count total number of indices + for (uint32_t chunkIndex = 0; chunkIndex < apexChunkCount; ++chunkIndex) + { + uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; + if (apexChunkIndex >= apexChunkCount) + { + PX_ALWAYS_ASSERT(); + continue; + } + uint32_t part = getPartIndex(dasset, chunkIndex); + for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) + { + SubmeshParameters* sm = static_cast(rmAsset->submeshes.buf[submeshIndex]); + + uint32_t indexCount = sm->indexPartition.buf[part + 1] - sm->indexPartition.buf[part]; + uint32_t* firstIdx = outputData->submeshOffsets + chunkIndex * outputData->submeshCount + submeshIndex; + *(firstIdx + 1) = *firstIdx + indexCount; + } + } + outputData->posIndex = new uint32_t[outputData->submeshOffsets[outputData->meshCount * outputData->submeshCount]]; + outputData->normIndex = new uint32_t[outputData->submeshOffsets[outputData->meshCount * outputData->submeshCount]]; + outputData->texIndex = new uint32_t[outputData->submeshOffsets[outputData->meshCount * outputData->submeshCount]]; + //copy indices + for (uint32_t chunkIndex = 0; chunkIndex < outputData->meshCount; ++chunkIndex) + { + uint32_t apexChunkIndex = chunkReorderInvMap[chunkIndex]; + if (apexChunkIndex >= apexChunkCount) + { + PX_ALWAYS_ASSERT(); + continue; + } + uint32_t part = getPartIndex(dasset, chunkIndex); + uint32_t offset = 0; + for (uint32_t submeshIndex = 0; submeshIndex < outputData->submeshCount; ++submeshIndex) + { + SubmeshParameters* sm = static_cast(rmAsset->submeshes.buf[submeshIndex]); + const uint32_t* indexArray = sm->indexBuffer.buf + sm->indexPartition.buf[part]; + uint32_t indexCount = sm->indexPartition.buf[part + 1] - sm->indexPartition.buf[part]; + + uint32_t firstIdx = outputData->submeshOffsets[chunkIndex * outputData->submeshCount + submeshIndex]; + + for (uint32_t i = 0; i < indexCount; ++i) + { + outputData->posIndex[firstIdx + i] = positionsMapping[indexArray[i] + offset]; + outputData->normIndex[firstIdx + i] = normalsMapping[indexArray[i] + offset]; + outputData->texIndex[firstIdx + i] = texturesMapping[indexArray[i] + offset]; + } + nvidia::apex::VertexBufferParameters* vbuf = static_cast(sm->vertexBuffer); + offset += vbuf->vertexCount; + } + } + return true; +} + + + +bool ApexImportTool::saveAsset(const NvBlastAsset* asset, PxFileBuf* stream) +{ + if (!asset) + { + NVBLAST_LOG_ERROR("Error: attempting to serialize NULL asset."); + return false; + } + if (!stream) + { + NVBLAST_LOG_ERROR("Error: bad output stream."); + return false; + } + const void* assetData = asset; + uint32_t assetDataSize = NvBlastAssetGetSize(asset, logLL); + stream->write(assetData, assetDataSize); + stream->close(); + NVBLAST_LOG_INFO("Saving finished."); + return true; +} + + +ApexImportTool::~ApexImportTool() +{ +} + +} // namespace ApexImporter + +} // namespace Blast +} // namespace Nv -- cgit v1.2.3